Ulasan Greenplum 6: Jack of all trade, master of some

Database MPP (massively parallel processing) mendistribusikan data dan kueri di setiap node dalam sekelompok server komoditas. Pendekatan Greenplum untuk membangun gudang data MPP sangatlah unik. Dengan membangun database sumber terbuka yang mapan, PostgreSQL, mereka dapat memfokuskan upaya rekayasa pada nilai tambah yang penting: paralelisasi dan perencanaan kueri terkait, penyimpanan data kolom untuk analitik, dan kemampuan manajemen.

Greenplum dimiliki dan dikembangkan oleh Pivotal, dengan dukungan dari komunitas open source, dan tersedia gratis di bawah lisensi Apache 2. Rilis terbaru, Greenplum 6.0, sangat membantu dalam mengintegrasikan kembali inti Greenplum dengan PostgreSQL, menggabungkan hampir enam tahun perbaikan dari proyek PostgreSQL. Upaya ini berarti bahwa, ke depannya, Greenplum akan mendapatkan fitur dan peningkatan baru secara "gratis", sementara Pivotal berfokus untuk membuat penambahan ini berfungsi dengan baik dalam lingkungan paralel.

Arsitektur Greenplum

Database MPP menggunakan apa yang disebut arsitektur shared nothing . Dalam arsitektur ini, server database individu (berdasarkan PostgreSQL), yang dikenal sebagai segmen, masing-masing memproses sebagian data sebelum mengembalikan hasilnya ke host master. Arsitektur serupa terlihat di sistem pemrosesan data lain, seperti Spark atau Solr. Ini adalah salah satu fitur arsitektur utama yang memungkinkan Greenplum mengintegrasikan sistem paralel lainnya, seperti pembelajaran mesin atau analitik teks.

Karena Solr, misalnya, memiliki arsitektur terdistribusi yang serupa, Greenplum dapat menautkan masing-masing instans pemrosesan Solr dengan host segmen untuk memberikan pengalaman kueri dan analitik yang kurang lebih mulus. Ini juga berarti data diproses di tempat, menghindari pergerakan data yang mahal di seluruh jaringan.

Sangat penting

Menerapkan Greenplum

Greenplum dapat digunakan dengan beberapa cara: di ketiga cloud utama melalui pasar masing-masing, dalam container, atau di atas logam kosong. Seperti pada aplikasi klaster lainnya, kinerja terbaik diperoleh pada mesin logam kosong khusus. Saya menerapkan cluster dua node di Google Cloud Platform dengan semua fitur penting hanya dalam beberapa menit. Dan saya menginstal Greenplum secara lokal di VM menggunakan biner yang telah dikompilasi sebelumnya dalam waktu sekitar satu jam.

Penginstalan lokal diperlukan karena Greenplum 6 belum tersedia di cloud; jatuh tempo November 2019. Instalasi lokal juga memberi saya kesempatan untuk menilai kualitas dokumentasi Greenplum. Seperti yang Anda harapkan dari produk berpemilik bersumber tertutup sebelumnya, ini sangat baik.

Memiliki beberapa opsi penerapan memungkinkan perusahaan menyesuaikan penerapan mereka agar sesuai dengan persyaratan operasional. Misalnya, model dapat dilatih pada cluster bare metal multi-node untuk pengembangan model cepat, kemudian diterapkan pada instance tunggal Pivotal Postgres yang menjalankan titik akhir REST dalam container untuk mengoperasionalkan 'model.

Kueri gabungan Greenplum

Data saat ini ada di mana-mana — di lokasi berbeda, format berbeda, dan "suhu" berbeda. Pivotal Extension Framework (PXF), diperkenalkan di Greenplum 5, tumbuh dari konektor HDFS lama menjadi metode tujuan umum untuk mengakses tabel data eksternal di Greenplum. PXF juga menghubungkan ke format data yang berbeda, seperti file teks (misalnya log web), database asing, ORC, Parquet, dan HBase. Sumber data baru dapat ditambahkan ke PFX menggunakan Java API.

Menggabungkan PXF dengan kapabilitas akses eksternal yang dibawa oleh PostgreSQL 9.4, Greenplum dapat melakukan kueri federasi di seluruh lokasi data, termasuk aliran Kafka, HDFS, Spark, dan penyimpanan objek Amazon S3. Kemampuan terakhir, menanyakan penyimpanan objek Amazon S3, termasuk API SELECT S3 asli Amazon, yang meningkatkan kinerja dengan memfilter di edge. 

