E-MapReduce支援在Hive中查詢Paimon資料。本文通過樣本為您介紹如何在Hive中查詢Paimon中的資料。
前提條件
已建立選擇了Hive和Paimon的DataLake或Custom類型的叢集,建立叢集詳情請參見建立叢集。
使用限制
僅EMR-3.46.0及後續版本、EMR-5.12.0及後續版本的叢集,支援在Hive中查詢Paimon中的資料。
操作步驟
查詢Hive Catalog與DLF Catalog中的表。
其他服務通過Hive Catalog同步中繼資料到Hive MetaStore後,可以在Hive中直接查詢Hive Catalog中的表。如果建立叢集時,中繼資料選擇為DLF統一中繼資料,則其它服務也可以通過DLF Catalog同步中繼資料到DLF,並在Hive中查詢。
下面以Spark寫入Hive Catalog為例。
執行以下命令,啟動Spark SQL。
spark-sql --conf spark.sql.catalog.paimon=org.apache.paimon.spark.SparkCatalog --conf spark.sql.catalog.paimon.metastore=hive --conf spark.sql.catalog.paimon.uri=thrift://master-1-1:9083 --conf spark.sql.catalog.paimon.warehouse=oss://<yourBucketName>/warehouse說明spark.sql.catalog.paimon:定義了名為paimon的Catalog。spark.sql.catalog.paimon.metastore:指定Catalog使用的中繼資料存放區類型。設定為hive意味著將中繼資料同步到Hive Metastore中。spark.sql.catalog.paimon.uri:為Hive MetaStore Service的地址和連接埠。參數值為thrift://master-1-1:9083,這意味著Spark SQL將串連到這個運行在master-1-1主機上、監聽9083連接埠的Hive Metastore服務以擷取中繼資料資訊。spark.sql.catalog.paimon.warehouse:配置資料倉儲的實際位置,請根據實際情況修改。
執行以下Spark SQL語句,在Catalog中建立一張表,並寫入資料。
-- 切換到paimon catalog USE paimon; -- 在已建立的paimon catalog中,建立並使用一個測試database。 CREATE DATABASE test_db; USE test_db; -- 建立Paimon表。 CREATE TABLE test_tbl ( uuid int, name string, price double ) TBLPROPERTIES ( 'primary-key' = 'uuid' ); -- 向Paimon中寫入資料。 INSERT INTO test_tbl VALUES (1, 'apple', 3.5), (2, 'banana', 4.0), (3, 'cherry', 20.5);執行以下命令,啟動Hive CLI。
hive執行以下Hive SQL,查詢剛剛寫入的資料。
select * from test_db.test_tbl;
添加並查詢外表。
Hive也可以將指定路徑下的Paimon表添加為外表並查詢。
CREATE EXTERNAL TABLE test_ext_tbl STORED BY 'org.apache.paimon.hive.PaimonStorageHandler' LOCATION 'oss:// <yourBucketName>/warehouse/test_db.db/test_tbl'; SELECT * FROM test_ext_tbl;