- 最新动态
- 功能总览
- 产品介绍
- 数据治理方法论
- 准备工作
- 快速入门
-
用户指南
- DataArts Studio使用流程
- 购买并配置DataArts Studio
- 授权用户使用DataArts Studio
-
管理中心
- DataArts Studio支持的数据源
- 创建DataArts Studio数据连接
-
配置DataArts Studio数据连接参数
- DWS数据连接参数说明
- DLI数据连接参数说明
- MRS Hive数据连接参数说明
- MRS HBase数据连接参数说明
- MRS Kafka数据连接参数说明
- MRS Spark数据连接参数说明
- MRS Clickhouse数据连接参数说明
- MRS Hetu数据连接参数说明
- MRS Impala数据连接参数说明
- MRS Ranger数据连接参数说明
- MRS Presto数据连接参数说明
- Doris数据连接参数说明
- OpenSource ClickHouse数据连接参数说明
- RDS数据连接参数说明
- ORACLE数据连接参数说明
- DIS数据连接参数说明
- 主机连接参数说明
- Rest Client数据连接参数说明
- Redis数据连接参数说明
- SAP HANA数据连接参数说明
- LTS数据连接参数说明
- 配置DataArts Studio资源迁移
- 配置DataArts Studio企业模式环境隔离
- 管理中心典型场景教程
-
数据集成(CDM作业)
- 数据集成概述
- 约束与限制
- 支持的数据源
- 创建并管理CDM集群
-
在CDM集群中创建连接
- 创建CDM与数据源之间的连接
-
配置连接参数
- OBS连接参数说明
- PostgreSQL/SQLServer连接参数说明
- 数据仓库服务(DWS)连接参数说明
- 云数据库MySQL/MySQL数据库连接参数说明
- Oracle数据库连接参数说明
- DLI连接参数说明
- Hive连接参数说明
- HBase连接参数说明
- HDFS连接参数说明
- FTP/SFTP连接参数说明
- Redis连接参数说明
- DDS连接参数说明
- CloudTable连接参数说明
- MongoDB连接参数说明
- Cassandra连接参数说明
- DIS连接参数说明
- Kafka连接参数说明
- DMS Kafka连接参数说明
- 云搜索服务(CSS)连接参数说明
- Elasticsearch连接参数说明
- 达梦数据库 DM连接参数说明
- SAP HANA连接参数说明
- 分库连接参数说明
- MRS Hudi连接参数说明
- MRS ClickHouse连接参数说明
- 神通(ST)连接参数说明
- CloudTable OpenTSDB连接参数说明
- GBASE连接参数说明
- YASHAN连接参数说明
- 上传CDM连接驱动
- 新建Hadoop集群配置
-
在CDM集群中创建作业
- 新建表/文件迁移作业
- 新建整库迁移作业
-
配置CDM作业源端参数
- 配置OBS源端参数
- 配置HDFS源端参数
- 配置HBase/CloudTable源端参数
- 配置Hive源端参数
- 配置DLI源端参数
- 配置FTP/SFTP源端参数
- 配置HTTP源端参数
- 配置PostgreSQL/SQL Server源端参数
- 配置DWS源端参数
- 配置SAP HANA源端参数
- 配置MySQL源端参数
- 配置Oracle源端参数
- 配置分库源端参数
- 配置MongoDB/DDS源端参数
- 配置Redis源端参数
- 配置DIS源端参数
- 配置Kafka/DMS Kafka源端参数
- 配置Elasticsearch/云搜索服务源端参数
- 配置OpenTSDB源端参数
- 配置MRS Hudi源端参数
- 配置MRS ClickHouse源端参数
- 配置神通(ST)源端参数
- 配置达梦数据库 DM源端参数
- 配置YASHAN源端参数
- 配置CDM作业目的端参数
- 配置CDM作业字段映射
- 配置CDM作业定时任务
- CDM作业配置管理
- 管理单个CDM作业
- 批量管理CDM作业
- 时间宏变量使用解析
- 优化迁移性能
- 关键操作指导
- 使用教程
- 常见错误码参考
-
数据集成(离线作业)
- 离线作业概述
- 支持的数据源
- 新建离线处理集成作业
- 配置离线处理集成作业
-
配置作业源端参数
- 配置MySQL源端参数
- 配置Hive源端参数
- 配置HDFS源端参数
- 配置Hudi源端参数
- 配置PostgreSQL源端参数
- 配置SQLServer源端参数
- 配置Oracle源端参数
- 配置DLI源端参数
- 配置OBS源端参数
- 配置SAP HANA源端参数
- 配置Kafka源端参数
- 配置Rest Client源端参数
- 配置DWS源端参数
- 配置FTP/SFTP源端参数
- 配置Doris源端参数
- 配置HBase 源端参数
- 配置ClickHouse源端参数
- 配置ElasticSearch源端参数
- 配置MongoDB源端参数
- 配置RestApi源端参数
- 配置GBase源端参数
- 配置Redis源端参数
- 配置LTS源端参数
- 配置作业目的端参数
- 字段转换器配置指导
- 新增字段操作指导
- 数据集成(实时作业)
- 数据架构
-
数据开发
- 数据开发概述
- 数据管理
- 脚本开发
- 作业开发
- 集成作业开发
- Notebook开发
- 解决方案
- 运行历史
- 运维调度
- 配置管理
- 审批中心
- 下载中心
-
节点参考
- 节点概述
- 节点数据血缘
- CDM Job
- Data Migration
- DIS Stream
- DIS Dump
- DIS Client
- Rest Client
- Import GES
- MRS Kafka
- Kafka Client
- ROMA FDI Job
- DLI Flink Job
- DLI SQL
- DLI Spark
- DWS SQL
- MRS Spark SQL
- MRS Hive SQL
- MRS Presto SQL
- MRS Spark
- MRS Spark Python
- MRS ClickHouse
- MRS Impala SQL
- MRS Flink Job
- MRS MapReduce
- CSS
- Shell
- RDS SQL
- ETL Job
- Python
- DORIS SQL
- ModelArts Train
- Create OBS
- Delete OBS
- OBS Manager
- Open/Close Resource
- Data Quality Monitor
- Sub Job
- For Each
- SMN
- Dummy
- EL表达式参考
- 简易变量集参考
- 使用教程
- 数据质量
- 数据目录
- 数据安全
- 数据服务
- 审计日志
- 最佳实践
- SDK参考
-
API参考
- 使用前必读
- API概览
- 如何调用API
- 数据集成API
- 数据开发API(V1)
- 数据开发API(V2)
- 数据架构API
- 数据质量API
- 数据服务API
- 应用示例
- 附录
-
常见问题
-
咨询与计费
- 区域和可用区如何选择?
- 数据库、数据仓库、数据湖与华为智能数据湖方案是什么,有哪些区别和联系?
- DataArts Studio和沃土是什么关系?
- DataArts Studio和ROMA有什么差异?
- DataArts Studio是否支持私有化部署到本地或私有云?
- 如何在IAM中创建细粒度权限策略?
- 如何实现用户的工作空间隔离,使其无法查看其他未授权工作空间?
- 用户已添加权限,还是无法查看工作空间?
- IAM用户操作时报错“无xx权限”怎么办?
- DataArts Studio的工作空间可以删除吗?
- 实例试用/购买成功后,可以转移到其他账号下吗?
- DataArts Studio是否支持版本升级?
- DataArts Studio是否支持版本降级?
- 如何查看DataArts Studio的版本?
- 购买DataArts Studio实例时为什么选不到指定的IAM项目?
- DataArts Studio的会话超时时间是多少,是否支持修改?
- 套餐包到期未续订或按需资源欠费时,我的数据会保留吗?
- 如何查看套餐包的剩余时长?
- DataArts Studio实例中的CDM没有计费是什么原因?
- 为什么会提示每日执行节点个数超过上限,应该怎么处理?
- 管理中心
-
数据集成(CDM作业)
- CDM与其他数据迁移服务有什么区别,如何选择?
- CDM有哪些优势?
- CDM有哪些安全防护?
- 如何降低CDM使用成本?
- CDM未使用数据传输功能时,是否会计费?
- 已购买包年包月的CDM套餐包,为什么还会产生按需计费的费用?
- 如何查看套餐包的剩余时长?
- CDM可以跨账户使用吗?
- CDM集群是否支持升级操作?
- CDM迁移性能如何?
- CDM不同集群规格对应并发的作业数是多少?
- 是否支持增量迁移?
- 是否支持字段转换?
- Hadoop类型的数据源进行数据迁移时,建议使用的组件版本有哪些?
- 数据源为Hive时支持哪些数据格式?
- 是否支持同步作业到其他集群?
- 是否支持批量创建作业?
- 是否支持批量调度作业?
- 如何备份CDM作业?
- 如何解决HANA集群只有部分节点和CDM集群网络互通?
- 如何使用Java调用CDM的Rest API创建数据迁移作业?
- 如何将云下内网或第三方云上的私网与CDM连通?
- CDM是否支持参数或者变量?
- CDM迁移作业的抽取并发数应该如何设置?
- CDM是否支持动态数据实时迁移功能?
- CDM是否支持集群关机功能?
- 如何使用表达式方式获取当前时间?
- 日志提示解析日期格式失败时怎么处理?
- 字段映射界面无法显示所有列怎么处理?
- CDM迁移数据到DWS时如何选取分布列?
- 迁移到DWS时出现value too long for type character varying怎么处理?
- OBS导入数据到SQL Server时出现Unable to execute the SQL statement怎么处理?
- 获取集群列表为空/没有权限访问/操作时报当前策略不允许执行?
- Oracle迁移到DWS报错ORA-01555
- MongoDB连接迁移失败时如何处理?
- Hive迁移作业长时间卡顿怎么办?
- 使用CDM迁移数据由于字段类型映射不匹配导致报错怎么处理?
- MySQL迁移时报错“JDBC连接超时”怎么办?
- 创建了Hive到DWS类型的连接,进行CDM传输任务失败时如何处理?
- 如何使用CDM服务将MySQL的数据导出成SQL文件,然后上传到OBS桶?
- 如何处理CDM从OBS迁移数据到DLI出现迁移中断失败的问题?
- 如何处理CDM连接器报错“配置项 [linkConfig.iamAuth] 不存在”?
- 报错“配置项[linkConfig.createBackendLinks]不存在”或“配置项 [throttlingConfig.concurrentSubJobs] 不存在怎么办”?
- 新建MRS Hive连接时,提示:CORE_0031:Connect time out. (Cdm.0523) 怎么解决?
- 迁移时已选择表不存在时自动创表,提示“CDM not support auto create empty table with no column”怎么处理?
- 创建Oracle关系型数据库迁移作业时,无法获取模式名怎么处理?
- MySQL迁移时报错:invalid input syntax for integer: "true"
- 数据集成(实时作业)
- 数据架构
-
数据开发
- 数据开发可以创建多少个作业,作业中的节点数是否有限制?
- DataArts Studio支持自定义的Python脚本吗?
- 作业关联的CDM集群删除后,如何快速修复?
- 作业的计划时间和开始时间相差大,是什么原因?
- 相互依赖的几个作业,调度过程中某个作业执行失败,是否会影响后续作业?这时该如何处理?
- 通过DataArts Studio调度大数据服务时需要注意什么?
- 环境变量、作业参数、脚本参数有什么区别和联系?
- 打不开作业日志,返回404报错?
- 配置委托时获取委托列表失败如何处理?
- 数据开发创建数据连接,为什么选不到指定的周边资源?
- 配置了SMN通知,却收不到作业失败告警通知?
- 作业配置了周期调度,但是实例监控没有作业运行调度记录?
- Hive SQL和Spark SQL脚本执行失败,界面只显示执行失败,没有显示具体的错误原因?
- 数据开发节点运行中报TOKEN不合法?
- 作业开发时,测试运行后如何查看运行日志?
- 月周期的作业依赖天周期的作业,为什么天周期作业还未跑完,月周期的作业已经开始运行?
- 执行DLI脚本,报Invalid authentication怎么办?
- 创建数据连接时,在代理模式下为什么选不到需要的CDM集群?
- 作业配置了每日调度,但是实例没有作业运行调度记录?
- 查看作业日志,但是日志中没有内容?
- 创建了2个作业,但是为什么无法建立依赖关系?
- DataArts Studio执行调度时,报错提示“作业没有可以提交的版本”怎么办?
- DataArts Studio执行调度时,报错提示“作业中节点XXX关联的脚本没有提交的版本”怎么办?
- 提交调度后的作业执行失败,报depend job [XXX] is not running or pause怎么办?
- 如何创建数据库和数据表,数据库对应的是不是数据连接?
- 为什么执行完HIVE任务什么结果都不显示?
- 在作业监控页面里的“上次实例状态”只有运行成功、运行失败,这是为什么?
- 如何创建通知配置对全量作业都进行结果监控?
- 数据开发的并行执行节点数是多少?
- DataArts Studio是否支持修改时区?
- CDM作业改名后,在数据开发中如何同步?
- 执行RDS SQL,报错hll不存在,在DataArts Studio可以执行成功?
- 创建DWS数据连接时报错提示“The account has been locaked”怎么处理?
- 作业实例取消了,日志提示“The node start execute failed, so the current node status is set to cancel.”怎么处理?
- 调用数据开发接口报错“Workspace does not exists”怎么处理?
- Postman调用接口返回结果正常,为什么测试环境调用接口的URL参数不生效?
- 执行Python脚本报错:Agent need to be updated?
- 节点状态为成功,为什么日志显示运行失败?
- 调用数据开发API报错Unknown Exception?
- 调用创建资源的API报错“资源名不合法”是什么原因?
- 补数据的作业实例都是成功的,为什么补数据任务失败了?
- DWS数据连接可视化建表,报错提示“表已存在”,但是展开数据连接看不到该表?
- 调度MRS spark作业报错“The throttling threshold has been reached: policy user over ratelimit,limit:60,time:1 minute.”怎么处理?
- 执行Python脚本,报错“UnicodeEncodeError :‘ascii' codec cant encode characters in position 63-64 : ordinal not in range ( 128 )”怎么处理?
- 查看日志时,系统提示“OBS日志文件不存在,请检查文件是否被删除或者没有OBS写入权限。”怎么办?
- Shell/Python节点执行失败,后台报错session is down
- 请求头中参数值长度超过512个字符时,何如处理?
- 执行DWS SQL脚本时,提示id不存在,如何处理?
- 如何查看CDM作业被哪些作业进行调用?
- 使用python调用执行脚本的api报错:The request parameter invalid,如何处理?
- 在数据开发子模块中,新建的DLI SQL脚本默认队列是一个已删除的队列,怎么处理?
- 数据开发中的事件驱动是否支持线下kafka?
- 数据质量
- 数据目录
- 数据安全
- 数据服务
-
咨询与计费
-
更多文档
-
用户指南(吉隆坡区域)
- 产品介绍
- 准备工作
-
用户指南
- 使用DataArts Studio前的准备
- 管理中心
- 数据集成
-
数据开发
- 数据开发概述
- 数据管理
- 脚本开发
- 作业开发
- 解决方案
- 运行历史
- 运维调度
- 配置管理
-
节点参考
- 节点概述
- CDM Job
- Rest Client
- Import GES
- MRS Kafka
- Kafka Client
- ROMA FDI Job
- DLI Flink Job
- DLI SQL
- DLI Spark
- DWS SQL
- MRS Spark SQL
- MRS Hive SQL
- MRS Presto SQL
- MRS Spark
- MRS Spark Python
- MRS Flink Job
- MRS MapReduce
- CSS
- Shell
- RDS SQL
- ETL Job
- Python
- Create OBS
- Delete OBS
- OBS Manager
- Open/Close Resource
- Sub Job
- For Each
- SMN
- Dummy
- EL表达式参考
- 使用教程
-
常见问题
- 咨询
- 管理中心
-
数据集成
- 通用类
- 功能类
-
故障处理类
- OBS导入数据到SQL Server时出现Unable to execute the SQL statement怎么处理?
- Oracle迁移到DWS报错ORA-01555
- MongoDB连接迁移失败时如何处理?
- Hive迁移作业长时间卡住怎么办?
- 使用CDM迁移数据由于字段类型映射不匹配导致报错怎么处理?
- MySQL迁移时报错“JDBC连接超时”怎么办?
- 创建了Hive到DWS类型的连接,进行CDM传输任务失败时如何处理?
- 如何使用CDM服务将MySQL的数据导出成SQL文件,然后上传到OBS桶?
- 如何处理CDM从OBS迁移数据到DLI出现迁移中断失败的问题?
- 如何处理CDM连接器报错“配置项 [linkConfig.iamAuth] 不存在”?
- 创建数据连接时报错“配置项[linkConfig.createBackendLinks]不存在”或创建作业时报错“配置项 [throttlingConfig.concurrentSubJobs] 不存在”怎么办?
- 新建MRS Hive连接时,提示:CORE_0031:Connect time out. (Cdm.0523) 怎么解决?
- 迁移时已选择表不存在时自动创表,提示“CDM not support auto create empty table with no column”怎么处理?
- 创建Oracle关系型数据库迁移作业时,无法获取模式名怎么处理?
-
数据开发
- 数据开发可以创建多少个作业,作业中的节点数是否有限制?
- 作业的计划时间和开始时间相差大,是什么原因?
- 相互依赖的几个作业,调度过程中某个作业执行失败,是否会影响后续作业?这时该如何处理?
- 通过DataArts Studio调度大数据服务时需要注意什么?
- 环境变量、作业参数、脚本参数有什么区别和联系?
- 作业失败无法查看节点错误日志?
- 配置委托时获取委托列表失败如何处理?
- 每日执行节点个数超过上限,怎么排查哪些作业调度节点比较多?
- 数据开发创建数据连接,为什么选不到指定的周边资源?
- 作业配置了周期调度,但是实例监控没有作业运行调度记录?
- Hive SQL和Spark SQL脚本脚本执行失败,界面只显示执行失败,没有显示具体的错误原因?
- 数据开发节点运行中报TOKEN不合法?
- 作业开发时,测试运行后如何查看运行日志?
- 月周期的作业依赖天周期的作业,为什么天周期作业还未跑完,月周期的作业已经开始运行?
- 执行DLI脚本,报Invalid authentication怎么办?
- 创建数据连接时,在代理模式下为什么选不到需要的CDM集群?
- 作业配置了每日调度,但是实例没有作业运行调度记录?
- 查看作业日志,但是日志中没有内容?
- 创建了2个作业,但是为什么无法建立依赖关系?
- DataArts Studio执行调度时报错:提示作业没有可以提交的版本怎么办?
- DataArts Studio执行调度时报错:作业中节点XXX关联的脚本没有提交的版本?
- 提交调度后的作业执行失败,报depend job [XXX] is not running or pause怎么办?
- 如何创建数据库和数据表,数据库对应的是不是数据连接?
- 为什么执行完HIVE任务什么结果都不显示?
- 在作业监控页面里的 “上次实例状态” 只有运行成功、运行失败,这是为什么?
- 如何创建通知配置对全量作业都进行结果监控?
- DataArts Studio的版本规格与并行执行节点数之间有什么关系?
- 启动用户、执行用户、工作空间委托、作业委托它们之间的优先级顺序是什么?
- API参考(吉隆坡区域)
-
用户指南(吉隆坡区域)
- 通用参考
链接复制成功!
开发SQL脚本
数据开发支持对SQL脚本进行在线开发、调试和执行,开发完成的脚本可以在作业中调度运行(请参见开发Pipeline作业)。
前提条件
操作步骤
- 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。
- 在DataArts Studio控制台首页,选择对应工作空间的“数据开发”模块,进入数据开发页面。
- 在数据开发主界面的左侧导航栏,选择“数据开发 > 脚本开发”。
- 在脚本目录中,双击脚本名称,进入脚本开发页面。
- 在编辑器上方,选择如表1所示的属性。创建Flink SQL脚本时请跳过此步骤。
表1 SQL脚本属性 属性
说明
数据连接
选择数据连接。
DLI数据目录
选择DLI的数据目录。
- 在DLI默认的数据目录dli。
- 在DLI所绑定的LakeFormation已创建元数据catalog。
数据库
选择数据库。
DLI数据目录如果选择DLI默认的数据目录dli,表示为DLI的数据库和数据表。
DLI数据目录如果选择DLI所绑定的LakeFormation已创建元数据catalog,表示为LakeFormation的数据库和数据表。
资源队列
输入执行作业的资源队列。
Impala SQL、Hive SQL只能手动输入,不支持选择。
选择执行DLI作业的资源队列。当脚本为DLI SQL时,配置该参数。选择了资源队列以后,单击
可以查看队列性能,系统支持查看DLI运行作业数和队列CU使用量,系统显示队列近24小时性能情况。
说明:
- 当队列选择为“default”时,会提示“暂不支持"default"队列性能展示”。
- 还未选择资源队列时,图标灰化不可查看队列性能。
如需新建资源队列,请参考以下方法:- 单击
,进入DLI的“购买队列”页面新建资源队列。
- 前往DLI管理控制台进行新建。
说明:
DLI提供默认资源队列“default”,仅用于用户体验,用户间可能会出现抢占资源的情况,不能保证每次都可以得到资源执行相关操作。当遇到执行时间较长或无法执行的情况,建议您在业务低峰期再次重试,或选择自建队列运行业务。
另外,“default”队列不支持insert、load、cat命令。
如需以“key/value”的形式设置提交SQL作业的属性,请单击
。最多可设置10个属性,属性说明如下:
说明:
- 环境变量配置项需要以"hoodie."或"dli.sql."或"dli.ext."或"dli.jobs."或"spark.sql."或"spark.scheduler.pool"开头。
- 环境变量为dli.sql.autoBroadcastJoinThreshold时,值只能为整数,环境变量为dli.sql.shuffle.partitions时,值只能为正整数。
- 环境变量的key为dli.sql.shuffle.partitions或dli.sql.autoBroadcastJoinThreshold时,不能包含><符号。
- 如果作业和脚本中同时配置了同名的参数,作业中配置的值会覆盖脚本中的值。
- dli.sql.autoBroadcastJoinThreshold(自动使用BroadcastJoin的数据量阈值)
- dli.sql.shuffle.partitions(指定Shuffle过程中Partition的个数)
- dli.sql.cbo.enabled(是否打开CBO优化策略)
- dli.sql.cbo.joinReorder.enabled(开启CBO优化时,是否允许重新调整join的顺序)
- dli.sql.multiLevelDir.enabled(OBS表的指定目录或OBS表分区表的分区目录下有子目录时,是否查询子目录的内容;默认不查询)
- dli.sql.dynamicPartitionOverwrite.enabled(在动态分区模式时,只会重写查询中的数据涉及的分区,未涉及的分区不删除)
说明:
在非调度场景的DLI SQL脚本运行和DLI SQL单任务作业测试运行时,系统会默认开启以下四个配置参数:
- spark.sql.adaptive.enabled(启用AQE,使Spark能够根据正在处理的数据的特征动态优化查询的执行计划,可以通过减少需要处理的数据量来提高性能。)
- spark.sql.adaptive.join.enabled(启用AQE用于连接操作,可以通过根据正在处理的数据动态选择最佳连接算法来提高性能。)
- spark.sql.adaptive.skewedJoin.enabled(启用AQE用于倾斜的连接操作,可以通过自动检测倾斜的数据并相应地优化连接算法来提高性能)
- spark.sql.mergeSmallFiles.enabled(启用合并小文件功能,可以通过将小文件合并成较大的文件来提高性能,可以减少处理许多小文件的时间,并通过减少需要从远程存储中读取的文件数量来提高数据本地性。)
如果不使用的话,可以手动配置相关参数进行关闭,参数值设置为false。
- 在编辑器中输入SQL语句,支持输入多条SQL语句。
说明:
- SQL语句之间以“;”分隔。如果其它地方使用“;”,请通过“\”进行转义。例如:
select 1; select * from a where b="dsfa\;"; --example 1\;example 2.
- RDS SQL当前不支持begin ... commit事务语法,若有需要,请使用start transaction ... commit事务语法。
- 脚本内容大小不能超过16MB。
- 使用SQL语句获取的系统日期和通过数据库工具获取的系统日期是不一样,查询结果存到数据库是以YYYY-MM-DD格式,而页面显示查询结果是经过转换后的格式。
- 当前用户提交Spark SQL脚本到MRS时,默认提交至其绑定的租户队列(绑定队列即用户绑定的租户类型角色所对应的队列)中运行。当绑定多个队列时,系统会优先根据内部排序选择队列进行提交;如果需要给该用户使用固定一个队列进行提交, 可以登录FusionInsight Manager界面,在"租户资源 > 动态资源计划 > 全局用户策略"中给该用户配置默认队列,详细操作请参见管理全局用户策略。
- Flink SQL、Hive SQL、Spark SQL脚本支持语法检查。单击“语法检查”,SQL语句校验完成后,可以在下方查看语法校验结果。
为了方便脚本开发,数据开发模块提供了如下能力:- 脚本编辑器支持使用如下快捷键,以提升脚本开发效率。
- F8:运行
- F9:停止
- Ctrl + /:注释或解除注释光标所在行或代码块
- Ctrl + S:保存
- Ctrl + Z:撤销
- Ctrl + F:查找
- Ctrl + Shift + R:替换
- Ctrl + X:剪切,光标未选中时剪切一行
- Alt + 鼠标拖动:列模式编辑,修改一整块内容
- Ctrl + 鼠标点选:多列模式编辑,多行缩进
- Shift + Ctrl + K:删除当前行
- Ctrl + →或Ctrl + ←:向右或向左按单词移动光标
- Ctrl + Home或Ctrl + End:移至当前文件的最前或最后
- Home或End:移至当前行最前或最后
- Ctrl + Shift + L:鼠标双击相同的字符串后,为所有相同的字符串添加光标,实现批量修改
- Ctrl + D:删除一行
- Shift + Ctrl + U:解锁
- Ctrl + Alt + K:同词选择
- Ctrl + B:格式化
- Ctrl + Shift + Z:重做
- Ctrl + Enter:执行所选行/选中内容
- Ctrl + Alt + F:标记
- Ctrl + Shift + K:查找上一个
- Ctrl + K:查找下一个
- Ctrl + Backspace:删除左侧单词
- Ctrl + Delete:删除右侧单词
- Alt + Backspace:删除至行首
- Alt + Delete:删除至行尾
- Alt + Shift-Left:选择行首
- Alt + Shift-Right:选择行尾
- 支持系统函数功能(当前Flink SQL、Spark SQL、ClickHouse SQL、Presto SQL不支持该功能)。
- 支持可视化读取数据表生成SQL语句功能(当前Flink SQL、Spark Python、ClickHouse SQL、Presto SQL不支持该功能)。
单击编辑器右侧的“数据表”,显示当前数据库或schema下的所有表,可以根据您的需要勾选数据表和对应的列名,在右下角单击“生成SQL语句”,生成的SQL语句需要您手动格式化。
- 支持脚本参数(当前仅Flink SQL不支持该功能)。
在SQL语句中直接写入脚本参数,调试脚本时可以在脚本编辑器下方输入参数值。如果脚本被作业引用,在作业开发页面可以配置参数值,参数值支持使用EL表达式(参见表达式概述)。
脚本示例如下,其中str1是参数名称,只支持英文字母、数字、“-”、“_”、“<”和“>”,最大长度为16字符,且参数名称不允许重名。
select ${str1} from data;
另外,对于MRS Spark SQL和MRS Hive SQL脚本的运行程序参数,除了在SQL脚本中参考语句“set hive.exec.parallel=true;”配置参数,也可以在对应作业节点属性的“运行程序参数”中配置该参数。图1 运行程序参数 - 支持设置脚本责任人
- 企业模式下,支持从脚本开发界面快速前往发布。标放置在
上,单击“前往发布”,进入待发布任务界面。
- 在MRS API连接方式下,Spark SQL和HIve SQL脚本支持配置指定参数和参数值。代理连接不支持。
说明:
单击右上角的
,设置相关脚本的环境变量。举例如下所示:
设置Hive SQL脚本的环境变量:
--hiveconf hive.merge.mapfiles=true;
--hiveconf mapred.job.queue.name=queue1
设置Spark SQL脚本的环境变量:
--num-executors 1
--executor-cores 4
--queue queue2
前者表示参数名,后者表示参数值。
脚本运行完之后,到MRS管理面查看运行详情。
- SQL语句之间以“;”分隔。如果其它地方使用“;”,请通过“\”进行转义。例如:
- (可选)在编辑器上方,单击“格式化”,格式化SQL语句。创建Flink SQL脚本请跳过此步骤。
- 在编辑器上方,单击“运行”。如需单独执行某部分SQL语句,请选中SQL语句再运行。SQL语句运行完成后,在编辑器下方可以查看脚本的执行历史、执行结果。Flink SQL脚本不涉及,请跳过该步骤。
说明:
- 执行SQL结果最多展示1000条,仅DLI SQL支持最多10000条。如需查看更多执行结果,请参考下载或转储脚本执行结果通过下载或转储获取。
- 对于执行结果支持如下操作:
- 重命名:可通过双击执行结果页签的名称进行重命名,也可通过右键单击执行结果页签的名称,单击重命名。重命名不能超过16个字符。
- 可通过右键单击执行结果页签的名称关闭当前页签、关闭左侧页签、关闭右侧页签、关闭其它页签、关闭所有页签。
- MRS集群为非安全集群、且未限制命令白名单时,在Hive SQL执行过程中,添加application name信息后,则可以方便的根据脚本名称与执行时间在MRS的Yarn管理界面中根据job name找到对应任务。需要注意若默认引擎为tez,则要显式配置引擎为mr,使tez引擎下不生效。
- 脚本执行历史结果可以进行权限管控,可设置为“仅自己可见”或“所有用户可见”,默认配置项请参见脚本执行历史展示。
- 在编辑器上方,单击“保存”,保存脚本。
如果脚本是新建且未保存过的,请配置如表2所示的参数。
表2 保存脚本 参数
是否必选
说明
脚本名称
是
脚本的名称,只能包含字符:英文字母、数字、中文、中划线、下划线和点号,且长度小于等于128个字符。
责任人
否
为该脚本指定责任人。默认为创建脚本的人为责任人。
描述
否
脚本的描述信息。
选择目录
是
选择脚本所属的目录,默认为根目录。
说明:
如果脚本未保存,重新打开脚本时,可以从本地缓存中恢复脚本内容。
脚本保存后,在右侧的版本里面,会自动生成一个保存版本,支持版本回滚。保存版本时,一分钟内多次保存只记录一次版本。对于中间数据比较重要时,可以通过“新增版本”按钮手动增加保存版本。
下载或转储脚本执行结果
- 脚本执行完成后在“执行结果”中,单击“下载”可以直接下载CSV格式的结果文件到本地。可以在下载中心查看下载记录。
- 脚本执行完成后在“执行结果”中,单击“转储”可以将脚本执行结果转储为CSV和JSON格式的结果文件到OBS中,详情请参见表3。
说明:
- 转储功能依赖于OBS服务,如无OBS服务,则不支持该功能。
- 当前仅支持转储SQL脚本查询(query)类语句的结果。
- DataArts Studio的下载或转储的SQL结果中,如果存在英文逗号、换行符等这种特殊符号,可能会导致数据错乱、行数变多等的问题。
表3 转储配置 参数
是否必选
说明
数据格式
是
目前支持导出CSV和JSON格式的结果文件。
资源队列
否
选择执行导出操作的DLI队列。当脚本为DLI SQL时,配置该参数。
压缩格式
否
选择压缩格式。当脚本为DLI SQL时,配置该参数。
- none
- bzip2
- deflate
- gzip
存储路径
是
设置结果文件的OBS存储路径。选择OBS路径后,您需要在选择的路径后方自定义一个文件夹名称,系统将在OBS路径下创建文件夹,用于存放结果文件。
您也可以到下载中心配置默认的OBS路径地址,配置好后在转储时会默认填写。
覆盖类型
否
如果“存储路径”中,您自定义的文件夹在OBS路径中已存在,选择覆盖类型。当脚本为DLI SQL时,配置该参数。
- 覆盖:删除OBS路径中已有的重名文件夹,重新创建自定义的文件夹。
- 存在即报错:系统返回错误信息,退出导出操作。
是否导出列名
否
是:导出列名
否:不导出列名
字符集
否
- UTF-8:默认字符集。
- GB2312:当导出数据中包含中文字符集时,推荐使用此字符集。
- GBK:国家标准GB2312基础上扩容后兼容GB2312的标准。
引用字符
否
仅在数据格式为csv格式时支持配置引用字符。
引用字符在导出作业结果时用于标识文本字段的开始和结束,即用于分割字段。
仅支持设置一个字符。默认值是英文双引号(")。
主要用于处理包含空格、特殊字符或与分隔符相同字符的数据。
关于“引用字符”和“转义字符”的使用示例请参考引用字符和转义字符使用示例。
转义字符
否
仅在数据格式为csv格式时支持配置转义字符。
在导出结果中如果需要包含特殊字符,如引号本身,可以使用转义字符(反斜杠 \ )来表示。
仅支持设置一个字符。默认值是英文反斜杠(\)。
常用转义字符的场景:
- 假设两个引用字符之间的数据内容存在第三个引用字符,则在第三个引用字符前加上转义字符,从而避免字段内容被分割。
- 假设数据内容中原本就存在转义字符,则在这个原有的转义字符前再加一个转义字符,避免原来的那个字符起到转义作用。
关于“引用字符”和“转义字符”的使用示例请参考引用字符和转义字符使用示例。
SQL类型 |
在线查看最大结果条数 |
下载最大结果 |
转储最大结果 |
---|---|---|---|
DLI |
10000 |
1000条且少于3MB |
无限制 |
Hive |
1000 |
1000条且少于3MB |
10000条或3MB |
DWS |
1000 |
1000条且少于3MB |
10000条或3MB |
Spark |
1000 |
1000条且少于3MB |
10000条或3MB |
RDS |
1000 |
1000条且少于3MB |
不支持 |
Presto |
1000 |
下载结果直接转储至OBS,条数无限制。 |
无限制 |
ClickHouse |
1000 |
1000条且少于3MB |
10000条或3MB |
HetuEngine |
1000 |
1000条且少于3MB |
10000条或3MB |
Impala |
1000 |
1000条且少于3MB |
10000条或3MB |
Doris |
1000 |
1000条且少于3MB |
1000条或3MB |
引用字符和转义字符使用示例
- 引用字符和转义字符使用说明:
- 引用字符:用于识别分割字段,默认值:英文双引号(")。
- 转义字符:在导出结果中如果需要包含特殊字符,如引号本身,可以使用转义字符(反斜杠 \ )来表示。默认值:英文反斜杠(\)。
- 假设两个quote_char之间的数据内容存在第三个quote_char,则在第三个quote_char前加上escape_char,从而避免字段内容被分割。
- 假设数据内容中原本就存在escape_char,则在这个原有的escape_char前再加一个escape_char,避免原来的那个字符起到转义作用。
- 应用示例:
在进行转储时,如果引用字符和转义字符不填,如下图所示。
下载的.csv用excel打开以后如下图所示,是分成两行的。
在转储时,如果引用字符和转义字符都填写,比如,引用字符和转义字符都填英文双引号("),则下载以后查看结果如下图所示。