Partition Hive & Baldi dengan Contoh

Isi kandungan:

Anonim

Jadual, Partition, dan Bucket adalah bahagian pemodelan data Hive.

Apa itu Partition?

Hive Partitions adalah cara untuk mengatur jadual menjadi partition dengan membahagikan jadual menjadi bahagian yang berbeza berdasarkan kunci partition.

Partition berguna apabila jadual mempunyai satu atau lebih kekunci Partition. Kekunci partition adalah elemen asas untuk menentukan bagaimana data disimpan dalam jadual.

Contohnya : -

"Klien memiliki Beberapa data E-commerce milik operasi India di mana setiap negara (38 negeri) disebutkan secara keseluruhan. Jika kita mengambil kolom negara sebagai kunci partisi dan melakukan partisi pada data India itu secara keseluruhan, kita dapat untuk mendapatkan Bilangan partisi (38 partisi) yang sama dengan bilangan negeri (38) yang ada di India. Sehingga setiap data negeri dapat dilihat secara berasingan dalam jadual partisi.

Contoh Coretan Kod untuk partition

  1. Penciptaan Jadual semua negeri
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
  1. Memuatkan data ke dalam jadual yang dibuat di semua negeri
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Pembuatan jadual partition
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. Untuk partition kita harus menetapkan harta ini

    set hive.exec.dynamic.partition.mode=nonstrict
  2. Memuatkan data ke dalam jadual partition
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
  1. Pemprosesan dan pembentukan jadual partisi sebenar berdasarkan keadaan sebagai kunci partition
  2. Akan ada 38 output partisi dalam penyimpanan HDFS dengan nama fail sebagai nama negara. Kami akan menyemaknya dalam langkah ini

Tangkapan skrin berikut akan menunjukkan kepada anda pelaksanaan kod yang disebutkan di atas

Dari kod di atas, kami melakukan perkara-perkara berikut

  1. Pembuatan jadual semua negeri dengan 3 nama lajur seperti negeri, daerah, dan pendaftaran
  2. Memuatkan data ke dalam jadual semua keadaan
  3. Pembuatan jadual partition dengan keadaan sebagai kunci partition
  4. Dalam langkah ini Menetapkan mod partition sebagai tidak ketat (Mod ini akan mengaktifkan mod partition dinamik)
  5. Memuatkan data ke dalam partition tablestate_part
  6. Pemprosesan dan pembentukan jadual partisi sebenar berdasarkan keadaan sebagai kunci partition
  7. Terdapat 38 output partisi dalam penyimpanan HDFS dengan nama fail sebagai nama negeri. Kami akan menyemaknya dalam langkah ini. Dalam langkah ini, kita melihat 38 output partisi dalam HDFS

Apa itu Baldi?

Bucket dalam sarang digunakan dalam pemisahan data jadual sarang menjadi beberapa fail atau direktori. ia digunakan untuk membuat pertanyaan dengan cekap.

  • Data yang terdapat dalam partisi tersebut dapat dibahagikan lebih jauh ke dalam Bucket
  • Pembahagian dilakukan berdasarkan Hash lajur tertentu yang kami pilih dalam jadual.
  • Bucket menggunakan beberapa bentuk algoritma Hashing di hujung belakang untuk membaca setiap rekod dan memasukkannya ke dalam baldi
  • Di Hive, kita mesti mengaktifkan baldi dengan menggunakan set.hive.enforce.bucketing = true;

Langkah 1) Membuat Baldi seperti gambar di bawah.

Dari tangkapan skrin di atas

  • Kami membuat sample_bucket dengan nama lajur seperti nama depan, nama_pegawai, jabatan, gaji dan negara
  • Kami membuat 4 baldi di luar.
  • Setelah data dimuat secara automatik, masukkan data ke dalam 4 baldi

Langkah 2) Memuatkan data ke dalam baldi sampel jadual

Dengan andaian bahawa "Jadual pekerja" sudah dibuat dalam sistem Hive. Dalam langkah ini, kita akan melihat pemuatan Data dari jadual pekerja ke dalam baldi sampel jadual.

Sebelum kita mula memindahkan data pekerja ke dalam keranjang, pastikan data tersebut terdiri daripada nama lajur seperti nama pertama, nama_pekerjaan, jabatan, gaji dan negara

Di sini kami memuatkan data ke dalam baldi sampel dari jadual pekerja.

Langkah 3) Memaparkan 4 baldi yang dibuat pada Langkah 1

Dari tangkapan skrin di atas, kita dapat melihat bahawa data dari jadual pekerja dipindahkan ke dalam 4 baldi yang dibuat pada langkah 1.