Sarang - Partisi

Hive mengatur tabel menjadi beberapa partisi. Ini adalah cara membagi tabel menjadi beberapa bagian terkait berdasarkan nilai kolom yang dipartisi seperti tanggal, kota, dan departemen. Menggunakan partisi, mudah untuk menanyakan sebagian dari data.

Tabel atau partisi dibagi lagi menjadi buckets,untuk menyediakan struktur tambahan pada data yang dapat digunakan untuk pembuatan kueri yang lebih efisien. Bucketing bekerja berdasarkan nilai fungsi hash dari beberapa kolom tabel.

Misalnya, tabel bernama Tab1berisi data karyawan seperti id, nama, dept, dan yoj (tahun bergabung). Misalkan Anda perlu mengambil detail dari semua karyawan yang bergabung pada tahun 2012. Kueri mencari informasi yang diperlukan di seluruh tabel. Namun, jika Anda mempartisi data karyawan dengan tahun dan menyimpannya dalam file terpisah, ini mengurangi waktu pemrosesan kueri. Contoh berikut menunjukkan cara mempartisi file dan datanya:

File berikut berisi tabel Employeedata.

/ tab1 / Employeedata / file1

id, name, dept, yoj
1, gopal, TP, 2012
2, kiran, HR, 2012
3, kaleel,SC, 2013
4, Prasanth, SC, 2013

Data di atas dipartisi menjadi dua file menggunakan tahun.

/ tab1 / Employeedata / 2012 / file2

1, gopal, TP, 2012
2, kiran, HR, 2012

/ tab1 / Employeedata / 2013 / file3

3, kaleel,SC, 2013
4, Prasanth, SC, 2013

Menambahkan Partisi

Kita dapat menambahkan partisi ke tabel dengan mengubah tabel. Mari kita asumsikan kita memiliki tabel yang disebutemployee dengan bidang seperti Id, Nama, Gaji, Penunjukan, Departemen, dan yoj.

Sintaksis:

ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec
[LOCATION 'location1'] partition_spec [LOCATION 'location2'] ...;

partition_spec:
: (p_column = p_col_value, p_column = p_col_value, ...)

Kueri berikut digunakan untuk menambahkan partisi ke tabel karyawan.

hive> ALTER TABLE employee
> ADD PARTITION (year=’2012’)
> location '/2012/part2012';

Mengganti Nama Partisi

Sintaks dari perintah ini adalah sebagai berikut.

ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;

Kueri berikut ini digunakan untuk mengganti nama partisi:

hive> ALTER TABLE employee PARTITION (year=’1203’)
   > RENAME TO PARTITION (Yoj=’1203’);

Menjatuhkan Partisi

Sintaks berikut digunakan untuk menjatuhkan partisi:

ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec, PARTITION partition_spec,...;

Kueri berikut digunakan untuk menjatuhkan partisi:

hive> ALTER TABLE employee DROP [IF EXISTS]
   > PARTITION (year=’1203’);