Kueri Hive: Pesan Berdasarkan, Kelompokkan Berdasarkan, Distribusikan Berdasarkan, Cluster Dengan Contoh

Hive menyediakan bahasa kueri tipe SQL untuk tujuan ETL Hadoop berkas sistem.

Bahasa Hive Query (HiveQL) menyediakan lingkungan tipe SQL di Hive untuk bekerja dengan tabel, database, kueri.

Kita dapat memiliki tipe Klausa berbeda yang dikaitkan dengan Hive untuk melakukan manipulasi dan kueri data tipe berbeda. Untuk konektivitas yang lebih baik dengan node berbeda di luar lingkungan. HIVE juga menyediakan konektivitas JDBC.

Hive queries menyediakan fitur-fitur berikut:

  • Pemodelan data seperti Pembuatan database, tabel, dll.
  • Fungsi ETL seperti Ekstraksi, Transformasi, dan Memuat data ke dalam tabel
  • Bergabung untuk menggabungkan tabel data yang berbeda
  • Skrip khusus khusus pengguna untuk kemudahan kode
  • Alat kueri yang lebih cepat di atas Hadoop

Membuat Tabel di Hive

Sebelum memulai topik utama tutorial ini, pertama-tama kita akan membuat tabel untuk digunakan sebagai referensi pada tutorial berikutnya.

Di sini, di tutorial ini, kita akan membuat tabel “employees_guru” dengan 6 kolom.

Membuat Tabel di Hive

Dari cuplikan layar di atas,

  1. Kami membuat tabel “employees_guru” dengan 6 nilai kolom seperti Id, Nama, Umur, Alamat, Gaji, Departemen, yang merupakan milik karyawan yang ada di organisasi “guru”.
  2. Di sini, di langkah ini kita memuat data ke dalam tabel Employee_guru. Data yang akan kita muat akan ditempatkan di bawah file Employees.txt

Pesan berdasarkan permintaan

Sintaks ORDER BY di HiveQL mirip dengan sintaks ORDER BY di SQL bahasa.

Diurutkan berdasarkan adalah klausa yang kita gunakan dengan pernyataan “PILIH” di dalamnya Pertanyaan sarang, yang membantu mengurutkan data. Klausa pesanan berdasarkan menggunakan kolom pada tabel Hive untuk mengurutkan nilai kolom tertentu yang disebutkan dengan Pesan berdasarkan. Untuk apa pun nama kolomnya, kita mendefinisikan urutan demi klausa, kueri akan memilih dan menampilkan hasil dengan urutan menaik atau menurun dari nilai kolom tertentu.

Jika urutan berdasarkan bidang yang disebutkan adalah string, maka hasilnya akan ditampilkan dalam urutan leksikografis. Di bagian belakang, itu harus diteruskan ke satu peredam.

Pesan berdasarkan Kueri

Dari gambar di atas, kita dapat mengamati hal berikut

  1. Ini adalah query yang dijalankan pada tabel “employees_guru” dengan klausa ORDER BY dengan Departemen sebagaimana ditentukan nama kolom ORDER BY. “Department” adalah String sehingga akan menampilkan hasil berdasarkan urutan leksikografis.
  2. Ini adalah output aktual untuk query tersebut. Jika kita mengamatinya dengan benar, kita dapat melihat bahwa ia menampilkan hasil berdasarkan kolom Departemen seperti ADMIN, Keuangan, dan seterusnya agar Query dapat dijalankan.

Pertanyaan:

SELECT * FROM employees_guru ORDER BY Department;

Kelompokkan berdasarkan kueri

Klausa kelompokkan menurut menggunakan kolom pada tabel Hive untuk mengelompokkan nilai kolom tertentu yang disebutkan dengan kelompokkan menurut. Apa pun nama kolomnya, kita mendefinisikan klausa “groupby”, kueri akan memilih dan menampilkan hasil dengan mengelompokkan nilai kolom tertentu.

Misalnya, pada cuplikan layar di bawah ini akan ditampilkan jumlah total karyawan yang ada di setiap departemen. Di sini kita memiliki “Departemen” sebagai Kelompok berdasarkan nilai.

