文档简介:
使用DLI提交Spark SQL作业查询数据。基本流程如下:
- 登录天翼云
- 上传数据至OBS
- 登录DLI管理控制台
- 创建队列
- 创建数据库
- 创建表
- 查询数据
如下操作以查询OBS的数据为例,DLI的数据查询操作类同。
登录云
- 打开产品首页。
- 在登录页面输入“帐号名”和“密码”,单击“登录”。
上传数据至OBS
DLI可以查询存储在OBS中的数据,查询数据前,需要将数据文件上传至OBS中。
- 在服务列表中,单击“存储”中的“对象存储服务OBS”。
- 进入OBS管理控制台页面。
- 创建一个桶,桶名全局唯一,这里以桶名“obs1”为例。
a. 单击页面右上角“创建桶”。
b. 进入“创建桶”页面,输入“桶名称”。其他参数保持默认值或根据需要选择。
c. 单击“立即创建”。
- 单击所建桶“obs1”,进入“概览”页面。
- 单击左侧列表中的“对象”,选择“上传对象”,将需要上传的文件“sampledata.csv”上传到指定目录,单击“上传”。
“sampledata.csv”样例文件可以通过新建“sampledata.txt”,复制如下英文逗号分隔的文本内容,再另存为“sampledata.csv”。
12,test复制
文件上传成功后,待分析的文件路径为“obs://obs1/sampledata.csv”。
关于OBS管理控制台更多操作请参考《对象存储服务控制台指南》。
OBS上传文件指导,请参见《OBS工具指南》。
针对大文件场景,由于OBS管理控制台对文件大小和数量限制较多,所以推荐使用OBS工具上传大文件,如OBS Browser+上传。
OBS Browser+是一个比较常用的图形化工具,支持完善的桶管理和对象管理操作。推荐使用此工具创建桶或上传对象。
登录DLI管理控制台
- 在列表中,选择“数据湖探索 DLI”。
- 进入DLI管理控制台页面。第一次进入数据湖探索管理控制台需要进行授权,以获取访问OBS的权限。
至少勾选“TenantAdministrator(全局服务)”权限。
创建队列
队列是使用DLI服务的基础,执行SQL作业前需要先创建队列。
- DLI有预置的可用队列“default”。
- 用户也可根据需要自己创建队列。
a. 在DLI管理控制台,单击左侧导航栏中的“SQL编辑器”,可进入SQL作业“SQL编辑器”页面。
b. 在左侧导航栏,选择队列页签,单击右侧的创建队列。
创建队列详细介绍请参考《数据湖探索用户指南》>《创建队列》。
创建数据库
在进行数据查询之前还需要创建一个数据库,例如db1。
“default”为内置数据库,不能创建名为“default”的数据库。
- 在DLI管理控制台,单击左侧导航栏中的“SQL编辑器”,可进入SQL作业“SQL编辑器”页面。
- 在“SQL编辑器”页面右侧的编辑窗口中,输入如下SQL语句,单击“执行”。阅读并同意隐私协议,单击“确定”。
create database db1;数据库创建成功后,新建的数据库db1会在左侧“数据库”列表中出现。
在DLI管理控制台第一次单击“执行”操作时,需要阅读隐私协议,确认同意后才能执行作业,且后续“执行”操作将不会再提示阅读隐私协议。
创建表
数据库创建完成后,需要在数据库db1中基于OBS上的样本数据“obs://obs1/sampledata.csv”创建一个表,例如table1。
- 在“SQL编辑器”页面右侧的编辑窗口上方,选择队列“default”和数据库“db1”。
- 在编辑窗口中,输入如下SQL语句,单击“执行”。
createtable table1 (id int, name string) using csv options (path'obs://obs1/sampledata.csv');
表table1创建成功后,单击左侧“库表”页签,再单击db1,新创建的表table1会在“表”区域下方显示。
查询数据
完成以上步骤后,就可以开始进行数据查询了。
- 单击“SQL编辑器”页面左侧的“数据库”页签,选择新创建的表table1,双击表,在右侧编辑窗口中,自动输入SQL查询语句,例如查询table1表的1000条数据:
select * from db1.table1 limit 1000;
- 单击“执行”,系统开始查询。
SQL语句执行成功后,可在SQL作业编辑窗口下方“查看结果”页签查看查询结果。