E-MapReduce支持在Trino中查詢Paimon數據。本文通過示例為您介紹如何在Trino中查詢Paimon中的數據。
前提條件
已創建選擇了Trino和Paimon的DataLake或Custom類型的集群,創建集群詳情請參見創建集群。
使用限制
EMR-3.46.0及后續版本、EMR-5.12.0及后續版本的集群,支持在Trino中查詢Paimon中的數據。
操作步驟
指定warehouse路徑。
Paimon將數據和元數據都保存在文件系統(例如,HDFS)或對象存儲(例如,OSS-HDFS)中,存儲的根路徑由warehouse參數指定。
進入Trino服務的配置頁面。
在頂部菜單欄處,根據實際情況選擇地域和資源組。
在EMR on ECS頁面,單擊目標集群操作列的集群服務。
在集群服務頁面,單擊Trino服務區域的配置。
在配置頁面,找到paimon.properties頁簽。
修改warehouse參數,參數值需指向存儲的根路徑。
保存配置。
單擊保存。
在彈出的對話框中,輸入執行原因,單擊保存。
(可選)指定MetaStore類型。
Trino使用的MetaStore類型根據您創建集群時選擇的服務自動設置。如果您想更改MetaStore類型,可以在Trino服務配置頁面的paimon.properties頁簽,修改metastore的參數值。
Paimon共有以下三種MetaStore類型:
filesystem:元數據僅保存在文件系統或對象存儲中。
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;