E-MapReduce支援在Trino中查詢Paimon資料。本文通過樣本為您介紹如何在Trino中查詢Paimon中的資料。
前提條件
已建立選擇了Trino和Paimon的DataLake或Custom類型的叢集,建立叢集詳情請參見建立叢集。
使用限制
EMR-3.46.0及後續版本、EMR-5.12.0及後續版本的叢集,支援在Trino中查詢Paimon中的資料。
操作步驟
指定warehouse路徑。
Paimon將資料和中繼資料都儲存在檔案系統(例如,HDFS)或Object Storage Service(例如,OSS-HDFS)中,儲存的根路徑由warehouse參數指定。
進入Trino服務的配置頁面。
在頂部功能表列處,根據實際情況選擇地區和資源群組。
在EMR on ECS頁面,單擊目的地組群操作列的叢集服務。
在叢集服務頁面,單擊Trino服務地區的配置。
在配置頁面,找到paimon.properties頁簽。
修改warehouse參數,參數值需指向儲存的根路徑。
儲存配置。
單擊儲存。
在彈出的對話方塊中,輸入執行原因,單擊儲存。
(可選)指定MetaStore類型。
Trino使用的MetaStore類型根據您建立叢集時選擇的服務自動化佈建。如果您想更改MetaStore類型,可以在Trino服務配置頁面的paimon.properties頁簽,修改metastore的參數值。
Paimon共有以下三種MetaStore類型:
filesystem:中繼資料僅儲存在檔案系統或Object Storage Service中。
hive:中繼資料同步到指定的Hive MetaStore中。
dlf:中繼資料同步到DLF中。
重啟Trino服務。
在Trino服務配置頁面,選擇右上方的更多操作>重啟。
在彈出的對話方塊中,輸入執行原因,單擊確定。
在確認對話方塊中,單擊確定。
查詢Paimon資料。
下面以Spark寫入Filesystem Catalog為例。
執行以下命令,啟動Spark SQL。
spark-sql --conf spark.sql.catalog.paimon=org.apache.paimon.spark.SparkCatalog --conf spark.sql.catalog.paimon.metastore=filesystem --conf spark.sql.catalog.paimon.warehouse=oss://<OSS-HDFS網域名稱>/warehouse說明spark.sql.catalog.paimon:定義了名為paimon的Catalog。spark.sql.catalog.paimon.metastore:指定Catalog使用的中繼資料存放區類型。設定為filesystem意味著中繼資料存放區在本地檔案系統。spark.sql.catalog.paimon.warehouse:配置資料倉儲的實際位置,請根據實際情況修改。
執行以下Spark SQL語句,在Catalog中建立一張表,並寫入資料。
-- 切換到paimon catalog USE 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);執行以下命令,啟動Trino。
trino --server master-1-1:9090 --catalog paimon --schema default --user hadoop執行以下命令,查詢剛剛寫入的資料。
USE test_db; SELECT * FROM test_tbl;