HiveQL (Hive Query Language) nedir?
Hive, Hive Query Language (HiveQL) kullanarak Hive sorguları yazmak için bir CLI sağlar. Genel olarak HQL sözdizimi, çoğu veri analistinin aşina olduğu SQL sözdizimine benzer.
Hive'ın SQL'den ilham alan dili, kullanıcıyı Map Reduce programının karmaşıklığından ayırır. Öğrenmeyi kolaylaştırmak için ilişkisel veritabanı dünyasındaki tablolar, satırlar, sütunlar ve şema gibi tanıdık kavramları yeniden kullanır.
Çoğu etkileşim, bir komut satırı arayüzü (CLI) üzerinden gerçekleşir. Hive, Hive Query Language (Hive-QL) kullanarak Hive sorguları yazmak için bir CLI sağlar.
Genel olarak, HiveQL sözdizimi, çoğu veri analistinin aşina olduğu SQL sözdizimine benzer. Hive, TEXTFILE, SEQUENCEFILE, ORC ve RCFILE (Record Columnar File) olmak üzere dört dosya formatını destekler.
- Tek kullanıcı meta veri depolaması için Hive, derbi veritabanı kullanır ve
- Birden fazla kullanıcı Meta Veri veya paylaşılan Meta Veri durumu için Hive, MYSQL kullanır
Yerleşik operatörler
Hive, Hive ambarında bulunan tablolara uygulanacak Veri işlemleri için Yerleşik operatörler sağlar.
Bu operatörler, işlenenler üzerindeki matematiksel işlemler için kullanılır ve uygulanan mantığa göre belirli bir değer döndürür.
HIVE'daki Yerleşik Operatör Türleri şunlardır:
- İlişkisel Operatörler
- Aritmetik operatörler
- Mantıksal operatörler
- Karmaşık türlerdeki işleçler
- Karmaşık Tip Yapıcılar
İlişkisel Operatörler:
İki işlenen arasındaki ilişki karşılaştırmaları için İlişkisel operatörler kullanıyoruz.
- Eşittir, Eşit değil, küçüktür, büyüktür… vb. Operatörler
- İşlenen türlerinin tümü bu İşleçlerdeki sayı türleridir.
Aşağıdaki Tablo bize İlişkisel operatörler ve kullanımı hakkında ayrıntılar verecektir.
Yerleşik Operatör | Açıklama | Operand |
X = Y | X ifadesi Y ifadesine eşdeğer ise DOĞRU Aksi takdirde YANLIŞ. | Tüm ilkel türleri alır |
X! = Y | X ifadesi Y ifadesine eşdeğer değilse DOĞRU Aksi takdirde YANLIŞ. | Tüm ilkel türleri alır |
X X ifadesi Y ifadesinden küçükse DOĞRU Aksi takdirde YANLIŞ. | Tüm ilkel türleri alır |
|
X <= Y | X ifadesi Y ifadesinden küçükse veya ona eşitse DOĞRU Aksi takdirde YANLIŞ. | Tüm ilkel türleri alır |
X> Y | X ifadesi Y ifadesinden büyükse DOĞRU Aksi takdirde YANLIŞ. | Tüm ilkel türleri alır |
X> = Y | X ifadesi Y ifadesinden büyükse veya ona eşitse DOĞRU Aksi takdirde YANLIŞ. | Tüm ilkel türleri alır |
X BOŞ | X ifadesi NULL, aksi takdirde FALSE olarak değerlendirilirse TRUE. | Her türden alır |
X BOŞ DEĞİL | YANLIŞ Eğer X ifadesi NULL olarak değerlendirilirse, aksi takdirde DOĞRU olur. | Her türden alır |
X GİBİ Y | DOĞRU Eğer X dize kalıbı Y ile eşleşiyorsa, aksi takdirde YANLIŞ. | Yalnızca Dizeleri Alır |
X RLIKE Y | NULL, X veya Y NULL ise, X'in herhangi bir alt dizesi Java düzenli ifadesi Y ile eşleşiyorsa TRUE, aksi takdirde FALSE. | Yalnızca Dizeleri Alır |
X REGEXP Y | RLIKE ile aynı. | Yalnızca Dizeleri Alır |
Aritmetik Operatörler :
İşlenenler üzerinde aritmetik işlemler gerçekleştirmek için Aritmetik işleçler kullanıyoruz
- İşlenenler arasında toplama, çıkarma, çarpma ve bölme gibi aritmetik işlemler bu Operatörleri kullanırız.
- Operand türlerinin tümü bu Operatörlerde sayı türleridir
Örnek Örnek:
2 + 3, 5 sonucunu verir.
Bu örnekte, '+' operatördür ve 2 ve 3 işlenenlerdir. Dönüş değeri 5
Aşağıdaki Tablo bize Aritmetik operatörler hakkında ayrıntılı bilgi verecektir.
Yerleşik Operatör | Açıklama | Operand |
X + Y | X ve Y değeri ekleme çıktısını döndürecektir. | Tüm sayı türlerini alır |
X - Y | Y'yi X değerinden çıkarmanın çıktısını döndürecektir. | Tüm sayı türlerini alır |
X * Y | X ve Y değerlerini çarpmanın çıktısını döndürecektir. | Tüm sayı türlerini alır |
X / Y | Y'yi X'ten bölmenin çıktısını döndürecektir. | Tüm sayı türlerini alır |
X% Y | X'in Y'ye bölünmesinden kaynaklanan kalanı döndürecektir. | Tüm sayı türlerini alır |
X ve Y | X ve Y'nin bitsel AND çıktısını döndürecektir. | Tüm sayı türlerini alır |
X | Y | X ve Y'nin bitsel OR çıktısını döndürecektir. | Tüm sayı türlerini alır |
X Y | X ve Y'nin bitsel XOR çıktısını döndürecektir. | Tüm sayı türlerini alır |
~ X | Çıktı bitsel olarak NOT X döndürür. | Tüm sayı türlerini alır |
Mantıksal operatörler:
İşlenenler üzerinde Mantıksal işlemler gerçekleştirmek için Mantıksal operatörler kullanıyoruz
- İşlenenler arasında AND, OR, NOT gibi mantıksal işlemler bu Operatörleri kullanırız.
- Bu Operatörlerde işlenen türlerinin tümü BOOLEAN türüdür
Aşağıdaki Tablo bize Mantıksal operatörler hakkında ayrıntılı bilgi verecektir.
Operatörler | Açıklama | Operandlar |
X VE Y | Hem X hem de Y DOĞRU ise DOĞRU, aksi takdirde YANLIŞ. | Yalnızca Boole türleri |
X && Y | X VE Y ile aynı ama burada && sembolünü kullanıyoruz | Yalnızca Boole türleri |
X VEYA Y | X veya Y veya her ikisi de DOĞRU ise DOĞRU, aksi takdirde YANLIŞ. | Yalnızca Boole türleri |
X || Y | X OR Y ile aynı ama burada || sembol | Yalnızca Boole türleri |
X DEĞİL | X YANLIŞ ise DOĞRU, aksi takdirde YANLIŞ. | Yalnızca Boole türleri |
! X | NOT X ile aynı ama burada kullanıyoruz! sembol | Yalnızca Boole türleri |
Karmaşık türlerdeki işleçler:
Aşağıdaki Tablo, Kompleks Tip Operatörler hakkında detaylı bilgi verecektir. Bunlar, karmaşık türlerdeki öğelere erişmek için farklı bir mekanizma sağlayacak olan operatörlerdir.
Operatörler | Operandlar | Açıklama |
A [n] | A bir Dizidir ve n bir tamsayı türüdür | A dizisindeki n'inci elemanı döndürecektir. İlk elemanın indeksi 0'dır. |
M [anahtar] | M bir Harita | Haritadaki anahtara ait değerleri döndürür |
Karmaşık Tip Yapıcılar:
Aşağıdaki Tablo, Kompleks Tip Yapıcılar hakkında detaylı bilgi verecektir. Karmaşık veri türleri üzerinde örnekler oluşturacaktır. Bunlar, Hive'daki Array, Map ve Struct türleri gibi karmaşık veri türleridir.
Bu bölümde, Karmaşık Tip Oluşturucular üzerinde gerçekleştirilen işlemleri göreceğiz.
Operatörler | Operandlar | Açıklama |
dizi | (değer1, değer2,…) | Val1, val2 gibi belirtilen elemanlarla bir dizi oluşturacaktır. |
Create_ union | (etiket, değer1, değer2,…) | Tag parametresi tarafından bahsedilen değerlerle bir birleşim türü oluşturacaktır. |
harita | (anahtar1, değer1, anahtar2, değer2,…) | İşlenenlerde belirtilen anahtar / değer çiftleriyle bir harita oluşturacaktır. |
Adlandırılmış_ yapı | (ad1, değer1, ad2, değer2,…) | Verilen alan adları ve işlenenlerde belirtilen değerlerle bir Struct oluşturacaktır. |
YAPI | (değer1, değer2, değer3,…) | Verilen alan değerleriyle bir Struct oluşturur. Struct alan adları col1, col2, olacaktır. |
Özet:
Hive, Hive ambarında depolanan verileri işlemek için bazı dahili işlevler ve operatörler sağlar. Hive, tüm veri işlemlerini ve tablolar ve veritabanları üzerinde sorgulamayı destekleyen SQL diline benzer.