10 cara untuk melakukan kueri Hadoop dengan SQL

SQL: tua dan rusak. Hadoop: panas baru. Itu adalah kebijaksanaan konvensional, tetapi banyaknya proyek yang menempatkan front end SQL yang nyaman di penyimpanan data Hadoop menunjukkan bahwa ada kebutuhan nyata untuk produk yang menjalankan kueri SQL terhadap data yang ada di dalam Hadoop daripada hanya menggunakan pelaporan asli Hadoop atau mengekspor data Hadoop ke database konvensional.

MapR menghasilkan distribusi Hadoop-nya sendiri, dan edisi terbaru (4.0.1) menggabungkannya dengan empat mesin berbeda untuk menanyakan SQL vial Hadoop. Keempatnya adalah sistem kueri SQL yang signifikan untuk Hadoop, tetapi jauh lebih banyak teknologi SQL-untuk-Hadoop di luar sana, dan mereka dibuat untuk memenuhi berbagai kebutuhan dan kasus penggunaan, dari yang esoterik hingga universal.

Pertama, empat mesin SQL yang disertakan dengan MapR:

Apache Hive: Ini adalah solusi SQL-on-Hadoop asli, yang mencoba meniru perilaku, sintaksis, dan antarmuka MySQL, termasuk klien baris perintah. Ini juga mencakup driver Java API dan JDBC bagi mereka yang memiliki investasi dalam aplikasi Java yang melakukan kueri gaya MySQL. Meskipun relatif sederhana dan mudah digunakan, Hive lambat dan hanya dapat dibaca, yang telah memicu sejumlah inisiatif untuk memperbaikinya.

Stinger: Hortonworks, produsen distribusi Hadoopnya sendiri, memulai proyek Stinger sebagai cara untuk memajukan pengembangan Apache Hive dan meningkatkan kinerjanya. Inkarnasi terbaru proyek, Stinger.next, memiliki "waktu respons kueri sub-detik" sebagai salah satu tujuan desainnya, bersama dengan dukungan untuk perilaku transaksional (menyisipkan, memperbarui, dan menghapus). Semua perubahan ini akan diluncurkan dalam 18 bulan ke depan, dengan fitur lain seperti analisis SQL yang akan menyusul.

Apache Drill: Sebuah implementasi open source Dremel Google (alias BigQuery), Drill dirancang untuk melakukan kueri latensi rendah pada beberapa jenis penyimpanan data sekaligus dengan antarmuka kueri yang berbeda (seperti Hadoop dan NoSQL), dan sangat skalabel. Bor juga dimaksudkan untuk menjalankan kueri dalam rentang waktu eksekusi yang luas, yang berlangsung hanya beberapa milidetik hingga berjalan selama beberapa menit. MapR mengklaim Drill berwawasan ke depan, tidak hanya kompatibel ke belakang, salah satu alasan mengapa memilih untuk menempatkan upaya pengembangannya sendiri di belakang proyek itu.

Spark SQL: Proyek Spark Apache adalah untuk pemrosesan data Hadoop dalam waktu nyata, dalam memori, dan diparalelkan. Spark SQL dibangun di atasnya untuk memungkinkan kueri SQL dituliskan pada data. Cara yang lebih baik untuk memikirkannya mungkin seperti Apache Hive untuk Apache Spark, karena ia menggunakan kembali bagian penting dari teknologi Hive. Dalam hal ini, ini adalah tambahan bagi mereka yang sudah bekerja dengan Spark. (Proyek sebelumnya, Shark, telah dimasukkan ke dalam proyek ini.)

Di luar empat ini, enam lainnya menonjol:

Apache Phoenix: Pengembangnya menyebutnya "SQL skin for HBase" - cara untuk menanyakan HBase dengan perintah mirip SQL melalui driver JDBC yang dapat disematkan yang dibuat untuk kinerja tinggi dan operasi baca / tulis. Anggap saja itu hampir tidak perlu dipikirkan lagi bagi mereka yang menggunakan HBase, berkat itu menjadi open source, dikembangkan secara agresif, dan dilengkapi dengan fitur-fitur berguna seperti pemuatan data massal.

Cloudera Impala: Dalam beberapa hal, Impala adalah implementasi lain dari Dremel / Apache Drill, yang dirancang untuk dikembangkan di Hive sehingga pengguna Hive yang keluar dapat memanfaatkannya semaksimal mungkin. Data yang disimpan dalam HDFS atau HBase dapat dikueri, dan sintaks SQL, dapat diprediksi, sama dengan Apache Hive. Tapi perbedaan utama Impala dari Drill adalah bahwa itu tidak dimaksudkan sebagai sumber-agnostik; itu menanyakan Hadoop secara eksklusif.

HAWQ untuk Pivotal HD: Pivotal menyediakan distribusi Hadoop-nya sendiri (Pivotal HD), dan HAWQ adalah komponen berpemilik untuk melakukan kueri SQL dalam HDFS. Akibatnya, ini adalah produk Pivotal-only, meskipun Pivotal tunggul untuk pemrosesan SQL paralel dan kepatuhan yang tinggi dengan standar SQL.

Presto: Dibangun oleh para insinyur Facebook dan digunakan secara internal di perusahaan itu, mesin kueri sumber terbuka ini mengingatkan pada Apache Drill karena bersifat agnostik sumber. Itu dapat meminta Hive dan Cassandra menggunakan perintah ANSI SQL, dan pengembang dapat memperluas sistem dengan menulis konektor untuk itu menggunakan antarmuka penyedia layanannya. Beberapa fungsi penyisipan data didukung, tetapi masih sangat mendasar: Anda tidak dapat melakukan pembaruan, hanya penyisipan.

Oracle Big Data SQL: Hanya masalah waktu sebelum Oracle merilis front end SQL-querying untuk Hadoop. Seperti Drill, ini dapat meminta Hadoop dan penyimpanan NoSQL lainnya. Tapi tidak seperti Drill, ini adalah produk Oracle sendiri, dan hanya terintegrasi dengan Oracle Database 12c dan lebih tinggi, yang secara serius membatasi pasar untuk itu.

IBM BigSQL: Hanya masalah waktu sebelum IBM melakukan hal yang sama, meskipun ia mengumumkan pratinjau teknologi pertama BigSQL pada awal 2013. Sayangnya, seperti penawaran Oracle, itu terkait dengan produk IBM tertentu di bagian belakang - dalam hal ini, IBM's Hadoop, InfoSphere BigInsights. Meskipun demikian, front end dapat menjadi klien JDBC / ODBC standar, dan kueri dapat menyertakan data dari IBM DB2, Teradata, atau Sistem PureData untuk instans Analytics.