使用DLI提交SQL作业查询OBS数据
场景描述
DLI可以查询存储在OBS中的数据,本节操作介绍使用DLI提交SQL作业查询OBS数据的操作步骤。
本例新建“sampledata.csv”文件上传OBS桶,并新建弹性资源池队列,使用DLI创建数据库和表,使用DLI提供的SQL编辑器查询表的1000条数据。
操作流程
使用DLI提交SQL作业查询OBS数据的基本流程如表1所示。
开始进行如下操作前,请务必参考准备工作完成必要操作。
步骤1:上传数据至OBS
使用DLI查询数据前,需要将数据文件上传至OBS中。
- 登录OBS管理控制台,进入OBS管理控制台页面。
- 创建桶,本例桶名以“obs1”为例。
- 单击页面右上角“创建桶”。
- 进入“创建桶”页面,选择“区域”,输入“桶名称”。其他参数保持默认值或根据需要选择。
创建OBS桶时,需要选择与DLI管理控制台相同的区域,不可跨区域执行操作。
- 单击“立即创建”。
- 单击所建桶“obs1”,进入“对象”页面。
- 勾选左侧列表中的“对象”,选择“上传对象”,将需要上传的文件“sampledata.csv”上传到指定目录,单击“上传”。
“sampledata.csv”样例文件可以通过新建“sampledata.txt”,复制如下英文逗号分隔的文本内容,再另存为“sampledata.csv”。
product_id,product_name 113,office_13 22,book_2 29,book_9
文件上传成功后,待分析的文件路径为“obs://obs1/sampledata.csv”。
关于OBS管理控制台更多操作请参考《对象存储服务用户指南》。
步骤2:创建弹性资源池并添加队列
- 登录DLI管理控制台。
- 在左侧导航栏单击“资源管理 > 弹性资源池”,可进入弹性资源池管理页面。
- 在弹性资源池管理界面,单击界面右上角的“购买弹性资源池”。
- 在“购买弹性资源池”界面,填写具体的弹性资源池参数。
- 本例在华东-上海二区域购买按需计费的弹性资源池。相关参数说明如表2所示。
- 参数填写完成后,单击“立即购买”,在界面上确认当前配置是否正确。
- 单击“提交”完成弹性资源池的创建。
- 在弹性资源池的列表页,选择要操作的弹性资源池,单击操作列的“添加队列”。
- 配置队列的基础配置,具体参数信息如下。
表3 弹性资源池添加队列基础配置 参数名称
参数说明
配置样例
名称
弹性资源池添加的队列名称。
dli_queue_01
类型
选择创建的队列类型。
- 执行SQL作业请选择SQL队列。
- 执行Flink或Spark作业请选择通用队列。
_
执行引擎
SQL队列可以选择队列引擎为Spark或者Trino。
_
企业项目
选择对应的企业项目。
default
- 单击“下一步”,配置队列的扩缩容策略。
单击“新增”,可以添加不同优先级、时间段、“最小CU”和“最大CU”扩缩容策略。
本例配置的扩缩容策略如图2所示。表4 扩缩容策略参数说明 参数名称
参数说明
配置样例
优先级
当前弹性资源池中的优先级数字越大表示优先级越高。本例设置一条扩缩容策略,默认优先级为1。
1
时间段
首条扩缩容策略是默认策略,不能删除和修改时间段配置。
即设置00-24点的扩缩容策略。
00-24
最小CU
设置扩缩容策略支持的最小CU数。
16
最大CU
当前扩缩容策略支持的最大CU数。
64
- 单击“确定”完成添加队列配置。
步骤3:创建数据库
在进行数据查询之前还需要创建一个数据库,例如db1。
“default”为内置数据库,不能创建名为“default”的数据库。
- 在DLI管理控制台,单击左侧导航栏中的“SQL编辑器”,可进入SQL作业“数据库”页面。
- 在“SQL编辑器”页面右侧的编辑窗口中,输入如下SQL语句,单击“执行”。阅读并同意隐私协议,单击“确定”。
create database db1;
数据库创建成功后,左侧单击“ ”刷新数据库页面,新建的数据库db1会在“数据库”列表中出现。
在DLI管理控制台第一次单击“执行”操作时,需要阅读隐私协议,确认同意后才能执行作业,且后续“执行”操作将不会再提示阅读隐私协议。
步骤4:创建表
数据库创建完成后,需要在数据库db1中基于OBS上的样本数据“obs://obs1/sampledata.csv”创建一个表,例如table1。
- 在“SQL编辑器”页面右侧的编辑窗口上方,选择队列“default”和数据库“db1”。
- 在编辑窗口中,输入如下SQL语句,单击“执行”。
create table table1 (product_id int, product_name string) using csv options (path 'obs://obs1');
创建表时只需指定数据文件所在的OBS存储路径,目录后不需要指定文件名。
表table1创建成功后,单击左侧“数据库”页签,再单击db1,新创建的表table1会在“表”区域下方显示。