Kelompokkan berdasarkan Kueri

Dari gambar di atas, kita akan melihat hal berikut

  1. Ini adalah kueri yang dilakukan pada tabel “employees_guru” dengan klausa GROUP BY dengan Departemen sebagaimana ditentukan nama kolom GROUP BY.
  2. Output yang ditampilkan di sini adalah nama departemen, dan jumlah karyawan di berbagai departemen. Di sini semua karyawan yang termasuk dalam departemen tertentu dikelompokkan dan ditampilkan dalam hasil. Jadi hasilnya adalah nama departemen dengan jumlah total karyawan yang ada di setiap departemen.

Query:

SELECT Department, count(*) FROM employees_guru GROUP BY Department;

Sortir dengan

Klausa pengurutan berdasarkan dijalankan pada nama kolom tabel Hive untuk mengurutkan output. Kita dapat menyebutkan DESC untuk mengurutkan urutan dalam urutan menurun dan menyebutkan ASC untuk urutan menaik.

Dalam pengurutan ini, ia akan mengurutkan baris sebelum diumpankan ke peredam. Selalu urutkan berdasarkan jenis kolom.

Misalnya, jika tipe kolom adalah numerik maka akan diurutkan dalam urutan numerik, jika tipe kolom adalah string maka akan diurutkan dalam urutan leksikografis.

Sortir dengan

Dari gambar layar di atas kita dapat mengamati hal berikut:

  1. Ini adalah query yang dijalankan pada tabel “employees_guru” dengan klausa SORT BY dengan “id” seperti yang ditentukan nama kolom SORT BY. Kami menggunakan kata kunci DESC.
  2. Jadi output yang ditampilkan akan dalam urutan menurun dari “id”.

Query:

SELECT * from employees_guru SORT BY Id DESC;

Cluster By

Cluster Dengan digunakan sebagai alternatif untuk klausa Distribute BY dan Sort BY di Hive-QL.

Cluster Klausa BY digunakan pada tabel yang ada di Hive. Hive menggunakan kolom di Cluster oleh untuk mendistribusikan baris di antara reduksi. Cluster Kolom BY akan menuju ke beberapa reduksi.

  • Ini memastikan urutan nilai yang ada di beberapa reduksi

Sebagai contoh, Cluster Klausa By disebutkan pada kolom Id nama tabel tabel Employee_guru. Output saat menjalankan kueri ini akan memberikan hasil ke beberapa reduksi di bagian belakang. Namun sebagai front end, ini merupakan klausa alternatif untuk Sort By dan Distribute By.

Ini sebenarnya proses back-end ketika kita melakukan query dengan sort by, group by, dan cluster by dalam kerangka Map reduce. Jadi jika kita ingin menyimpan hasil ke dalam beberapa reducer, kita menggunakan Cluster Dengan.

Cluster By

Dari gambar layar di atas kita mendapatkan pengamatan berikut:

  1. Ini adalah kueri yang menjalankan klausa CLUSTER BY pada nilai kolom Id. Di sini, kueri akan mengurutkan nilai Id.
  2. Ini menampilkan Id dan Nama yang ada dalam urutan guru_employees yang diurutkan berdasarkan

Query:

SELECT  Id, Name from employees_guru CLUSTER BY Id;

Distribusikan Oleh

Klausa Distribusi BY yang digunakan pada tabel yang ada di Hive. Hive menggunakan kolom di Distribute by untuk mendistribusikan baris di antara reduksi. Semua kolom Distribute BY akan menuju ke peredam yang sama.

  • Ini memastikan setiap N reduksi mendapatkan rentang kolom yang tidak tumpang tindih
  • Itu tidak mengurutkan output dari setiap peredam

Distribusikan Oleh

Dari gambar di atas, kita dapat mengamati hal berikut

  1. DISTRIBUSI OLEH Klausa tampil pada Id tabel “empoloyees_guru”.
  2. Output yang menunjukkan Id, Nama. Di bagian belakang, akan menuju ke reducer yang sama

Query:

SELECT  Id, Name from employees_guru DISTRIBUTE BY Id;