-
脚本开发流程 脚本开发功能提供如下能力: 提供在线脚本编辑器,支持进行SQL、Shell、Python等脚本在线代码开发和调测。 支持导入和导出脚本。 支持使用变量和函数。 提供编辑锁定能力,支持多人协同开发场景。 支持脚本的版本管理能力,支持生成保存版本和提交版本。 保存版本时,一分钟内多次保存只记录一次版本。对于中间数据比较重要时,可以通过“新增版本”按钮手动增加保存版本。 支持单击右键,可快速复制脚本名称,同时可以快速地关闭已打开的脚本页签。 在
MRS API连接模式下,MRS Spark SQL和MRS Hive SQL脚本运行完以后,在执行结果中查看运行日志,增加一键跳转MRS Yarn查看日志的链接。 支持对“已提交”和“未提交”的脚本进行筛选。未提交的脚本通过红色进行标识。 系统支持脚本参数以弹框的形式进行展示,参数名不能修改,参数值可以修改。您可以单击“测试参数”查看脚本中所引用的参数信息,同时可以查看环境中已配置的环境变量信息,不可修改,SQL语句中的参数可以按照参数名进行排序。 支持SQL编辑器风格配置。鼠标放置在上,单击“风格配置”,可以对编辑器、操作栏、注释模板进行配置、以及查询SQL脚本编辑器可使用的快捷键。 SQL查询结果展示支持表格和列表两种展示方式。单击“风格配置”,在“编辑器配置”里面可以对SQL查询结果展示进行配置。 企业模式下,支持从脚本开发界面快速前往发布任务。开发脚本时,单击页面上方的“前往发布”跳转到任务发布界面。 支持Hive SQL、
DLI SQL、DWS SQL、RDS SQL和Impala SQL脚本可以查看右侧的数据表,单击表名前面的单选框,可以查看该数据的列名、字段类型和描述。 单击后,支持通过“提交状态”、“脚本类型”、“责任人”和“更新时间”进行过滤查询,方便快速过滤出所要查询的脚本。 脚本开发支持细粒度权限管控,在数据安全模块对数据开发脚本目录权限管控策略进行配置。 脚本开发的使用流程如下: 图1 脚本开发流程 新建脚本:新建相应类型的脚本。具体请参见新建脚本。 开发脚本:基于新建的脚本,进行脚本的在线开发、调试和执行。具体请参见开发脚本。 提交版本并解锁:脚本开发完成后,您需要提交版本并解锁,提交版本并解锁后才能正式地被作业调度运行,便于其他开发者修改。具体请参见提交版本。 (可选)管理脚本:脚本开发完成后,您可以根据需要,进行脚本管理。具体请参见(可选)管理脚本。 发布脚本。企业模式下需要发布脚本,具体请参见发布脚本任务。 父主题: 脚本开发
-
Rsync与Inotify简介 Rsync(Remote Synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台服务器间的文件,也可以使用Rsync同步本地硬盘中的不同目录。SUSE Linux中已经预装了此软件,直接使用即可。 Inotify是一种基于内核的文件变化通知机制,用于监控文件系统时间,如文件存取、删除、移动、修改等。该软件在SUSE Linux中没有预装,需要自行安装。该项目的地址为 https://github.com/rvoicilas/inotify-tools。 父主题: 脚本简介
-
管理已添加的关键字 对于已添加的关键字,将鼠标悬浮在关键字区域时,可以选择进行以下操作。 单击关键字名称,可以查看关键字的详细信息。 单击“关键字目录”右侧的,可以创建文件夹。可以将步骤3中设置好的关键字储存在自定义的文件夹内。 鼠标悬浮在关键字名称的左侧区域,可以调整关键字的顺序。 单击或鼠标悬浮在关键字拖拽到测试步骤空白页,可以将关键字添加至测试步骤。 单击测试关键字任意区域,可以编辑关键字对应用例详情。 单击,可以查看该关键字的信息。 单击,可禁用关键字,再次单击可解除禁用。 单击,可从操作步骤中删除该关键字。 用户可以修改已保存的关键字协议类型。
-
背景信息 接口关键字中定义单个接口的请求,可以通过导入Swagger文件、保存自定义URL请求等方式生成。 Swagger是一个定义、开发、调试RESTful等接口的工具,使用Swagger可以标准化地定义接口属性,便于互联互通。接口自动化支持导入Swagger 2.0&3.0格式的接口描述文件、解析接口的定义描述、生成脚本模板,只需要按照模板输入接口参数就可以创建接口自动化用例。 通过导入接口Swagger描述文件可以生成脚本模板,一个脚本模板对应Swagger中的一个接口定义,基于脚本模板可以可视化编排测试用例。 脚本模板和Swagger接口描述中字段的对应关系如下: swagger 2.0规范如下: 脚本模板属性 Swagger接口定义属性 名称 默认使用operationId,可在设置中配置使用summary。 路径 schema + :// + basePath + path。 请求参数hostURL host 其它请求参数 parameters swagger 3.0规范如下: 脚本模板属性 Swagger接口定义属性 名称 默认使用operationId,可在设置中配置使用summary。 路径 url + path。 请求参数hostURL servers: - url: https://{hostURL}/variable variables: hostURL: default: test.demo.com 其它请求参数 parameters, requestBody, responses
-
导入Swagger文件生成测试脚本 完成创建CodeArts TestPlan接口自动化测试用例模板操作,单击用例名称,选择“脚本”页签。 在右侧“关键字库”界面,单击“导入接口”。 单击“点击添加文件或拖拽上传”,选择配置好的Swagger接口文档,单击“确定”。 文档导入成功后,系统自动解析生成脚本模板。脚本模板包含了接口的基本描述信息。可以从“关键字库”界面单击或拖拽接口添加至测试步骤,只需要按模板输入接口参数就可以测试。 导入Swagger文件常见问题请参考导入脚本模板文件不符合Swagger规范。
-
支持数据简介 MindSpeed-LLM框架常用数据集格式: alpaca格式 sharegpt格式 moss格式 本教程使用到的训练数据集样例是Alpaca数据集。您也可以自行准备数据集。 Alpaca数据集下载链接如下: 预训练(MindSpeed-LLM):train-00000-of-00001-a09b74b3ef9c3b56.parquet,数据大小:24M左右。 微调:alpaca_gpt4_data.json,数据大小:43.6 MB。
-
引用字符和转义字符使用示例 引用字符和转义字符使用说明: 引用字符:用于识别分割字段,默认值:英文双引号(")。 转义字符:在导出结果中如果需要包含特殊字符,如引号本身,可以使用转义字符(反斜杠 \ )来表示。默认值:英文反斜杠(\)。 假设两个quote_char之间的数据内容存在第三个quote_char,则在第三个quote_char前加上escape_char,从而避免字段内容被分割。 假设数据内容中原本就存在escape_char,则在这个原有的escape_char前再加一个escape_char,避免原来的那个字符起到转义作用。 应用示例: 在进行转储时,如果引用字符和转义字符不填,如下图所示。 下载的.csv用excel打开以后如下图所示,是分成两行的。 在转储时,如果引用字符和转义字符都填写,比如,引用字符和转义字符都填英文双引号("),则下载以后查看结果如下图所示。
-
下载或转储脚本执行结果 脚本运行成功后,支持下载和转储SQL脚本执行结果。系统默认支持所有用户都能下载和转储SQL脚本的执行结果。如果您不希望所有用户都有该操作权限,可参考配置数据导出策略进行配置。 脚本执行完成后在“执行结果”中,单击“下载”可以直接下载
CS V格式的结果文件到本地。可以在下载中心查看下载记录。 脚本执行完成后在“执行结果”中,单击“转储”可以将脚本执行结果转储为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脚本的执行结果,通过下载和转储能够支持获取更多的执行结果。各类SQL脚本查看、下载、转储支持的规格如表4所示。 表4 SQL脚本支持查看/下载/转储规格 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
-
响应参数 状态码:200 表3 响应Body参数 参数 参数类型 描述 data JobScriptOrderStatisticsModel object 展示实例状态统计信息。 表4 JobScriptOrderStatisticsModel 参数 参数类型 描述 total_instance Integer 实例总量。 execute_statistics Array of ExectuionStatistic objects 每个状态一个count,里面记录该状态的总数量,以及包含该状态的批次列表。 表5 ExectuionStatistic 参数 参数类型 描述 instance_status String 执行实例状态。 instance_count Integer 该状态下执行实例个数。 batch_indexes Array of integers 该状态下批次index列表。
-
响应示例 状态码:200 展示实例状态统计信息返回体。 更多状态码请参考状态码。 {
"data" : {
"total_instance" : 1,
"execute_statistics" : [ {
"instance_status" : "READY",
"instance_count" : 0,
"batch_indexes" : [ ]
}, {
"instance_status" : "PRO
CES SING",
"instance_count" : 0,
"batch_indexes" : [ ]
}, {
"instance_status" : "ABNORMAL",
"instance_count" : 0,
"batch_indexes" : [ ]
}, {
"instance_status" : "CANCELED",
"instance_count" : 1,
"batch_indexes" : [ 1 ]
}, {
"instance_status" : "FINISHED",
"instance_count" : 0,
"batch_indexes" : [ ]
} ]
}
}
-
响应示例 状态码:200 请求成功。 更多状态码请参考状态码。 {
"data" : {
"script_uuid" : "SC2023083111030804153ddb7",
"name" : "testEcho",
"description" : "测试echo",
"type" : "SHELL",
"content" : "echo \"${aaa}\"",
"script_params" : [ {
"param_name" : "value",
"param_value" : "aaa",
"param_description" : "测试参数",
"param_order" : 1,
"sensitive" : false
} ],
"gmt_created" : 1686059454716,
"provider" : "HWC.ECS",
"properties" : {
"risk_level" : "LOW",
"version" : "v1.0.0"
}
}
}
-
响应参数 状态码:200 表3 响应Body参数 参数 参数类型 描述 data PublicScriptDetailModel object 展示公共脚本详情返回体。 表4 PublicScriptDetailModel 参数 参数类型 描述 script_uuid String 脚本uuid。 name String 脚本名称。 description String 脚本描述。 type String 脚本类型。 SHELL:shell脚本。 PYTHON:Python脚本。 BAT:Bat脚本。 content String 脚本内容。 script_params Array of ScriptParamDefine objects 脚本入参。 gmt_created Long 创建时间。 properties PublicScriptPropertiesModel object 脚本附件属性。 表5 ScriptParamDefine 参数 参数类型 描述 param_name String 参数名仅支持字母、数字以及下划线。 param_value String 参数值。 约束: 参数长度为1-4096位。 可以包含大写字母、小写字母、数字及特殊字符(_-/.* ?:",=+@#[{]})。 禁止出现连续'.'。 param_description String 参数描述。 param_order Integer 【已废弃】该参数已废弃,传入该参数不会生效。 sensitive Boolean 是否是敏感参数。 表6 PublicScriptPropertiesModel 参数 参数类型 描述 risk_level String 风险等级 LOW:低风险 MEDIUM:中风险 HIGH:高风险 version String 脚本版本号。
-
请求示例 创建一个SHELL脚本,审批消息通过微信通知审批人。 POST https://{Endpoint}/v1/job/scripts
{
"type" : "SHELL",
"content" : "echo ${value}",
"name" : "09101112",
"description" : "实例脚本",
"properties" : {
"risk_level" : "HIGH",
"version" : "1.0.0",
"reviewers" : [ {
"reviewer_name" : "test",
"reviewer_id" : "7a8513cd87b7448283a1d5190eb91234"
} ],
"protocol" : "WECHAT"
},
"script_params" : [ {
"param_name" : "a",
"param_value" : "string",
"param_description" : "string",
"param_order" : 1,
"sensitive" : true
} ]
}
-
响应示例 状态码:200 创建的脚本uuid。 更多状态码请参考状态码。 {
"data" : "SC2023102521413701c4a8a62"
} 状态码:400 包含错误信息。 更多状态码请参考状态码。 {
"error_code" : "COC.00040701",
"error_msg" : "script_params size must be between 0 and 50"
}
-
接口约束 脚本名称:同一租户下,脚本名称不能重复,最大字符64个字符,支持中文+字母+数字+下划线。 脚本内容最大100kb。 脚本参数个数最多20个。 脚本描述:最大256个字符。 单个参数的参数名称 64个字符,只支持字母+数字+下划线。 单个参数的值最大1024个字符,正则表达式如下:^((?!.{2,})[a-zA-Z0-9_-/.*\x20?:",=+@\[{]}])*$。 审批人最多支持5人。 脚本输出的日志总量只支持1MB。