Video: Mark of Cain and the Beast and Other Occult Secrets - Zen Garcia, Gary Wayne and David Carrico 2024
Anda mungkin sudah tahu bahawa pakar-pakar dalam pemodelan pangkalan data relasional dan reka bentuk lazimnya menghabiskan banyak masa mereka mereka bentuk pangkalan data yang normal, atau skema <. Pangkalan data normalisasi adalah teknik yang melindungi terhadap kehilangan data, redundansi, dan anomali lain kerana data dikemas kini dan diambil. Para ahli mengikuti beberapa peraturan untuk sampai ke pangkalan data yang dinormalkan, tetapi Peraturan 1 adalah bahawa anda mesti berakhir dengan
kumpulan jadual. (Satu jadual besar menyimpan semua data anda tidak normal.) Terdapat pengecualian, bergantung pada kes penggunaan, tetapi undang-undang banyak jadual umumnya diikuti dengan teliti, terutama untuk pangkalan data yang menyokong urus niaga atau pemprosesan analitik (risikan perniagaan, sebagai contoh).
Apa semua ini perlu dilakukan dengan menyertai Hive? Nah, ingat bahawa sistem operasi asas untuk Hive adalah (kejutan!) Apache Hadoop: MapReduce adalah enjin untuk menyertai jadual, dan Sistem Fail Hadoop (HDFS) adalah penyimpanan asas. Ini semua berita baik untuk pengguna yang ingin membuat, mengurus, dan menganalisis jadual besar dengan Hive.
Ingatlah bahawa MapReduce dan HDFS dioptimumkan untuk pemalsuan dengan analisis data besar dan bahawa, di dunia ini
latency - masa tindak balas pengguna, dengan kata lain - biasanya tinggi. Hive direka untuk pemprosesan analisis gaya batch, bukan untuk pemprosesan transaksi dalam talian yang cepat. Pengguna yang mahukan prestasi terbaik dengan SQL pada Apache Hadoop mempunyai penyelesaian yang tersedia.
Oleh kerana jadual Hive membaca dan menulis melalui HDFS biasanya melibatkan blok data yang sangat besar, lebih banyak data yang dapat anda uruskan sama sekali dalam satu jadual, lebih baik prestasi keseluruhannya.
Cakera dan akses rangkaian jauh lebih perlahan daripada akses memori, jadi meminimumkan HDFS membaca dan menulis sedapat mungkin.
Dengan maklumat latar belakang ini, anda boleh menangani membuat bergabung dengan Hive. Nasib baik, komuniti pembangunan sarang realistik dan memahami bahawa pengguna ingin dan perlu menyertai jadual dengan HiveQL. Pengetahuan ini menjadi sangat penting dengan pembesaran EDW. Gunakan kes-kes seperti "queryable" arkib sering memerlukan bergabung untuk analisis data.
Berikut adalah contoh menyertai sarang menggunakan jadual data penerbangan. Penyenaraian menunjukkan anda bagaimana untuk membuat dan memaparkan jadual myflightinfo2007 dan jadual myflightinfo2008 dari jadual FlightInfo2007 dan FlightInfo2008 yang lebih besar. Pelan ini bersama-sama menggunakan CTAS yang dibuat myflightinfo2007 dan jadual myflightinfo2008 untuk menggambarkan bagaimana anda boleh melakukan bergabung di Hive.
Angka ini menunjukkan hasil gabungan dalaman dengan jadual myflightinfo2007 dan myflightinfo2008 menggunakan klien SQL SQuirreL.
Sopan menyokong
equi-joins, jenis penyertaan tertentu yang hanya menggunakan perbandingan kesamaan dalam predikat gabungan. (ON m8. FlightNum = m7. FlightNum adalah salah satu contoh dari equi-join.) Penyusun lain seperti Less Than (<) tidak disokong. Sekatan ini hanya disebabkan oleh batasan pada enjin MapReduce yang mendasari. Juga, anda tidak boleh menggunakan ATAU dalam klausa ON. Angka menggambarkan contoh terdahulu dalam batin dan dua jenis gabungan sarang lain. Perhatikan bahawa anda boleh mengesahkan hasil gabungan dalaman dengan mengkaji kandungan jadual myflight2007 dan myflight2008.
Angka berikut menggambarkan bagaimana gabungan batin bekerja menggunakan gambarajah Venn, jika anda tidak biasa dengan teknik tersebut. Idea asas di sini adalah bahawa gabungan dalaman mengembalikan rekod yang sepadan antara dua jadual. Jadi gabungan dalaman adalah alat analisis yang sempurna untuk menentukan penerbangan mana yang sama dari JFK (New York) ke ORD (Chicago) pada bulan Julai 2007 dan Julai 2008.
Mengoptimalkan Hive join adalah topik hangat dalam komuniti Hive. Untuk maklumat lanjut mengenai teknik pengoptimuman semasa, lihat halaman Pengoptimuman Sertai pada wiki Hive.