Presto(即PrestoDB)是一款灵活、可扩展的分布式SQL查询引擎,支持使用标准的SQL查询语言进行大数据的交互式分析查询(Presto概述),DataWorks为您提供EMR Presto节点,便于您在DataWorks上进行Presto任务的开发和周期性调度。本文为您介绍使用EMR Presto节点进行任务开发的主要流程和注意事项。
前提条件
数据开发(DataStudio)中已创建业务流程。
数据开发(DataStudio)基于业务流程对不同开发引擎进行具体开发操作,所以您创建节点前需要先新建业务流程,操作详情请参见创建业务流程。
已创建阿里云EMR集群,并注册EMR集群至DataWorks。
创建EMR相关节点并开发EMR任务前,您需要先将EMR集群注册至DataWorks工作空间,操作详情请参见注册EMR集群至DataWorks。
(可选,RAM账号需要)进行任务开发的RAM账号已被添加至对应工作空间中,并具有开发或空间管理员(权限较大,谨慎添加)角色权限,添加成员的操作详情请参见为工作空间添加空间成员。
已购买独享调度资源组并完成资源组配置,包括绑定工作空间、网络配置等,详情请参见新增和使用独享调度资源组。
使用限制
EMR集群与DataWorks资源限制
仅数据湖集群(Hadoop)使支持用EMR Presto节点进行任务开发,新版数据湖集群(DataLake)和自定义集群(Custom)不支持。
仅支持使用独享调度资源组运行该类型任务。
任务开发限制
开发Presto任务时,SQL语句最大不能超过130KB。
使用EMR Presto节点查询数据时,返回的查询结果最大支持10000条数据,并且数据总量不能超过10M。
其他
数据血缘:当前EMR Presto节点的任务不支持产出血缘关系。
创建EMR Presto节点(单击展开查看详情)
开发Presto任务
您可以双击已创建的节点,进入任务开发页面,进行以下任务开发操作。
(可选)选择EMR集群实例
如果您的工作空间注册了多个EMR集群,您可以在页面顶部选择合适的集群。如果仅绑定一个EMR集群,则无需选择。
开发SQL代码:简单示例
在SQL编辑区域输入任务代码,示例如下。
show tables;
select * from userinfo ;
开发SQL代码:使用调度参数
DataWorks提供调度参数,可实现调度场景下代码动态入参,您可在节点中通过${变量名}
的方式定义代码中的变量,并在调度配置 > 参数处,为该变量赋值。调度参数支持的格式,详情请参见调度参数支持的格式。
select '${var}'; --可以结合调度参数使用。
(可选)配置高级参数
对于任务的相关参数配置,请参考Spark Configuration。
高级参数 | 配置说明 |
“FLOW_SKIP_SQL_ANALYZE” | SQL语句执行方式。取值如下:
说明 该参数仅支持用于数据开发环境测试运行流程。 |
“USE_GATEWAY” | 设置本节点提交作业时,是否通过Gateway集群提交。取值如下:
说明 如果本节点所在的集群未关联Gateway集群,此处手动设置参数取值为 |
配置任务调度
如果您需要周期性执行创建的节点任务,可以单击节点编辑页面右侧的调度配置,根据业务需求配置该节点任务的调度信息:
配置任务调度的基本信息,详情请参见配置基础属性。
配置时间调度周期、重跑属性和上下游依赖关系,详情请参见时间属性配置说明及配置同周期调度依赖。
说明您需要设置节点的重跑属性和依赖的上游节点,才可以提交节点。
配置资源属性,详情请参见配置资源属性。访问公网或VPC网络时,请选择与目标节点网络连通的调度资源组作为周期调度任务使用的资源组。详情请参见配置资源组与网络连通。
调试代码任务
(可选)选择运行资源组、赋值自定义参数取值。
在工具栏单击图标,在参数对话框选择已调试运行需要使用的独享调度资源组。
如果您的任务代码中有使用调度参数变量,可在此处为变量赋值,用于调试。参数赋值逻辑详情请参见运行,高级运行和开发环境冒烟测试赋值逻辑有什么区别。
保存并运行SQL语句。
在工具栏,单击图标,保存编写的SQL语句,单击图标,运行创建的SQL任务。
(可选)冒烟测试。
如果您希望在开发环境进行冒烟测试,可在执行节点提交,或节点提交后执行,冒烟测试,操作详情请参见执行冒烟测试。
后续步骤
- 本页导读 (1)