Kueri gabungan bisa lebih berguna dari yang Anda bayangkan. Misalnya, kita ingin menemukan semua individu yang:

bekerja di '' dan saling mengenal 'secara langsung' dan yang namanya terdengar seperti 'Doug' atau 'Steve' dan telah melakukan panggilan telepon satu sama lain dalam waktu 24 jam dari Singapura atau San Francisco

Jenis pertanyaan ini mungkin terlihat dalam penyelidikan penipuan atau sebagai tanggapan atas permintaan informasi regulator keuangan. Dalam perusahaan biasa, informasi ini akan tersebar di setengah lusin atau lebih sistem yang berbeda dan mungkin memerlukan waktu satu minggu atau lebih untuk menjawabnya. Dengan kueri federasi, kita dapat menggabungkannya menjadi satu pertanyaan dan jawaban dalam waktu satu jam. Di era pengawasan peraturan yang semakin ketat, banyak perusahaan berjuang untuk menghindari denda karena terlambat menjawab pertanyaan, dan pertanyaan federasi sangat membantu di sini.

Analisis Greenplum dan pembelajaran mesin

Ekstensi MADlib Greenplum, perpustakaan berbasis SQL untuk analisis data dan pembelajaran mesin, pada awalnya dikembangkan oleh beberapa universitas dan Greenplum. MADlib dirancang untuk bekerja dengan arsitektur paralel Greenplum yang tidak berbagi apa-apa. Tidak semua algoritme pembelajaran mesin dapat dibuat paralel, tetapi bagi algoritme yang bisa, MADlib mencapai skalabilitas linier yang lebih atau kurang dengan ukuran kumpulan data, sambil menghindari transfer data. MADlib menyertakan lebih dari 50 algoritme pembelajaran mesin yang paling umum digunakan.

Salah satu fitur MADlib yang paling berguna adalah antarmuka SQL, yang memungkinkan ilmuwan data warga untuk menambahkan nilai tanpa harus mendaki kurva pembelajaran Python atau R. Model dapat digunakan melalui titik akhir MADlib REST untuk mengoperasionalkan wawasan analitik. Untuk perusahaan yang memiliki tingkat kematangan analitik sedang dan yang menerapkan strategi manajemen keputusan champion / challenge, menggunakan SQL dapat meningkatkan jumlah model yang dipertimbangkan tanpa sumber daya tambahan dialihkan dari tim pusat.

Untuk analis data tradisional, konektor PivotalR (tersedia di CRAN) menyediakan antarmuka bahasa R klasik ke MADlib dengan menerjemahkan kode R ke dalam pernyataan SQL yang sesuai pada klien, kemudian mengirimkannya ke cluster Greenplum untuk dieksekusi. Ini menghindari transfer data dan memungkinkan manipulasi frame data besar yang seharusnya tidak mungkin dilakukan di R karena kendala memori.

Sangat penting

Gudang data HTAP

Pemrosesan transaksional / analitik hibrid (HTAP) adalah istilah yang diciptakan oleh Gartner. Definisi mereka:

Transaksi hybrid / pemrosesan analitik (HTAP) adalah arsitektur aplikasi yang muncul yang "mendobrak dinding" antara pemrosesan transaksi dan analitik. Ini memungkinkan pengambilan keputusan yang lebih terinformasi dan "dalam waktu nyata bisnis". 

Dalam praktiknya, ini berarti kasus penggunaan sistem adalah campuran kueri panjang dan pendek, serta pembaruan dan penghapusan. Untuk mendukung HTAP dan mencegah kekurangan sumber daya, Greenplum mengimplementasikan bentuk containerisasi SQL yang disebut grup sumber daya yang memungkinkan isolasi sumber daya dalam lingkungan HTAP multi-tenant. Dengan menggunakan grup sumber daya, Anda dapat membatasi CPU, RAM (berdasarkan grup atau kueri), dan konkurensi maksimum. Grup sumber daya meningkatkan kinerja pada beban kerja campuran dan mencegah persaingan kueri untuk sumber daya.

Salah satu perbedaan utama antara PostgreSQL dan Greenplum adalah perencana kueri. Meskipun Greenplum mewarisi perencana kueri PostgreSQL saat bercabang, perencanaan kueri yang efisien dalam lingkungan terdistribusi sangat berbeda dari pada satu mesin. Karena alasan itulah Greenplum mulai membangun perencana kueri mereka sendiri, mendasarkannya pada Kerangka Kerja Bertingkat untuk Pengoptimalan Kueri. Algoritme ini mengevaluasi semua rencana kueri yang mungkin dan menetapkan biaya, memilih rencana biaya terendah (tercepat) untuk eksekusi.

