本文介绍如何使用Spark SQL进行外表作业开发。
前提条件
步骤一:创建OSS Hudi外表
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在企业版或湖仓版页签下,单击目标集群ID。
在左侧导航栏,单击
。在SQLConsole窗口,选择Spark引擎和Job型资源组。
输入以下语句,并单击执行SQL(F8),创建一个名为
spark_external_db
的外库,用于存储Hudi数据。本文以oss://testBucketName/adb-test-1/
路径为例。CREATE DATABASE spark_external_db LOCATION 'oss://testBucketName/adb-test-1/';
在弹窗中,选择继续执行。
重要选择继续执行时,SQL语句为批量执行,SQL语句运行在单独的Spark App中,可以保证资源隔离和稳定性。本次入门教程推荐使用继续执行。
选择启动ThriftServer时,SQL语句为交互式执行,资源隔离为线程级的,且需要配置Spark ThriftServer后才执行SQL语句。详情请参见启停ThriftServer。
使用继续执行的方式,在
spark_external_db
库中创建外表spark_hudi_table
,用于存储Hudi数据。本文示例为oss://testBucketName/adb-test-1/spark_external_db/
。CREATE TABLE spark_external_db.spark_hudi_table (id int, name string, score int, city string ) using hudi partitioned by (id) tblproperties (primaryKey = 'id', preCombineField = 'city') LOCATION 'oss://testBucketName/adb-test-1/spark_external_db/';
插入数据。
INSERT OVERWRITE spark_external_db.spark_hudi_table PARTITION(id) VALUES (001,'Anna',99,'London'), (002,'Bob',67,'USA'), (003,'Cindy',78,'Spain'), (004,'Dan',100,'China');
步骤二:查询OSS Hudi外表数据
输入以下语句,并单击执行SQL(F8),查询外表
spark_hudi_table
数据。SELECT * FROM spark_external_db.spark_hudi_table;
说明如果湖仓版集群中有计算预留资源,或企业版集群中有预留资源,可以使用XIHE MPP SQL在线方式(即选择XIHE引擎和Interactive资源组)查询外表数据。
在弹窗中,选择继续执行。
说明使用Spark SQL执行查询语句,返回结果不展示表数据。如果您需要查看表数据,请按照步骤3操作。
(可选)在
页面的应用列表中,单击目标SQL查询语句操作列的日志,在日志中可以查看表数据。
文档内容是否对您有帮助?