Hadoop ekosisteminin tepesinde bir ETL ve veri depolama aracı olarak Hive, Veri modelleme, Veri işleme, 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 ayrıca gereksinimlere göre verilerin sorgulanması anlamına gelir.
Toplu işlem için, özel bir harita kullanarak özel tanımlı komut dosyaları yazacağız ve bir komut dosyası dili kullanarak komut dosyalarını azaltacağız. SQL benzeri ortam ve kolay sorgulama için destek sağlar.
Bu eğitimde öğreneceksiniz-
- Hive kullanarak Yapılandırılmış Verilerle Çalışma
- Hive (XML, JSON) kullanarak Yarı yapılandırılmış verilerle çalışma
- Gerçek zamanlı projelerde Hive - Ne Zaman ve Nerede Kullanılır
Hive kullanarak Yapılandırılmış Verilerle Çalışma
Yapılandırılmış Veri, verilerin doğru satır ve sütun biçiminde olduğu anlamına gelir. Bu, daha çok doğru satır ve sütunlara sahip RDBMS verilerine benzer.
Burada, Hive'daki metin dosyalarında bulunan yapılandırılmış verileri yükleyeceğiz
Adım 1) Bu adımda veri türleri ile çalışanların Kimlik, İsim, Yaş, Adres, Maaş ve Departman gibi sütun adlarının yer aldığı "çalışanlar_guru" tablosu oluşturuyoruz.
Yukarıdaki ekran görüntüsünden şunları gözlemleyebiliriz,
- "Staff_guru" tablosunun oluşturulması
- Employees.txt dosyasındaki verileri "staff_guru" tablosuna yükleme
Adım 2) Bu adımda "Seç" komutunu kullanarak bu tabloda depolanan içerikleri görüntülüyoruz. Aşağıdaki ekran görüntüsünde tablo içeriğini gözlemleyebiliyoruz.
- Örnek kod Snippet'i
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, ETL aracı olarak hareket ederek Hadoop ekosisteminde ETL işlevlerini gerçekleştirir. Bazı uygulamalarda harita küçültme yapmak zor olabilir, 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. Öncelikle Hive'ı XML için nasıl kullanabileceğimizi göreceğiz.
XML-HIVE TABLOSU
Burada, XML verilerini Hive tablolarına yükleyeceğiz ve XML etiketleri içinde depolanan değerleri getireceğiz.
Adım 1) String veri tipi ile 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ı
- Verileri test.xml'den "xmlsample_guru" tablosuna yükleme
Adım 2) XPath () yöntemini kullanarak XML etiketleri içinde depolanan 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 depolanan değerleri alıyoruz
- Değerler XML etiketlerinin içinde bulunur. Bu adımda, "xmlsample_guru" tablosundaki XML etiketleri altında depolanan gerçek değerleri görüntülüyoruz.
Adım 3) Bu adımda, "xmlsample_guru" tablosunun Ham XML'ini getirip görüntüleyeceğiz.
Yukarıdaki ekran görüntüsünden aşağıdakileri gözlemleyebiliriz
- Etiketlerle görüntülenen gerçek XML verileri
- Tek bir etiket gözlemlersek, üst etiket olarak "emp" ve alt etiket olarak "ename" ve "esal" ile olur.
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 (JavaScript Nesne Gösterimi)
Twitter ve web siteleri verileri JSON formatında saklanır. Çevrimiçi sunuculardan veri almaya çalıştığımızda, JSON dosyalarını döndürür. Hive'ı veri deposu olarak kullanarak, şemalar oluşturarak JSON verilerini Hive tablolarına yükleyebiliriz.
JSON TO HIVE TABLOSU
Bu bölümde JSON verilerini Hive tablolarına yükleyeceğiz ve JSON şemasında depolanan değerleri getireceğiz.
Adım 1) Bu adımda "json_guru" JSON tablo adını oluşturacağız. Oluşturulduktan sonra gerçek şema içeriğini yükler ve görüntüler.
Yukarıdaki ekran görüntüsünden aşağıdakileri gözlemleyebiliriz
- "Json_guru" tablosunun oluşturulması
- Test.json'daki verileri "json_guru" tablosuna yükleme
- Json_guru tablolarında depolanan JSON dosyasının gerçek şemasını görüntüleme
Adım 2) get_json_object () Yöntemini kullanarak JSON hiyerarşisinde depolanan 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 alabilir. Benzer şekilde get_json_object (str, '$. Ename), get_json_object (str,' $. Sali) kullanarak json_guru tablosundan ename sal değerlerini getirecektir.
- JSON Hiyerarşisinin içinde json_guru'da depolanan 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
Burada, Karmaşık JSON verilerini Hive tablolarına yükleyeceğiz ve JSON şemasında depolanan değerleri getireceğiz.
Adım 1) Tek sütun alanıyla complexjson_guru oluşturma
Yukarıdaki ekran görüntüsünden aşağıdakileri gözlemleyebiliriz
- Dize veri türü olarak tek sütun alanıyla tablo complexjson_guru üzerinde oluşturma
- Emp.json karmaşık JSON dosyasından complexjson_guru'ya veri yükleme
Adım 2) get_json_object kullanarak, JSON dosya hiyerarşisinin içinde depolanan gerçek içeriği alabiliriz.
Aşağıdaki ekran görüntüsünden, complexjson_guru'da depolanan verilerin çıktısını görebiliriz.
Adım 3) Bu adımda, "Seç" komutunu kullanarak "complexjson_guru" tablosunda depolanan karmaşık JSON verilerini gerçekten 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ılır
Hadoop Ekosisteminde Hive Ne Zaman ve Nerede Kullanılmalı:
Ne zaman
- Hadoop ekosisteminde güçlü ve güçlü 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 ile gerçek zamanlı veri alımı, Hive kullanılabilir
Nerede
- ETL ve veri ambarlama aracının kolay kullanımı için
- SQL tipi ortam sağlamak ve HIVEQL kullanarak SQL gibi sorgulama yapmak
- Özel müşteri gereksinimleri için özel olarak belirlenmiş harita ve azaltıcı komut dosyalarını kullanmak ve dağıtmak için
- Sonraki