10 cara untuk bertanya Hadoop dengan SQL

SQL: lama dan hancur. Hadoop: kesegaran baru. Itulah kebijaksanaan konvensional, tetapi banyaknya projek yang meletakkan front end SQL yang selesa di kedai data Hadoop menunjukkan bahawa terdapat keperluan sebenar untuk produk yang menjalankan pertanyaan SQL terhadap data yang tinggal di Hadoop berbanding hanya menggunakan pelaporan asli Hadoop atau mengeksport data Hadoop ke pangkalan data konvensional.

MapR menghasilkan pengedaran Hadoop sendiri, dan edisi terbaru (4.0.1) menggabungkannya dengan empat mesin yang berbeza untuk meminta SQL vial Hadoop. Keempatnya adalah sistem pertanyaan SQL yang signifikan untuk Hadoop, tetapi jauh lebih banyak teknologi SQL-for-Hadoop di luar sana, dan mereka dibina untuk memenuhi keperluan dan kes penggunaan yang berbeza, dari esoterik hingga universal.

Pertama, empat enjin SQL yang disertakan dengan MapR:

Apache Hive: Ini adalah penyelesaian SQL-on-Hadoop yang asli, yang cuba meniru tingkah laku, sintaks, dan antara muka MySQL, termasuk pelanggan baris perintah. Ini juga termasuk pemacu Java API dan JDBC untuk mereka dengan investasi yang ada dalam aplikasi Java yang melakukan pertanyaan gaya MySQL. Walaupun terdapat kesederhanaan dan kemudahan penggunaannya, Hive lambat dan hanya dapat dibaca, yang telah mendorong sejumlah inisiatif untuk memperbaikinya.

Stinger: Hortonworks, pengeluar pengedaran Hadoop sendiri, memulakan projek Stinger sebagai cara untuk memajukan pembangunan Apache Hive dan meningkatkan prestasinya. Penjelmaan terbaru projek itu, Stinger.next, mempunyai "masa tindak balas pertanyaan kedua" sebagai salah satu matlamat reka bentuknya, bersama dengan sokongan untuk tingkah laku transaksi (sisipan, kemas kini, dan penghapusan). Perubahan ini semuanya akan dibuat dalam tempoh 18 bulan akan datang, dengan ciri lain seperti SQL analytics yang akan diikuti.

Apache Drill: Pelaksanaan sumber terbuka dari Dremel Google (aka BigQuery), Drill dirancang untuk melakukan pertanyaan latensi rendah pada pelbagai jenis penyimpanan data sekaligus dengan antara muka pertanyaan yang berbeza (seperti Hadoop dan NoSQL), dan sangat terukur. Drill juga bertujuan menjalankan pertanyaan dalam jangka masa pelaksanaan yang luas, hanya berlangsung beberapa milisaat hingga berjalan selama beberapa minit. MapR mendakwa Drill berpandangan ke depan, bukan hanya serasi ke belakang, salah satu sebab ia memilih untuk meletakkan usaha pembangunannya sendiri di belakang projek itu.

Spark SQL: Projek Apache's Spark adalah untuk pemprosesan data Hadoop dalam masa nyata, dalam memori, yang selari Spark SQL dibina di atasnya untuk membolehkan pertanyaan SQL ditulis berdasarkan data. Cara yang lebih baik untuk memikirkannya adalah sebagai Apache Hive untuk Apache Spark, kerana ia menggunakan kembali kunci teknologi Hive. Dalam erti kata itu, ini adalah tambahan bagi mereka yang sudah bekerja dengan Spark. (Projek sebelumnya, Shark, telah digabungkan dalam projek ini.)

Di luar keempat-empat ini, enam yang lain menonjol:

Apache Phoenix: Pembangunnya menyebutnya "kulit SQL untuk HBase" - cara untuk menanyakan HBase dengan perintah seperti SQL melalui pemacu JDBC yang dapat disematkan yang dibina untuk prestasi tinggi dan operasi membaca / menulis. Anggaplah ia hampir tidak perlu bagi mereka yang menggunakan HBase, kerana ia menjadi sumber terbuka, dikembangkan secara agresif, dan dilengkapi dengan ciri-ciri berguna seperti pemuatan data pukal.

Cloudera Impala: Dalam beberapa cara, Impala adalah satu lagi pelaksanaan Dremel / Apache Drill, yang dirancang untuk memperluas Hive sehingga pengguna Hive yang keluar dapat memanfaatkannya sepenuhnya. Data yang disimpan dalam HDFS atau HBase dapat ditanyakan, dan sintaks SQL, dapat diramalkan, sama dengan Apache Hive. Tetapi perbezaan utama Impala dari Drill adalah bahawa ia tidak dimaksudkan untuk menjadi sumber-agnostik; ia menyoal Hadoop secara eksklusif.

HAWQ untuk Pivotal HD: Pivotal menyediakan pengedaran Hadoop sendiri (Pivotal HD), dan HAWQ adalah komponen proprietari untuk melakukan pertanyaan SQL dalam HDFS. Akibatnya, ia adalah produk Pivotal sahaja, walaupun Pivotal tersekat untuk pemprosesan SQL selari dan pematuhan tinggi dengan standard SQL.

Presto: Dibina oleh jurutera Facebook dan digunakan secara dalaman di syarikat itu, enjin pertanyaan sumber terbuka ini mengingatkan Apache Drill kerana ia adalah sumber-agnostik. Ia boleh membuat pertanyaan baik Hive dan Cassandra menggunakan perintah ANSI SQL, dan pembangun dapat memperluas sistem dengan menulis penyambung untuknya menggunakan antara muka penyedia perkhidmatannya. Beberapa fungsi penyisipan data disokong, tetapi masih sangat asas: Anda tidak dapat melakukan kemas kini, hanya sisipan.

Oracle Big Data SQL: Tinggal beberapa saat sebelum Oracle melancarkan permintaan depan SQL sendiri untuk Hadoop. Seperti Drill, ia boleh meminta Hadoop dan kedai NoSQL lain. Tetapi tidak seperti Drill, ia adalah produk milik Oracle, dan ia hanya berintegrasi dengan Pangkalan Data Oracle 12c ke atas, yang secara serius membataskan pasaran untuknya.

IBM BigSQL: Hanya menunggu masa sebelum IBM melakukan perkara yang sama, walaupun ia mengumumkan pratonton teknologi pertama BigSQL pada awal tahun 2013. Sayangnya, seperti tawaran Oracle, ia berkaitan dengan produk IBM tertentu di bahagian belakang - dalam kes ini, Hadoop IBM, InfoSphere BigInsights. Walaupun begitu, bahagian depan boleh menjadi pelanggan JDBC / ODBC standard, dan pertanyaan boleh merangkumi data dari IBM DB2, Teradata, atau Sistem PureData untuk contoh Analitis.