Partisi Sarang & Bucket dengan Contoh

Daftar Isi:

Anonim

Tabel, Partisi, dan Bucket adalah bagian dari pemodelan data Hive.

Apa itu Partisi?

Partisi Hive adalah cara untuk mengatur tabel menjadi beberapa partisi dengan membagi tabel menjadi beberapa bagian berbeda berdasarkan kunci partisi.

Partisi berguna jika tabel memiliki satu atau lebih tombol Partisi. Kunci partisi adalah elemen dasar untuk menentukan bagaimana data disimpan dalam tabel.

Contoh : -

"Klien memiliki Beberapa data E-niaga yang termasuk dalam operasi India di mana setiap negara bagian (38 negara bagian) operasi disebutkan secara keseluruhan. Jika kami mengambil kolom negara bagian sebagai kunci partisi dan melakukan partisi pada data India tersebut secara keseluruhan, kami dapat untuk mendapatkan Jumlah partisi (38 partisi) yang sama dengan jumlah state (38) yang ada di India, sehingga setiap data state dapat dilihat secara terpisah pada tabel partisi.

Cuplikan Kode Sampel untuk partisi

  1. Penciptaan Tabel semua negara bagian
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
  1. Memuat data ke dalam tabel yang dibuat semua status
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Pembuatan tabel partisi
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. Untuk partisi kita harus mengatur properti ini

    set hive.exec.dynamic.partition.mode=nonstrict
  2. Memuat data ke dalam tabel partisi
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
  1. Pemrosesan aktual dan pembentukan tabel partisi berdasarkan status sebagai kunci partisi
  2. Akan ada 38 keluaran partisi dalam penyimpanan HDFS dengan nama file sebagai nama negara. Kami akan memeriksa ini di langkah ini

Tangkapan layar berikut akan menunjukkan eksekusi kode yang disebutkan di atas

Dari kode di atas, kami melakukan hal-hal berikut

  1. Pembuatan tabel semua negara bagian dengan 3 nama kolom seperti negara bagian, distrik, dan pendaftaran
  2. Memuat data ke dalam tabel semua status
  3. Pembuatan tabel partisi dengan status sebagai kunci partisi
  4. Pada langkah ini Mengatur mode partisi sebagai non-ketat (Mode ini akan mengaktifkan mode partisi dinamis)
  5. Memuat data ke dalam partisi tablestate_part
  6. Pemrosesan aktual dan pembentukan tabel partisi berdasarkan status sebagai kunci partisi
  7. Akan ada 38 keluaran partisi di penyimpanan HDFS dengan nama file sebagai nama negara. Kami akan memeriksa ini di langkah ini. Pada langkah ini, kita melihat 38 keluaran partisi dalam HDFS

Apa itu Bucket?

Bucket di sarang digunakan untuk memisahkan data tabel sarang menjadi beberapa file atau direktori. ini digunakan untuk pembuatan kueri yang efisien.

  • Data yang ada di partisi itu dapat dibagi lagi menjadi Bucket
  • Pembagian dilakukan berdasarkan Hash kolom tertentu yang kami pilih di tabel.
  • Bucket menggunakan beberapa bentuk algoritme Hash di bagian belakang untuk membaca setiap record dan menempatkannya ke dalam bucket
  • Di Hive, kita harus mengaktifkan bucket dengan menggunakan set.hive.enforce.bucketing = true;

Langkah 1) Membuat Bucket seperti yang ditunjukkan di bawah ini.

Dari tangkapan layar di atas

  • Kami membuat sample_bucket dengan nama kolom seperti first_name, job_id, departemen, gaji dan negara
  • Kami membuat 4 ember di sana.
  • Setelah data dimuat secara otomatis, tempatkan data ke dalam 4 keranjang

Langkah 2) Memuat Data ke dalam keranjang sampel tabel

Dengan asumsi bahwa "tabel Karyawan" sudah dibuat di sistem Hive. Pada langkah ini, kita akan melihat pemuatan data dari tabel karyawan ke dalam tabel sampel ember.

Sebelum kita mulai memindahkan data karyawan ke dalam kelompok, pastikan itu terdiri dari nama kolom seperti nama_pertama, id_pekerjaan, departemen, gaji, dan negara.

Di sini kami memuat data ke dalam ember sampel dari tabel karyawan.

Langkah 3) Menampilkan 4 keranjang yang dibuat pada Langkah 1

Dari tangkapan layar di atas, kita dapat melihat bahwa data dari tabel karyawan ditransfer ke dalam 4 keranjang yang dibuat pada langkah 1.