Tablolar, Bölümler ve Bölümler, Hive veri modellemesinin parçalarıdır.
Bölümler nedir?
Hive Partitions, tabloları bölüm anahtarlarına göre farklı bölümlere bölerek bölümler halinde düzenlemenin bir yoludur.
Tabloda bir veya daha fazla Bölme anahtarı olduğunda bölme yararlıdır. Bölüm anahtarları, verilerin tabloda nasıl saklandığını belirleyen temel öğelerdir.
Örneğin : -
"Her eyalet (38 eyalet) işleminin bir bütün olarak bahsedildiği Hindistan operasyonlarına ait bazı E-ticaret verilerine sahip müşteri. Eyalet sütununu bölüm anahtarı olarak alır ve bir bütün olarak bu Hindistan verileri üzerinde bölümlemeler gerçekleştirirsek, yapabiliriz Hindistan'da bulunan eyalet sayısına (38) eşit olan bölüm sayısını (38 bölüm) elde etmek için her durum verisi bölüm tablolarında ayrı ayrı görüntülenebilir.
Bölümler için Örnek Kod Parçacığı
- Tablonun oluşturulması tüm durumlar
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
- Verileri oluşturulan tabloya tüm durumlara yükleme
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
- Bölüm tablosunun oluşturulması
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
-
Bölme için bu özelliği ayarlamalıyız
set hive.exec.dynamic.partition.mode=nonstrict
- Verileri bölüm tablosuna yükleme
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
- Bölüm anahtarı olarak duruma göre bölüm tablolarının gerçek işlenmesi ve oluşturulması
- HDFS depolamada, dosya adı durum adı olan 38 bölüm çıkışı olacaktır. Bunu bu adımda kontrol edeceğiz
Aşağıdaki ekran görüntüleri, yukarıda belirtilen kodun çalıştırılmasını gösterecektir.
Yukarıdaki koddan aşağıdaki şeyleri yapıyoruz
- Eyalet, ilçe ve kayıt gibi 3 sütun adıyla tüm eyaletlerin tablo oluşturulması
- Tüm durumları tabloya yükleme
- Bölüm anahtarı olarak durum ile bölüm tablosunun oluşturulması
- Bu adımda Bölüm modunu katı olmayan olarak ayarlama (Bu mod, dinamik bölüm modunu etkinleştirecektir)
- Verileri bölüm tablestate_part'a yükleme
- Bölüm anahtarı olarak duruma göre bölüm tablolarının gerçek işlenmesi ve oluşturulması
- HDFS depolamada, dosya adı durum adı olan 38 bölüm çıkışı olacak. Bunu bu adımda kontrol edeceğiz. Bu adımda, HDFS'de 38 bölüm çıkışını görüyoruz
Kovalar nedir?
Kovandaki kovalar, kovan tablosu verilerinin birden çok dosya veya dizine ayrılması için kullanılır. verimli sorgulama için kullanılır.
- Bu bölümlerde bulunan veriler, yani daha fazla Paketlere bölünebilir
- Bölme, tabloda seçtiğimiz belirli sütunların Hash'lerine göre gerçekleştirilir.
- Paketler, her kaydı okumak ve paketlere yerleştirmek için arka uçta bir tür Karma algoritması kullanır
- Hive, biz kullanarak kovalar etkinleştirmek zorunda = true set.hive.enforce.bucketing;
Adım 1) Aşağıda gösterildiği gibi Kova Oluşturma.
Yukarıdaki ekran görüntüsünden
- First_name, job_id, departman, maaş ve ülke gibi sütun adlarıyla sample_bucket oluşturuyoruz.
- Burada 4 kova oluşturuyoruz.
- Veriler otomatik olarak yüklendikten sonra verileri 4 bölüme yerleştirin
Adım 2) Verileri tablo örneği grubuna yükleme
Hive sisteminde "Çalışanlar tablosu" nun zaten oluşturulmuş olduğunu varsayarsak. Bu adımda, çalışanlar tablosundaki verilerin örnek tablo grubuna yüklenmesini göreceğiz.
Çalışan verilerini paketlere taşımaya başlamadan önce, bunların ad_adı, iş_kimliği, departman, maaş ve ülke gibi sütun adlarından oluştuğundan emin olun.
Burada, çalışanlar tablosundan örnek pakete veri yüklüyoruz.
3. Adım) 1. Adımda oluşturulan 4 paket gösteriliyor
Yukarıdaki ekran görüntüsünden, çalışanlar tablosundaki verilerin 1. adımda oluşturulan 4 kovaya aktarıldığını görebiliriz.