Bu konuda, OSS-HDFS'de depolanan verileri işlemek için E-MapReduce (EMR) kümesinde Hive'ın nasıl kullanılacağı anlatılmaktadır.
Önkoşullar
Hive hizmeti seçili olarak EMR V3.42.0 veya üzeri ya da EMR V5.8.0 veya üzeri bir sürüme sahip bir küme oluşturun. Daha fazla bilgi için bkz. Küme oluşturma.
Bir paket için OSS-HDFS'yi etkinleştirin ve OSS-HDFS üzerinde erişim izinleri verin. OSS-HDFS'yi etkinleştirme hakkında daha fazla bilgi için bkz. OSS-HDFS'yi etkinleştirme ve erişim izinleri verme.
Yordam
-
Hive'a bağlanmak için terminalde aşağıdaki komutu çalıştırın.
Diğer bağlantı yöntemleri için bkz. Hive bağlantı yöntemleri.
hive -
Hive'a bağlanmak için terminalde aşağıdaki komutu çalıştırın.
Diğer bağlantı yöntemleri için bkz. Hive bağlantı yöntemleri.
hive -
Mevcut bir tabloya bölümler ekleyin.
Tablo verilerini daha küçük birimlerde depolamak için mevcut bir tabloya bölümler ekleyebilirsiniz. Bölümlere göre sorgu koşulları belirtebilirsiniz. Bu sayede yalnızca belirtilen koşulları karşılayan bölümler taranır ve sorgu performansı artar.
-
Komut sözdizimi
ALTER TABLE <table_name> ADD [IF NOT EXISTS] PARTITION <pt_spec> [PARTITION <pt_spec> PARTITION <pt_spec>...] LOCATION 'location';Aşağıdaki tabloda önceki komuttaki parametreler açıklanmıştır.
Parametre
Zorunlu
Açıklama
table_name
Evet
Bölüm eklemek istediğiniz tablonun adı.
IF NOT EXISTS
Hayır
Tabloda aynı ada sahip bir bölüm varsa hatanın atlanmasını sağlayan parametredir. IF NOT EXISTS parametresi belirtilmezse ve eklemek istediğiniz bölümle aynı ada sahip bir bölüm zaten mevcutsa işlem başarısız olur ve bir hata döndürülür.
pt_spec
Evet
Eklemek istediğiniz bölümlerdir. Bu parametrenin değeri(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...)biçimindedir. Bu biçimdepartition_colbölüm anahtarı sütunlarının adlarını,partition_col_valueise bu sütunların değerlerini temsil eder. Bölüm anahtarı sütunlarının adları büyük/küçük harfe duyarlı değildir ancak değerleri büyük/küçük harfe duyarlıdır.
location
Evet
Bir bölümdeki verileri depolamak için kullanılan OSS yoludur. -
Örnekler
Aşağıdaki örnek kod, Çin (Hangzhou) bölgesindeki Aralık 2021 satış kayıtlarını depolamak üzere sale_detail adlı tabloya nasıl bölüm ekleneceğini ve bu bölümdeki verilerin depolanacağı OSS yolunun nasıl belirtileceğini göstermektedir:
ALTER TABLE sale_detail ADD IF NOT EXISTS PARTITION (sale_date='202112', region='hangzhou') LOCATION 'oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/path/2021/';
-