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;