Hive ETL: JSON, XML, Metin Verisi Örneklerini Yükleme
Bir ETL ve veri depolama aracı olarak Hive Hadoop'un ekosistemi, Veri modelleme, Veri manipülasyonu, Veri işleme ve Veri sorgulama gibi işlevler sağlar. Hive'da Veri Çıkarma, Hive'da tabloların oluşturulması ve yapılandırılmış ve yarı yapılandırılmış verilerin yüklenmesi ve gereksinimlere göre verilerin sorgulanması anlamına gelir.
Toplu işleme için, özel bir harita kullanarak özel tanımlı komut dosyaları yazacağız ve bir komut dosyası dili kullanarak komut dosyalarını azaltacağız. Sağlar SQL Kolay sorgulama için ortam ve destek gibi.
Hive Kullanarak Yapılandırılmış Verilerle Çalışmak
Yapılandırılmış Veri, verilerin uygun satır ve sütun biçiminde olduğu anlamına gelir. Bu daha çok benziyor RDBMS uygun satır ve sütunlara sahip veriler.
Burada Hive'daki metin dosyalarında bulunan yapılandırılmış verileri yükleyeceğiz
) 1 Adım Bu adımda çalışanların Id, Name, Age, Adres, Maaş ve Departman gibi sütun adlarını veri türleri ile içeren “employees_guru” tablosunu oluşturuyoruz.
Yukarıdaki ekran görüntüsünden aşağıdakileri gözlemleyebiliriz:
- “employees_guru” tablosunun oluşturulması
- Employees.txt dosyasındaki veriler “employees_guru” tablosuna yükleniyor
) 2 Adım Bu adımda “Select” komutunu kullanarak bu tabloda saklanan içerikleri görüntülüyoruz. Aşağıdaki ekran görüntüsünde tablo içeriklerini görebiliriz.
– Örnek kod parçacığı
Gerçekleştirilecek sorgular
1) Create table employees_guru(Id INT, Name STRING, Age INT, Address STRING, Salary FLOAT, Department STRING) > Row format delimited > Fields terminated by ','; 2) load data local inpath '/home/hduser/Employees.txt' into TABLE employees_guru; 3) select * from employees_guru;
Hive (XML, JSON) kullanarak Yarı yapılandırılmış verilerle çalışma
Hive, Hadoop ekosisteminde ETL işlevlerini şu şekilde gerçekleştirir: ETL aracıBazı uygulama tiplerinde map reduce yapmak zor olabilirken, Hive karmaşıklığı azaltabilir ve veri ambarı sektörü açısından BT uygulamalarına en iyi çözümü sunar.
XML ve JSON gibi yarı yapılandırılmış veriler Hive kullanılarak daha az karmaşıklıkla işlenebilir. İlk olarak Hive'ı nasıl kullanabileceğimizi göreceğiz. XML.
HIVE TABLOSUNA XML
Burada XML verilerini Hive tablolarına yükleyeceğiz ve XML etiketlerinin içinde saklanan değerleri getireceğiz.
) 1 Adım String veri tipinde str sütunu ile “xmlsample_guru” Tablosunun oluşturulması.
Yukarıdaki ekran görüntüsünden aşağıdakileri gözlemleyebiliriz:
- “xmlsample_guru” tablosunun oluşturulması
- Test.xml dosyasındaki veriler “xmlsample_guru” tablosuna yükleniyor
) 2 Adım kullanma XPath () yöntemiyle XML etiketlerinin içinde saklanan verileri getirebileceğiz.
Yukarıdaki ekran görüntüsünden aşağıdakileri gözlemleyebiliriz:
- XPATH( ) yöntemini kullanarak /emp/esal/ ve /emp/ename/ altında saklanan değerleri getiriyoruz
- Değerler XML etiketlerinin içinde mevcuttur. Bu adımda XML etiketleri altında saklanan gerçek değerleri “xmlsample_guru” tablosunda görüntülüyoruz.
) 3 Adım Bu adımda “xmlsample_guru” tablosunun Ham XML'ini alıp görüntüleyeceğiz.
Yukarıdaki ekran görüntüsünden aşağıdakileri gözlemleyebiliriz:
- Etiketlerle birlikte görüntülenen gerçek XML verileri
- Tek etiket gözlemlersek ana etiket olarak “emp”, alt etiket olarak “ename” ve “esal” kullanılır.
Kod Parçacığı:
Gerçekleştirilecek sorgular
1) create table xmlsample_guru(str string); 2) load data local inpath '/home/hduser/test.xml' overwrite into table xmlsample_guru; 3) select xpath(str,'emp/ename/text()'), xpath(str,'emp/esal/text()') from xmlsample_guru;
JSON (JavaKomut Dosyası Nesne Gösterimi)
Twitter ve web siteleri verileri JSON formatında saklanır. Ne zaman çevrimiçi sunuculardan veri almaya çalışsak, JSON dosyalarını döndürecektir. Hive'ı veri deposu olarak kullanarak şemalar oluşturarak JSON verilerini Hive tablolarına yükleyebiliriz.
JSON'DAN HIVE TABLOSUNA
Burada JSON verilerini Hive tablolarına yükleyeceğiz ve JSON şemasında saklanan değerleri getireceğiz.
) 1 Adım Bu adımda “json_guru” JSON tablo adını oluşturacağız. Oluşturulduktan sonra gerçek şemanın içeriği yükleniyor ve görüntüleniyor.
Yukarıdaki ekran görüntüsünden aşağıdakileri gözlemleyebiliriz:
- “json_guru” tablosunun oluşturulması
- Test.json'daki veriler “json_guru” tablosuna yükleniyor
- json_guru tablolarında saklanan JSON dosyasının gerçek şemasını görüntüleme
) 2 Adım get_json_object() Yöntemini kullanarak JSON hiyerarşisinde saklanan Veri değerlerini getirebiliriz
Yukarıdaki ekran görüntüsünden aşağıdakileri gözlemleyebiliriz:
- get_json_object (str,'$.ecode) kullanarak json_guru tablosundan ecode değerlerini getirebilir. Benzer şekilde get_json_object (str,'$.ename) ,get_json_object (str,'$.Sali) kullanılarak json_guru tablosundan ename sal değerleri alınacaktır
- Json_guru'da JSON Hiyerarşisi içinde saklanan değerler
Kod Parçacığı
Gerçekleştirilecek sorgular
1) create table json_guru(str string); 2) load data inpath 'home/hduser/test.json' into table json_guru; 3) select * from json1; 4) select get_json_object(str,'$.ecode') as ecode, get_json_object(str,'$.ename') as ename ,get_json_object(str,'$.sal') as salary from json_guru;
Karmaşık JSON'dan HIVE TABLOSUNA
Bunda, Karmaşık JSON verilerini Hive tablolarına yükleyeceğiz ve JSON şemasında depolanan değerleri alacağız
) 1 Adım Tek sütunlu alanla complexjson_guru oluşturma
Yukarıdaki ekran görüntüsünden aşağıdakileri gözlemleyebiliriz:
- Tek sütunlu alan olarak string veri türüyle complexjson_guru tablosunda oluşturma
- Verileri emp.json karmaşık JSON dosyasından complexjson_guru'ya yükleme
) 2 Adım get_json_object kullanarak JSON dosya hiyerarşisinde saklanan gerçek içeriği alabiliriz.
Aşağıdaki ekran görüntüsünden complexjson_guru'da saklanan verilerin çıktısını görebiliyoruz.
) 3 Adım Bu adımda, “Select” komutunu kullanarak aslında “complexjson_guru” tablosunda depolanan karmaşık JSON verilerini görebiliyoruz.
-Örnek Kod Parçacığı,
Gerçekleştirilecek sorgular
1) create table complexjson_guru(json string); 2) load data inpath 'home/hduser/emp.json' into table complexjson_guru; 3) select get_json_object(json,'$.ecode') as ecode ,get_json_object(json,'$.b') as code, get_json_object(json,'$.c') from complexjson_guru; 4) select * from complexjson_guru;
Gerçek zamanlı projelerde Hive – Ne Zaman ve Nerede Kullanılmalı
Hadoop Ekosisteminde Hive Ne Zaman ve Nerede Kullanılır:
Ne zaman
- Hadoop ekosisteminde güçlü ve etkili istatistiksel işlevlerle çalışırken
- Yapılandırılmış ve Yarı yapılandırılmış veri işlemeyle çalışırken
- Hadoop ile veri ambarı aracı olarak
- HBASE, Hive ile gerçek zamanlı veri alımı kullanılabilir
Nerede
- ETL ve veri ambarı aracının kolay kullanımı için
- HIVEQL kullanarak SQL tipi ortam sağlamak ve SQL gibi sorgulama yapmak
- Belirli istemci gereksinimlerine yönelik özel olarak belirlenmiş harita ve azaltıcı komut dosyalarını kullanmak ve dağıtmak için