本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Delta Lake 集群与 Trino 结合使用
从 Amazon EMR 6.9.0 及更高版本开始,您可以将 Delta Lake 与您的 Trino 集群结合使用。
在本教程中,我们将使用在 Amazon EMR Trino 集群上使用 Delta Lake。 AWS CLI
创建 Delta Lake 集群
-
创建文件
delta_configurations.json
,然后为您选择的目录设置值。例如,假设您想将 Hive 元存储作为目录使用,则您的文件应包含以下内容:[{"Classification":"delta-defaults", "Properties":{"delta.enabled":"true"}}, {"Classification":"trino-connector-delta", "Properties":{"hive.metastore.uri":"thrift://localhost:9083"}}]
如果您想使用 AWS Glue 目录作为商店,则您的文件应包含以下内容:
[{"Classification":"delta-defaults", "Properties":{"delta.enabled":"true"}}, {"Classification":"trino-connector-delta", "Properties":{"hive.metastore":"glue"}}]
-
使用以下配置创建集群,将
example Amazon S3 bucket path
和subnet ID
替换为您自己的值。aws emr create-cluster --release-label emr-6.9.0 --applications Name=Trino --configurations file://delta_configurations.json --region us-east-1 --name My_Spark_Delta_Cluster --log-uri
s3://amzn-s3-demo-bucket/
--instance-type m5.xlarge --instance-count 2 --service-role EMR_DefaultRole_V2 --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef0
初始化 Delta Lake 的 Trino 会话
要初始化 Trino 会话,请运行以下命令。
trino-cli --catalog delta
写入 Delta Lake 表
使用以下 SQL 命令创建并写入您的表:
SHOW SCHEMAS;
CREATE TABLE default.delta_table (id int, data varchar, category varchar) WITH
( location = 's3://amzn-s3-demo-bucket/<prefix>'
);
INSERT INTO default.delta_table VALUES (1,'a','c1'), (2,'b','c2'), (3,'c','c3');
从 Delta Lake 表中读取
使用以下 SQL 命令从您的表中读取:
SELECT * from default.delta_table;