E-MapReduce的Flink Table Store服務支持在Trino中查詢數據。本文通過示例為您介紹如何在Trino中查詢Flink Table Store中的數據。
使用限制
僅EMR-3.45.0版本、EMR-5.11.0版本的集群,支持在Trino中查詢Flink Table Store中的數據。
操作步驟
指定warehouse路徑。
Flink Table Store將數據和元數據都保存在文件系統或對象存儲中,存儲的根路徑由warehouse參數指定,您可以根據實際情況修改。
進入Trino服務的配置頁面。
在頂部菜單欄處,根據實際情況選擇地域和資源組。
在EMR on ECS頁面,單擊目標集群操作列的集群服務。
在集群服務頁面,單擊Trino服務區域的配置。
在配置頁面,單擊tablestore.properties頁簽。
修改warehouse的參數值。
保存配置。
單擊保存。
在彈出的對話框中,輸入執行原因,單擊保存。
可選:指定MetaStore類型。
Trino使用的MetaStore類型根據您創建集群時選擇的服務自動設置。如果您想更改MetaStore類型,可以在Trino服務配置頁面的tablestore.properties頁簽,修改metastore的參數值。
Flink Table Store共有以下三種MetaStore類型:
filesystem:元數據僅保存在文件系統或對象存儲中。
hive:元數據同步到指定的Hive MetaStore中。
dlf:元數據同步到DLF中。
重啟Trino服務。
在Trino服務配置頁面,選擇右上角的 。
在彈出的對話框中,輸入執行原因,單擊確定。
在確認對話框中,單擊確定。
查詢Flink Table Store數據。
下面以Spark寫入Filesystem Catalog,Trino查詢為例。
執行以下命令,啟動Spark SQL。
spark-sql --conf spark.sql.catalog.tablestore=org.apache.flink.table.store.spark.SparkCatalog --conf spark.sql.catalog.tablestore.metastore=filesystem --conf spark.sql.catalog.tablestore.warehouse=oss://oss-bucket/warehouse
執行以下Spark SQL語句,在Catalog中創建一張表,并寫入數據。
-- 在之前創建的Catalog中,創建并使用一個測試database。 CREATE DATABASE tablestore.test_db; USE tablestore.test_db; -- 創建Flink Table Store表。 CREATE TABLE test_tbl ( uuid int, name string, price double ) TBLPROPERTIES ( 'primary-key' = 'uuid' ); -- 向Flink Table Store表中寫入數據。 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 tablestore --schema default --user hadoop
執行以下命令,查詢剛剛寫入的數據。
USE test_db; SELECT * FROM test_tbl;