Greenplum menyediakan beberapa fitur untuk membantu perencana kueri menghindari pergerakan data, seperti kemampuan untuk mereplikasi tabel dimensi ke setiap node di cluster untuk operasi gabungan lokal yang lebih cepat dan kompresi data yang dapat disesuaikan.

Pemrosesan data semi-terstruktur diwarisi dari PostgreSQL dan mencakup JSON dan JSONB, XML, key-value pair (HSTORE), dan teks biasa. GIN (Generalized Inverted Index), juga diwarisi dari PostgreSQL, dapat digunakan untuk mengindeks kolom teks yang sering digunakan. Untuk kueri teks yang lebih kompleks, GPText dapat digunakan. GPText mengintegrasikan segmen Greenplum dengan pecahan Apache Solr untuk menyediakan kueri penelusuran bahasa alami. Karena pecahan Solr berada di node yang sama, mereka memiliki arsitektur paralel yang sama.

Kinerja Greenplum

Database HTAP memerlukan tindakan penyeimbangan antara kueri analitik yang besar dan berjalan lama, kueri ad-hoc pendek, dan transaksi ACID di sisi OLTP persamaan. Kinerja yang baik dalam skenario beban kerja campuran ini penting untuk kasus penggunaan hybrid yang menjadi tujuan Greenplum. Kernel PostgreSQL 9.4 memberi Greenplum 6 sejumlah pengoptimalan, sebagian besar untuk menghindari kunci, yang menghasilkan peningkatan kinerja 60 kali lipat dari Greenplum 5 pada tolok ukur TPC-B.

Sangat penting

Mengingat PostgreSQL telah membuka jalan untuk pengoptimalan lebih lanjut (dan sekarang ada di versi 12), kami dapat mengharapkan peningkatan lebih lanjut di Greenplum karena kernel ditingkatkan lagi di Greenplum 7.

Pusat Komando Greenplum

Greenplum Command Center adalah bagian dari penawaran Pivotal dan menyediakan antarmuka berbasis web untuk memantau dan mengelola cluster Greenplum (atau beberapa cluster). Meskipun DBA hard-core tidak mungkin melepaskan antarmuka baris perintahnya, Pusat Perintah adalah alat manajemen sambutan untuk penerapan tingkat departemen yang mungkin tidak memiliki akses ke DBA penuh waktu. Saya merasa mudah dinavigasi dan didokumentasikan dengan baik. Pengguna, kueri, node, segmen, dan grup sumber daya semuanya dapat dengan mudah dikelola melalui antarmuka.

Greenplum di perusahaan

Greenplum membuat pilihan ideal untuk standar departemen, karena dapat menangani beban kerja campuran, termasuk analitik prediktif, dalam satu platform. Jika Anda tidak memilih perangkat lunak a-la-carte dari menu ELA, atau ingin keluar dari 'api penyucian percontohan' AI, investasi dalam pendekatan HTAP Greenplum dapat menyediakan cara untuk meningkatkan penggunaan inovatif pembelajaran mesin dan analitik pada titik harga yang lebih rendah daripada solusi yang bersaing.

Greenplum juga sangat cocok untuk pengganti Netezza atau Teradata tingkat perusahaan. Dan sementara Greenplum tidak cukup mampu untuk merebut OLTP dari Oracle Database atau Microsoft SQL Server di seluruh perusahaan, itu akan bekerja dengan baik untuk sistem transaksional ukuran menengah.

Greenplum adalah contoh bagus dari aturan 80/20. Meskipun tidak melakukan tugas tunggal apa pun serta alat yang dibangun untuk tujuan, ia melakukan sebagian besar dari mereka dengan cukup baik untuk mencakup 80% kasus penggunaan, dan itu tanpa overhead organisasi dan operasional yang terlibat dalam menyatukan beberapa sistem dan mengintegrasikannya ke dalam pipeline analytics. Ini sangat menguntungkannya ketika mempertimbangkan total biaya kepemilikan.

Biaya : Sumber terbuka gratis di bawah Lisensi Apache 2.0. 

Platform : Tersedia sebagai kode sumber; sebagai paket untuk distribusi CentOS, Red Hat, Debian, dan Ubuntu Linux; dan di pasar Amazon Web Services, Microsoft Azure, dan Google Cloud Platform.