华为云用户手册

  • 备份资产 登录 DataArts Studio 控制台。选择实例,单击“进入控制台”,选择对应工作空间的“数据开发”模块,进入数据开发页面。 图1 选择数据开发 在数据开发主界面的左侧导航栏,选择“备份管理”。 单击“启动每日备份”,打开“OBS文件浏览”页面,选择OBS文件夹,设置备份数据的存储位置。 图2 备份管理 每日备份在每日0点开始备份昨日的所有作业、脚本、资源和环境变量,启动当日不会备份昨日的作业、脚本、资源和环境变量。 选择OBS存储路径时,若仅选择至桶名层级,则备份对象自动存储在以“备份日期”命名的文件夹内。环境变量,资源,脚本和作业分别存储在1_env,2_resources,3_scripts和4_jobs文件夹内。 备份成功后,在以“备份日期”命名的文件夹内,自动生成backup.json文件,该文件按照节点类型存储了作业信息,支持恢复作业前进行修改。 启动每日备份后,若想结束备份任务,您可以单击右边的“停止每日备份”。
  • 还原资产 登录DataArts Studio控制台。选择实例,单击“进入控制台”,选择对应工作空间的“数据开发”模块,进入数据开发页面。 图3 选择数据开发 在数据开发模块控制台的左侧导航栏,选择“备份管理”。 选择“还原管理”页签,单击“还原备份”。 在还原备份对话框中,从OBS桶中选择待还原的资产存储路径,设置重名处理策略。 待还原的资产存储路径为备份资产中生成的文件路径。 您可在还原资产前修改备份路径下的backup.json文件,支持修改连接名(connectionName)、数据库名(database)和集群名(clusterName)。 图4 还原资产 单击“确定”。
  • 启动作业调度 登录DataArts Studio控制台。选择实例,单击“进入控制台”,选择对应工作空间的“数据开发”模块,进入数据开发页面。 图1 选择数据开发 在数据开发控制台,单击左侧导航栏中的作业开发按钮,进入作业开发页面后,打开已完成血缘配置的作业。 在数据开发中,当作业进行“执行调度”时,系统开始解析血缘关系。 测试运行不会解析血缘。 图2 作业调度 待调度作业成功运行完成后,等待约1分钟左右,数据血缘关系即可生成成功。
  • (可选)创建 DLI 环境隔离 仅Serverless服务(当前即DLI)需要配置环境隔离。 在DataArts Studio控制台首页,选择对应工作空间的“管理中心”模块,进入管理中心页面。 图1 选择管理中心 在管理中心页面,单击“数据源资源映射配置”,进入数据源资源映射配置页面。 图2 数据源资源映射配置 单击“DB配置”下的“添加”,然后分别配置开发环境数据库名和生产环境数据库名,完成后单击“保存”。通过和可以进行编辑和删除操作。 数据库名需配置为已创建完成的数据库名。建议在创建数据库时,开发环境数据库名和生产环境数据库名保持一致,开发环境数据库名带上“_dev”后缀,以与生产环境数据库名进行区分。 图3 DB配置 单击“DLI队列配置”下的“添加”,然后分别配置开发环境队列名和生产环境队列名,完成后单击“保存”。通过和可以进行编辑和删除操作。 队列名需配置为已在DLI创建完成的队列名。建议开发环境队列名和生产环境队列名保持一致,开发环境队列名带上“_dev”后缀,以与生产环境队列名进行区分。 图4 DLI队列配置 “DB配置”和“DLI队列配置”完成后,DLI环境隔离创建成功。
  • DB配置 在DataArts Studio控制台首页,选择对应工作空间的“管理中心”模块,进入管理中心页面。 在管理中心页面,单击“数据源资源映射配置”,进入数据源资源映射配置页面。 单击“DB配置”下的“添加”,然后分别配置开发环境数据库名和生产环境数据库名,完成后单击“保存”。通过和可以进行编辑和删除操作。 数据库名需配置为已创建完成的数据库名。建议在创建数据库时,开发环境数据库名和生产环境数据库名保持一致,开发环境数据库名带上“_dev”后缀,以与生产环境数据库名进行区分。 对于DWS、 MRS Hive和MRS Spark这三种数据源,如果在创建数据连接时选择同一个集群,则需要配置数据源资源映射的DB数据库映射关系进行开发生产环境隔离。 图5 DB配置
  • 调试方法介绍 下面为您介绍几种EL表达式的调试方法,能够在调试过程中方便地看到替换结果。 后文以#{DateUtil.now()}表达式为例进行介绍。 使用DIS Client节点。 前提:您需要具备DIS通道。 方法:选择DIS Client节点,将EL表达式直接写在要发送的数据中,单击“测试运行”,然后在节点上右键查看日志,日志中会把EL表达式的值打印出来。 使用Kafka Client节点。 前提:您需要具备MRS集群,且集群有Kafka组件。 方法:选择Kafka Client节点,将EL表达式直接写在要发送的数据中,单击“测试运行”,然后在节点上右键查看日志,日志中会把EL表达式的值打印出来。 使用Shell节点。 前提:您需要具备E CS 弹性云服务器。 方法:创建一个主机连接,将EL表达式直接通过echo打印出来,单击“测试运行”之后查看日志,日志中会打印出EL表达式的值。 使用Create OBS节点。 如果上述方法均不可用,则可以通过Create OBS去创建一个OBS目录,目录名称就是EL表达式的值,单击“测试运行”后,再去OBS界面查看创建出来的目录名称。
  • 举例 在Rest Client节点的参数“URL参数”中使用EL表达式“tableName=#{JSONUtil.path(Job.getNodeOutput("get_cluster"),"tables[0].table_name")}”,如图1所示。 表达式说明如下: 获取作业中“get_cluster”节点的执行结果(“Job.getNodeOutput("get_cluster")”),执行结果是一个JSON字符串。 通过JSON路径(“tables[0].table_name”),获取JSON字符串中字段的值。 图1 表达式示例 EL表达式在数据开发过程中被广泛应用,您可以参考最佳实践查看更多应用EL表达式的进阶实践。
  • 调度身份的分类 调度身份分为委托和 IAM 账户两大类。 委托:由于云各服务之间存在业务交互关系,一些云服务需要与其他云服务协同工作,需要您创建云服务委托,将操作权限委托给这些服务,让这些服务以您的身份使用其他云服务,代替您进行一些资源运维工作。 委托可以分为: 公共委托:工作空间级别的全局委托。适用于该空间内的所有作业。配置公共委托请参考配置公共委托。 作业委托:适用于单个作业级别。配置作业委托请参考配置作业委托。 IAM账号:通过用户组统一配置,权限管理相对于委托来说,流程简便;并且使用IAM账号的兼容性更好,可支持MRS相关的节点(MRS Presto SQL、MRS Spark、MRS Spark Python、MRS Flink Job、 MRS MapReduce),通过直连方式的(MRS Spark SQL、MRS Hive SQL)节点,以及目标端为DWS的ETL Job节点,解决部分MRS集群和部分ETL Job节点不支持委托方式提交作业的问题。 IAM账户可分为: 公共IAM账户:工作空间级别的全局IAM账户。适用于该空间内的所有作业。配置公共IAM账户请参考配置公共IAM账号。 执行用户:作业级别的IAM账户,适用于单个作业级别。配置执行用户请参考配置执行用户。
  • 参考:创建委托 登录IAM服务控制台。 选择“委托”,单击“创建委托”。 设置“委托名称”。例如:DGC_agency。 在创建委托页面,委托类型选择“云服务”,云服务选择“ 数据湖 治理中心DGC”,将操作权限委托给DataArts Studio,让DataArts Studio以您的身份使用其他云服务,代替您进行一些资源运维工作。 图6 创建委托 单击“下一步”,进入授权页面。 在授权页面中搜索“Tenant Administrator”策略,勾选“Tenant Administrator”策略并单击“下一步”。 因Tenant Administrator策略具有除 统一身份认证 服务IAM外,其他所有服务的所有执行权限。所以给委托服务DataArts Studio配置Tenant Administrator,可访问周边所有服务。 若您想达到对权限较小化的安全管控要求,Tenant Administrator可不配置,仅配置OBS OperateAccess权限(因作业执行过程中,需要往obs写执行日志信息,因此需要添加 OBS OperateAccess权限)。然后再根据作业中的节点类型,配置不同的委托权限。例如某作业仅包含Import GES节点,可配置GES Administrator权限和OBS OperateAccess权限即可。详细方案请参考参考:配置委托权限。 图7 配置权限 单击“确定”完成委托创建。
  • 参考:配置委托权限 将账号的操作权限委托给DataArts Studio服务后,需要配置委托身份的权限,才可与其他服务进行交互。 为实现对权限较小化的安全管控要求,可根据作业中的节点类型,以服务为粒度,参见表1配置相应的服务Admin权限。 也可精确到具体服务的操作、资源以及请求条件等。根据作业中的节点类型,以对应服务API接口为粒度进行权限拆分,满足企业对权限最小化的安全管控要求。参见表2进行配置。例如包含Import GES节点的作业,您只需要创建自定义策略,并勾选ges:graph:getDetail(查看图详情),ges:jobs:getDetail(查询任务状态),ges:graph:access(使用图)这三个授权项即可。 当满足如下条件之一时,MRS集群才支持委托方式提交作业。 非安全集群。 安全集群,集群版本大于 2.1.0,并且安装了MRS 2.1.0.1及以上版本的补丁。 当MRS集群不支持委托方式提交作业时,如下节点相关作业不能配置委托。 MRS相关的节点(MRS Presto SQL、MRS Spark、MRS Spark Python、MRS Flink Job、 MRS MapReduce),以及通过API方式连接的(MRS Spark SQL、MRS Hive SQL)节点。 配置服务级Admin权限 因作业执行过程中,需要往OBS写执行日志信息,因此粗粒度授权时,所有作业都需要添加OBS OperateAccess权限。 表1 配置相关节点的admin权限 节点名称 系统权限 权限描述 CDM Job、DIS Stream、DIS Dump、DIS Client DAYU Administrator 数据治理中心 服务的所有执行权限。 Import GES GES Administrator 图引擎服务的所有执行权限。该角色有依赖,需要在同项目中勾选依赖的角色:Tenant Guest、Server Administrator。 MRS Presto SQL、MRS Spark、MRS Spark Python、MRS Flink Job、 MRS MapReduce MRS Spark SQL、MRS Hive SQL(通过MRS API方式连接MRS集群的) MRS Administrator MRS Fullaccess KMS Administrator MRS Administrator:RBAC策略下 MapReduce服务 的所有执行权限。该角色有依赖,需要在同项目中勾选依赖的角色:Tenant Guest、Server Administrator。 MRS Fullaccess:细粒度策略下MRS管理员权限,拥有该权限的用户可以拥有MRS所有权限。 KMS Administrator: 数据加密 服务加密密钥的管理员权限。 MRS Spark SQL、MRS Hive SQL、MRS Kafka、Kafka Client(通过代理方式连接集群) DAYU Administrator KMS Administrator DAYU Administrator: 数据治理 中心服务的所有执行权限。 KMS Administrator:数据加密服务加密密钥的管理员权限。 DLI Flink Job、DLI SQL、DLI Spark DLI Service Admin 数据湖探索 的所有执行权限。 DWS SQL、Shell、RDS SQL(通过代理方式连接数据源) DAYU Administrator KMS Administrator DAYU Administrator:数据治理中心服务的所有执行权限。 KMS Administrator:数据加密服务加密密钥的管理员权限。 CSS DAYU Administrator Elasticsearch Administrator DAYU Administrator:数据治理中心服务的所有执行权限。 Elasticsearch Administrator: 云搜索服务 的所有执行权限。该角色有依赖,需要在同项目中勾选依赖的角色:Tenant Guest、Server Administrator。 Create OBS、Delete OBS、OBS Manager OBS OperateAccess 查看桶、上传对象、获取对象、删除对象、获取对象ACL等对象基本操作权限 SMN SMN Administrator 消息通知 服务的所有执行权限。 配置细粒度权限(根据各服务支持的授权项,创建自定义策略) 创建自定义策略的详细操作请参见创建自定义策略。 作业执行过程中,需要向OBS中写入执行日志。当采取精细化授权方式时,任何类型的作业均需要添加OBS的如下授权项: obs:bucket:GetBucketLocation obs:object:GetObject obs:bucket:CreateBucket obs:object:PutObject obs:bucket:ListAllMyBuckets obs:bucket:ListBucket CDM Job、DIS Stream、DIS Dump、DIS Client节点隶属于DataArts Studio模块,DataArts Studio不支持细粒度授权。因此包含这几类节点的作业,给服务配置权限仅支持DataArts Studio Administarator。 CSS不支持细粒度授权,且需要通过代理执行。因此包含这类节点的作业,需要配置DataArts Studio Administarator和Elasticsearch Administrator权限。 SMN不支持细粒度授权,因此包含这类节点的作业,需要配置SMN Administarator权限。 表2 自定义策略 节点名称 授权项 Import GES ges:graph:access ges:graph:getDetail ges:jobs:getDetail MRS Presto SQL、MRS Spark、MRS Spark Python、MRS Flink Job、 MRS MapReduce MRS Spark SQL、MRS Hive SQL(通过MRS API方式连接MRS集群的) mrs:job:delete mrs:job:stop mrs:job:submit mrs:cluster:get mrs:cluster:list mrs:job:get mrs:job:list kms:dek:crypto kms:cmk:get MRS Spark SQL、MRS Hive SQL、MRS Kafka、Kafka Client(通过代理方式连接集群) kms:dek:crypto kms:cmk:get DataArts Studio Administarator(角色) DLI Flink Job、DLI SQL、DLI Spark dli:jobs:get dli:jobs:update dli:jobs:create dli:queue:submit_job dli:jobs:list dli:jobs:list_all DWS SQL、Shell、RDS SQL(通过代理方式连接数据源) kms:dek:crypto kms:cmk:get DataArts Studio Administarator(角色) Create OBS、Delete OBS、OBS Manager obs:bucket:GetBucketLocation obs:bucket:ListBucketVersions obs:object:GetObject obs:bucket:CreateBucket obs:bucket:DeleteBucket obs:object:DeleteObject obs:object:PutObject obs:bucket:ListAllMyBuckets obs:bucket:ListBucket
  • 使用案例 案例场景 因数据规整要求,需要周期性地将多组DLI源数据表数据导入到对应的DLI目的表,如表1所示。 表1 需要导入的列表情况 源数据表名 目的表名 a_new a b_2 b c_3 c d_1 d c_5 e b_1 f 如果通过SQL节点分别执行导入脚本,需要开发大量脚本和节点,导致重复性工作。在这种情况下,我们可以使用For Each节点进行循环作业,节省开发工作量。 配置方法 准备源表和目的表。为了便于后续作业运行验证,需要先创建DLI源数据表和目的表,并给源数据表插入数据。 创建DLI表。您可以在DataArts Studio数据开发中,新建DLI SQL脚本执行以下SQL命令,也可以在数据湖探索(DLI)服务控制台中的SQL编辑器中执行以下SQL命令: /* 创建数据表 */ CREATE TABLE a_new (name STRING, score INT) STORED AS PARQUET; CREATE TABLE b_2 (name STRING, score INT) STORED AS PARQUET; CREATE TABLE c_3 (name STRING, score INT) STORED AS PARQUET; CREATE TABLE d_1 (name STRING, score INT) STORED AS PARQUET; CREATE TABLE c_5 (name STRING, score INT) STORED AS PARQUET; CREATE TABLE b_1 (name STRING, score INT) STORED AS PARQUET; CREATE TABLE a (name STRING, score INT) STORED AS PARQUET; CREATE TABLE b (name STRING, score INT) STORED AS PARQUET; CREATE TABLE c (name STRING, score INT) STORED AS PARQUET; CREATE TABLE d (name STRING, score INT) STORED AS PARQUET; CREATE TABLE e (name STRING, score INT) STORED AS PARQUET; CREATE TABLE f (name STRING, score INT) STORED AS PARQUET; 给源数据表插入数据。您可以在DataArts Studio数据开发模块中,新建DLI SQL脚本执行以下SQL命令,也可以在数据湖探索(DLI)服务控制台中的SQL编辑器中执行以下SQL命令: /* 源数据表插入数据 */ INSERT INTO a_new VALUES ('ZHAO','90'),('QIAN','88'),('SUN','93'); INSERT INTO b_2 VALUES ('LI','94'),('ZHOU','85'); INSERT INTO c_3 VALUES ('WU','79'); INSERT INTO d_1 VALUES ('ZHENG','87'),('WANG','97'); INSERT INTO c_5 VALUES ('FENG','83'); INSERT INTO b_1 VALUES ('CEHN','99'); 准备数据集数据。您可以通过以下方式之一获取数据集: 您可以将表1数据导入到DLI表中,然后将SQL脚本读取的结果作为数据集。 您可以将表1数据保存在OBS的CSV文件中,然后通过DLI SQL或DWS SQL创建OBS外表关联这个CSV文件,然后将OBS外表查询的结果作为数据集。DLI创建外表请参见OBS输入流,DWS创建外表请参见创建外表。 您可以将表1数据保存在HDFS的CSV文件中,然后通过HIVE SQL创建Hive外表关联这个CSV文件,然后将HIVE外表查询的结果作为数据集。MRS创建外表请参见创建表。 本例以方式1进行说明,将表1中的数据导入到DLI表(Table_List)中。您可以在DataArts Studio数据开发模块中,新建DLI SQL脚本执行以下SQL命令导入数据,也可以在数据湖探索(DLI)服务控制台中的SQL编辑器中执行以下SQL命令: /* 创建数据表TABLE_LIST,然后插入表1数据,最后查看生成的表数据 */ CREATE TABLE Table_List (Source STRING, Destination STRING) STORED AS PARQUET; INSERT INTO Table_List VALUES ('a_new','a'),('b_2','b'),('c_3','c'),('d_1','d'),('c_5','e'),('b_1','f'); SELECT * FROM Table_List; 生成的Table_List表数据如下: 图2 Table_List表数据 创建要循环运行的子作业ForeachDemo。在本次操作中,定义循环执行的是一个包含了DLI SQL节点的任务。 进入DataArts Studio数据开发模块选择“作业开发”页面,新建作业ForeachDemo,然后选择DLI SQL节点,编排图3所示的作业。 DLI SQL的语句中把要替换的变量配成${}这种参数的形式。在下面的SQL语句中,所做的操作是把${Source}表中的数据全部导入${Destination}中,${fromTable}、${toTable} 就是要替换的变量参数。SQL语句为: INSERT INTO ${Destination} select * from ${Source}; 此处不能使用EL表达式#{Job.getParam("job_param_name")} ,因为此表达式只能直接获取当前作业里配置的参数的value,并不能获取到父作业传递过来的参数值,也不能获取到工作空间里面配置的全局变量,作用域仅为本作业。 而表达式${job_param_name},既可以获取到父作业传递过来的参数值,也可以获取到全局配置的变量。 图3 循环执行子作业 配置完成SQL语句后,在子作业中配置作业参数。此处仅需要配置参数名,用于主作业ForeachDemo_master中的For Each节点识别子作业参数;参数值无需填写。 图4 配置子作业参数 配置完成后保存作业。 创建For Each节点所在的主作业ForeachDemo_master。 进入DataArts Studio数据开发模块选择“作业开发”页面,新建数据开发主作业ForeachDemo_master。选择DLI SQL节点和For Each节点,选中连线图标并拖动,编排图5所示的作业。 图5 编排作业 配置DLI SQL节点属性,此处配置为SQL语句,语句内容如下所示。DLI SQL节点负责读取DLI表Table_List中的内容作为数据集。 SELECT * FROM Table_List; 图6 DLI SQL节点配置 配置For Each节点属性。 子作业:子作业选择步骤2已经开发完成的子作业“ForeachDemo”。 数据集:数据集就是DLI SQL节点的Select语句的执行结果。使用EL表达式#{Job.getNodeOutput('preDLI')},其中preDLI为前一个节点的名称。 子作业参数:用于将数据集中的数据传递到子作业以供使用。Source对应的是数据集Table_List表的第一列,Destination是第二列,所以配置的EL表达式分别为#{Loop.current[0]}、#{Loop.current[1]}。 图7 配置For Each节点 配置完成后保存作业。 测试运行主作业。 单击主作业画布上方的“测试运行”按钮,测试作业运行情况。主作业运行后,会通过For Each节点自动调用运行子作业。 单击左侧导航栏中的“实例监控”,进入实例监控中查看作业运行情况。等待作业运行成功后,就能查看For Each节点生成的子作业实例,由于数据集中有6行数据,所以这里就对应产生了6个子作业实例。 图8 查看作业实例 查看对应的6个DLI目的表中是否已被插入预期的数据。您可以在DataArts Studio数据开发模块中,新建DLI SQL脚本执行以下SQL命令导入数据,也可以在数据湖探索(DLI)服务控制台中的SQL编辑器中执行以下SQL命令: /* 查看表a数据,其他表数据请修改命令后运行 */ SELECT * FROM a; 将查询到的表数据与给源数据表插入数据步骤中的数据进行对比,可以发现数据插入符合预期。 图9 目的表数据
  • 适用场景 当您进行作业开发时,如果某些任务的参数有差异、但处理逻辑全部一致,在这种情况下您可以通过For Each节点避免重复开发作业。 For Each节点可指定一个子作业循环执行,并通过数据集对子作业中的参数进行循环替换。关键参数如下: 子作业:选择需要循环执行的作业。 数据集:即不同子任务的参数值的集合。可以是给定的数据集,如“[['1'],['3'],['2']]”;也可以是EL表达式如“#{Job.getNodeOutput('preNodeName')}”,即前一个节点的输出值。 子作业参数:参数名即子作业中定义的变量;参数值一般配置为数据集中的某组数据,每次运行中会将参数值传递到子作业以供使用。例如参数值填写为:#{Loop.current[0]},即将数据集中每行数据的第一个数值遍历传递给子作业。 For Each节点举例如图1所示 。从图中可以看出,子作业“foreach”中的参数名为“result”,参数值为一维数组数据集“[['1'],['3'],['2']] ”的遍历(即第一次循环为1,第二次循环为3,第三次循环为2)。 图1 for each节点
  • For Each节点与EL表达式 要想使用好For Each节点,您必须对EL表达式有所了解。EL表达式用法请参考EL表达式。 下面为您展示For Each节点常用的一些EL表达式。 #{Loop.dataArray} :For循环节点输入的数据集,是一个二维数组。 #{Loop.current}:由于For循环节点在处理数据集的时候,是一行一行进行处理的,那Loop.current就表示当前处理到的某行数据,Loop.current是一个一维数组,一般定义格式为#{Loop.current[0]}、#{Loop.current[1]}或其他,0表示遍历到当前行的第一个值。 #{Loop.offset}:For循环节点在处理数据集时当前的偏移量,从0开始。 #{Job.getNodeOutput('preNodeName')}:获取前面节点的输出。
  • 调测并保存作业 作业编排和配置完成后,请执行以下操作: 批处理作业 单击画布上方的测试运行按钮,测试作业。如果测试未通过,请您查看作业节点的运行日志,进行定位处理。 用户可以查看该作业的测试运行日志,单击“查看日志”可以进入查看日志界面查看日志的详细信息记录。 作业未提交版本之前,进行手动测试运行,作业监控里面的作业运行实例版本显示是0。 测试通过后,单击画布上方的保存按钮,保存作业的配置信息。 保存后,在右侧的版本里面,会自动生成一个保存版本,支持版本回滚。保存版本时,一分钟内多次保存只记录一次版本。对于中间数据比较重要时,可以通过“新增版本”按钮手动增加保存版本。 实时处理作业 单击画布上方的保存按钮,保存作业的配置信息。 保存后,在右侧的版本里面,会自动生成一个保存版本,支持版本回滚。保存版本时,一分钟内多次保存只记录一次版本。对于中间数据比较重要时,可以通过“新增版本”按钮手动增加保存版本。
  • 配置作业参数 作业参数为全局参数,可用于作业中的任意节点。操作方法如下: Pipeline模式的批处理作业和实时处理作业,单击画布的空白处,在右侧显示“作业参数配置”页签,单击此页签,展开配置页面,配置如表3所示的参数。 表3 作业参数配置 功能 说明 变量 新增 单击“新增”,在文本框中填写作业参数的名称和参数值。 参数名称 名称只能包含字符:英文字母、数字、中划线和下划线。 参数值 字符串类的参数直接填写字符串,例如:str1 数值类的参数直接填写数值或运算表达式。 参数配置完成后,在作业中的引用格式为:${参数名称} 说明: 如果作业中有两个节点,比如第一个Rest Client节点返回了body,第二个节点使用返回的data。如果这个data的长度超过1000000个字符,内容就会被截断。在配置作业参数时,作业的参数值的结果最大不超过1000000个字符。 编辑参数表达式 在参数值文本框后方,单击,编辑参数表达式,更多表达式请参见表达式概述。 修改 在参数名和参数值的文本框中直接修改。 掩码显示 在参数值为密钥等情况下,从安全角度,请单击将参数值掩码显示。 删除 在参数值文本框后方,单击,删除作业参数。 常量 新增 单击“新增”,在文本框中填写作业常量的名称和参数值。 参数名称 名称只能包含字符:英文字母、数字、中划线和下划线。 参数值 字符串类的参数直接填写字符串,例如:str1 数值类的参数直接填写数值或运算表达式。 参数配置完成后,在作业中的引用格式为:${参数名称} 编辑参数表达式 在参数值文本框后方,单击,编辑参数表达式,更多表达式请参见表达式概述。 修改 在参数名和参数值的文本框中直接修改,修改完成后,请保存。 删除 在参数值文本框后方,单击,删除作业常量。 工作空间环境变量 查看工作空间已配置的变量和常量。 单击“作业参数预览”页签,展开预览页面,配置如表4所示的参数。 MRS Flink Job、DLI Flink Job、DLI SQL、DWS SQL、MRS HetuEngine、MRS ClickHouse SQL、MRS Hive SQL、MRS Impala SQL、MRS Presto SQL、MRS Spark SQL、RDS SQL的算子脚本参数支持参数预览。 表4 作业参数预览 功能 说明 当前时间 仅单次调度才显示。系统默认为当前时间。 事件触发时间 仅事件驱动调度才显示。系统默认为事件触发时间。 周期调度 仅周期调度才显示。系统默认为调度周期。 具体时间 仅周期调度才显示。周期调度配置的具体运行时间。 起始日期 仅周期调度才显示。周期调度的生效时间。 后N个实例 作业运行调度的实例个数。 单次调度场景默认为1。 事件驱动调度场景默认为1。 周期调度场景 当实例数大于10时,系统最多展示10个日期实例,系统会自动提示“当前参数预览最多支持查看10个实例”。 在作业参数预览中,如果作业参数配置存在语法异常情况系统会给出提示信息。 如果参数配置了依赖作业实际运行时产生的数据,参数预览功能中无法模拟此类数据,则该数据不展示。
  • 配置作业基本信息 为作业配置责任人、优先级信息后,用户可根据责任人、优先级来检索相应的作业。操作方法如下: 单击画布右侧“作业基本信息”页签,展开配置页面,配置如表2所示的参数。 表2 作业基本信息 参数 说明 作业责任人 自动匹配创建作业时配置的作业责任人,此处支持修改。 执行用户 当“作业调度身份是否可配置”设置为“是”,该参数可见。 执行作业的用户。如果输入了执行用户,则作业以执行用户身份执行;如果没有输入执行用户,则以提交作业启动的用户身份执行。 作业委托 当“作业调度身份是否可配置”设置为“是”,该参数可见。 配置委托后,作业执行过程中,以委托的身份与其他服务交互。 作业优先级 自动匹配创建作业时配置的作业优先级,此处支持修改。 实例超时时间 配置作业实例的超时时间,设置为0或不配置时,该配置项不生效。如果您为作业设置了异常通知,当作业实例执行时间超过超时时间,将触发异常通知,发送消息给用户,作业不会中断,继续运行。 实例超时是否忽略等待时间 配置实例超时是否忽略等待时间。 如果勾选上,表示实例运行时等待时间不会被计入超时时间,可前往默认项设置修改此策略。 如果未选上,表示实例运行时等待时间会被计入超时时间。 自定义字段 配置自定义字段的参数名称和参数值。 作业标签 配置作业的标签,用以分类管理作业。 单击“新增”,可给作业重新添加一个标签。也可选择管理作业标签中已配置的标签。
  • 导出资源 在DataArts Studio控制台首页,选择对应工作空间的“管理中心”模块,进入管理中心页面。 图1 选择管理中心 在管理中心页面,单击“资源迁移”,进入资源迁移页面。 图2 资源迁移 单击“新建导出”,配置文件的OBS存储位置和文件名称。 图3 选择导出文件 单击“下一步”,勾选导出的模块。 图4 勾选导出的模块 单击“下一步”,等待导出完成,资源包导出到3所设置的OBS存储位置。 图5 导出完成 导出资源耗时1分钟仍未显示结果则表示导出失败,请重试。如果仍然无法导出,请联系客服或技术支持人员协助解决。 导出完成后可在资源迁移任务列表中,单击对应任务的“下载”按钮,本地获取导出的资源包。 图6 下载导出结果
  • 导入资源 在DataArts Studio控制台首页,选择对应工作空间的“管理中心”模块,进入管理中心页面。 图7 选择管理中心 在管理中心页面,单击“资源迁移”,进入资源迁移页面。 图8 资源迁移 单击“新建导入”,选择导入方式后,配置待导入资源的OBS或本地路径。待导入的资源应为通过导出获取的zip文件。 图9 配置待导入的资源存储路径 单击“下一步”,勾选导入的资源类型。 图10 勾选导入的资源类型 如果选择导入数据源,则单击“下一步”需要配置数据连接。 图11 配置数据连接 单击“下一步”,等待导入任务下发,导入任务成功下发后系统提示“导入开始”。 图12 导入开始 系统提示“导入开始”后,单击“确定”,可在资源迁移任务列表中查看导入结果。 其中存在子任务失败时,可单击红色子任务名,查看失败原因。 图13 查看导入结果
  • 操作步骤 建立跨源数据连接。 创建DLI数据连接。在DataArts Studio管理中心模块,单击创建数据连接,数据连接类型选择“数据湖探索(DLI)”,输入数据连接名称,单击“测试”,提示连接成功,单击“确定”。 创建DWS数据连接。在DataArts Studio管理中心模块,单击创建数据连接,数据连接类型选择“ 数据仓库 服务(DWS)”,输入数据连接名称,设置其他参数,如下图所示,单击“测试”,提示连接成功,单击“确定”。 创建对账作业。 在DataArts Studio数据质量模块,单击左侧导航菜单“对账作业”。 单击“新建”,配置对账作业的基本信息,如下图所示。 单击“下一步”,进入规则配置页面。您需要单击规则卡片中的,然后配置对账规则,如下图所示。 需要分别配置源端和目的端的信息。 配置告警条件,其中单击左侧的表行数(${1_1})表示左侧源端选中表的行数,单击右侧表行数(${2_1})表示目的端表行数。此处配置告警条件为${1_1}!=${2_1},表示当左侧表行数与右侧表行数不一致时,触发报警并显示报警状态。 单击“下一步”,配置订阅信息,如下图所示。 勾选触发告警表示作业报警时发送通知到对应的smn主题,勾选运行成功表示不报警时发送通知到SMN主题。 单击“下一步”,配置调度方式,如下图所示。 单次调度表示需要手动触发运行,周期性调度表示会按照配置定期触发作业运行。此处以当天配置为例,设置每15分钟触发运行一次对账作业为例的配置。 单击“提交”,对账作业创建完成。 查看对账作业。 单击对应的对账作业操作列中的运行链接,运行对账作业后,自动跳转到运维管理页面。 单击结果&日志查看运行结果和运行日志,等待作业运行结束后,如下图所示。
  • 操作步骤 在DataArts Studio控制台首页,选择实例,单击“进入控制台”,选择对应工作空间的“数据质量”模块,进入数据质量页面。 图1 选择数据质量 新建业务指标。 单击左侧导航“指标管理”。 单击页面上方的“新建”,如下图所示。 单击“试跑”,查看试跑运行成功的结果。 单击“保存”,完成指标的创建。 新建规则。 单击左侧导航“规则管理”。 单击页面上方的“新建”,创建第一条规则。 输入参数值,如下图所示。 单击“保存”。 单击页面上方的“新建”,创建第二条规则。 输入参数值,如下图所示。 单击“保存”。 新建业务场景。 单击左侧导航“业务场景管理”。 单击页面上方的“新建”,输入场景的基本配置参数,如下图所示。 单击“下一步”,输入规则组的配置参数,如下图所示。 单击“下一步”,配置订阅信息,如下图所示。 单击“下一步”,配置调度信息,如下图所示。 单击“提交”,完成作业场景的创建。 在业务场景管理列表中,单击操作列的“运行”,跳转到运维管理模块。 单击右上角的刷新按钮,可以查看业务场景的运行状态为成功。 单击运行结果,可查看具体的坪效结果。
  • 场景说明 使用EL表达式#{Job.getNodeOutput("前一节点名")}获取的前一节点的输出结果时,输出结果为二维数组形式 ,形如[["Dean",...,"08"],...,["Smith",...,"53"]]所示。为获取其中的值,本案例提供了如表1所示的两个常见方法示例。 表1 获取结果值常见方法 方法 关键配置 适用场景要求 通过StringUtil提取输出结果值 当SQL节点的输出结果只有一个字段,形如[["11"]]所示时,可以通过StringUtil内嵌对象EL表达式分割二维数组,获取前一节点输出的字段值: #{StringUtil.split(StringUtil.split(StringUtil.split(Job.getNodeOutput("前一节点名"),"]")[0],"[")[0],"\\"")[0]} 通过StringUtil提取输出结果值配置简单,但对适用场景有如下要求: 前一SQL节点的输出结果只有一个字段,形如[["11"]]所示。 输出结果值数据类型为String,需要应用场景支持String数据类型。例如当需要使用IF条件判断输出结果值的数值大小时,不支持String类型,则不能使用本方法。 通过For Each节点提取输出结果值 通过For Each节点,循环获取数据集中二维数组的值: For Each节点数据集:#{Job.getNodeOutput('前一节点名')} For Each节点子作业参数:#{Loop.current[索引]} 通过For Each节点输出结果值适用场景更广泛,但需将作业拆分为主作业和子作业。
  • 通过For Each节点提取输出结果值 场景说明 结合For Each节点及其支持的Loop内嵌对象EL表达式#{Loop.current[0]},循环获取前一节点输出的结果值。 本例中,MRS Hive SQL节点返回多字段的二维数组,选择For Each节点和EL表达式#{Loop.current[]},再通过For Each循环调用Kafka Client节点子作业,Kafka Client节点发送的数据也定义为#{Loop.current[]},通过此配置即可获取MRS Hive SQL节点输出的结果值。 为便于查看最终获得的结果值,本例中For Each节点子作业选择Kafka Client节点进行演示。在实际使用中,您可以根据您的业务需求选择子作业节点类型,在节点任务中应用Loop内嵌对象EL表达式,即可获取For Each前一节点返回的结果值。 For Each节点主作业编排如图5所示。其中,For Each节点的关键配置如下: 数据集:数据集就是HIVE SQL节点的Select语句的执行结果。使用EL表达式#{Job.getNodeOutput("select95")},其中select95为前一个节点的名称。 子作业参数:子作业参数是子作业中定义的参数名,然后在主作业中定义的参数值,传递到子作业以供使用。此处子作业参数名定义为name和score,其值为分别为数据集中的第一列和第二列数值,使用EL表达式#{Loop.current[0]}和#{Loop.current[1]}。 图5 主作业样例 而For Each节点中所选的子作业,则需要定义For Each节点中的子作业参数名,以便让主作业识别参数定义,作业如图6所示。 图6 子作业样例 配置方法 开发子作业 登录DataArts Studio控制台,找到所需要的DataArts Studio实例,单击实例卡片上的“进入控制台”,进入概览页面。 选择“空间管理”页签,在工作空间列表中,找到所需要的工作空间,单击工作空间的“数据开发”,系统跳转至数据开发页面。 在“作业开发”页面,新建数据开发子作业EL_test_slave。选择一个Kafka Client节点,并配置作业参数,编排图6所示的作业。 此处需将参数名填写为name和score,仅用于主作业的For Each节点识别子作业参数;参数值无需填写。 配置Kafka Client节点参数。发送数据定义为:${name}: ${score},选择Kafka连接和Topic名称。 此处不能使用EL表达式#{Job.getParam("job_param_name")} ,因为此表达式只能直接获取当前作业里配置的参数的value,并不能获取到父作业传递过来的参数值,也不能获取到工作空间里面配置的全局变量,作用域仅为本作业。 而表达式${job_param_name},既可以获取到父作业传递过来的参数值,也可以获取到全局配置的变量。 图7 配置Kafka Client节点参数 配置完成后提交子作业。
  • 前提条件 元数据采集支持丰富的数据源类型,对于DWS、DLI、MRS HBase、MRS Hive、RDS(MySQL)、RDS(PostgreSQL)和ORACLE类型的数据源,首先需要在管理中心创建数据连接。如需采集其他数据源(如OBS、CSS、GES等)元数据,无需在管理中心创建数据连接。 采集Hudi元数据前,需要先在Hudi表开启“同步hive表配置”,然后才能通过采集MRS Hive元数据的方式采集Hudi表的元数据。
  • 关联质量规则并查看质量作业 在DataArts Studio数据架构控制台,单击左侧导航栏的“关系建模”进入关系建模页面。 在页面选择所需要的模型单击进入,在右侧的列表中将显示该模型下面所有的表。您也可以展开主题结构,选中一个对象,右侧的列表中将显示该对象下所有的表。 在列表中,找到所需要的表,单击表名称进入表详情页面。 图1 关系模型列表 在详情页的表字段区域,选中需要关联质量规则的的字段,然后单击“关联质量规则”按钮。 图2 关联质量规则 异常数据输出配置:勾选此项,并勾选生成异常数据,表示异常数据将按照配置的参数存储到规定的库中。 在弹出的“关联质量规则”对话框中,单击“添加规则”。 图3 添加质量规则页 此时,系统将弹出“添加规则”对话框,在规则列表中将显示DataArts Studio数据质量中默认的质量规则,选中所需要的规则,然后单击“确定”。如果列表中的规则不满足业务需求,您也可以创建自定义规则,单击“新建规则”可以跳转到DataArts Studio数据质量页面,请参考新建规则模板新建规则。 图4 添加规则 添加规则完成后,将返回“关联质量规则”对话框,在“规则名称”列表中,选中一条规则,然后设置告警条件,设置完所有规则的告警条件后单击“确定”。 在“告警条件”输入框中,请输入告警条件表达式,在质量作业运行时,系统将计算出告警条件表达式的结果,并根据表达式的结果是否为真来判断是否触发告警。如果表达式的结果为真则触发质量告警,结果为假则不触发质量告警。 告警条件表达式由告警参数和逻辑运算符组成。 每个规则的告警参数会在“告警参数”中以按钮形式列出。单击这些按钮,在“告警条件”中将按告警参数的排列顺序显示为${1}、${2}、${3}等变量名称,以此类推,变量名即代表告警参数。也就是说,在设置“告警条件”时,使用变量${1}代表第一个告警参数,${2}代表第二个告警参数,以此类推。 图5 设置告警条件 (可选)如需要将质量作业中不符合设定规则的异常数据存储在异常表中,可以打开“异常数据输出配置”开关。 图6 异常数据输出开关 单击开关,并打开“生成异常数据”按钮,表示异常数据将按照配置的参数存储到规定的库中。 图7 异常数据输出配置 各参数具体含义如下: 数据库或Schema:表示存储异常数据的数据库或Schema。 表前缀:表示存储异常数据的表的前缀。 表后缀:表示存储异常数据的表的后缀。 配置完成后单击保存配置。 (可选)质量规则的检查范围默认是全表,如需要精确定位分区查询数据,请填写where条件。 图8 where条件开关 查看关联质量规则的结果,如果显示成功,单击“确定”。如果显示失败,请查看失败原因,等问题处理后,再重新关联质量规则。 图9 关联结果 返回关系模型列表页面,找到已关联质量规则的表,在“同步状态”列中,鼠标移至创建质量作业的图标上,单击“查看”进入质量作业页面查看已添加的质量规则。 图10 质量作业同步状态 进入质量作业的“规则配置”页面,可以查看刚才添加的质量规则。 图11 质量规则 此外,在建表时已关联的数据标准,在表发布后也会在上图中生成相应的质量规则,您可以在质量作业中进行查看。 字段关联的数据标准生成的质量规则,示例如下: 图12 字段关联的质量规则 字段关联了数据标准,数据标准关联的码表生成的质量规则,示例如下: 图13 码表的质量规则
  • 操作步骤 在DataArts Studio控制台首页,选择实例,单击“进入控制台”,选择对应工作空间的“数据质量”模块,进入数据质量页面。 图1 选择数据质量 创建规则模板。 单击左侧导航“规则模板”,默认展示系统自定义的规则。数据质量的规则包含6个维度,分别是:完整性、唯一性、及时性、有效性、准确性、一致性。 可选:单击“新建”,可自定义创建规则。 本例使用系统自定义的规则即可。 创建质量作业。 单击左侧导航“质量作业”。 单击“新建”,配置质量作业的基本信息,如下图所示。 单击“下一步”,进入规则配置页面。您需要单击规则卡片中的,然后配置规则信息,如下图所示。 单击“下一步”,配置告警信息,如下图所示。 单击“下一步”,配置订阅信息,如下图所示。 单击“下一步”,配置调度信息,如下图所示。 单击“提交”,完成质量作业的创建。 在质量作业表中,单击操作列的“运行”,跳转到运维管理模块。 待质量作业运行成功后,单击左侧导航菜单的“质量报告” 默认展示技术报告,如下图所示。 图2 技术报告 单击“业务报告”页签,查看业务报告,如下图所示。 图3 业务报告
  • API概览 本章节介绍了目前DLI所提供的API列表。 表1 DLI API列表 类型 说明 权限相关API 包括队列赋权、查看队列的使用者、数据赋权、查看数据库的使用者、查看表的使用者、查看表的用户权限和查看赋权对象使用者权限信息。 全局变量相关API 包括创建全局变量、删除全局变量、修改全局变量和查询所有全局变量。 增强型跨源连接相关API 包括创建增强型跨源连接、删除增强型跨源连接、查询增强型跨源连接列表、查询增强型跨源连接、绑定队列、解绑队列、修改主机信息和查询增强型跨源授权信息。 跨源认证相关API 包括创建跨源认证、获取跨源认证列表、更新跨源认证、删除跨源认证API。 弹性资源池相关API 包括创建弹性资源池、查询所有弹性资源池、删除弹性资源池、修改弹性资源池信息等。 队列相关API(推荐) 包括创建队列、删除队列、查询所有队列、修改队列网段、重启/扩容/缩容队列和查询队列详情、创建指定地址连通性测试请求、查询指定地址连通性请求、创建队列定时扩缩容计划、查询队列定时扩缩容计划、批量删除队列定时扩缩容计划、单个删除队列定时扩缩容计划、修改队列定时扩缩容计划。 SQL作业相关API 包括导入数据、导出数据、提交SQL作业、取消作业、查询所有作业、预览作业结果、查询作业状态、查询作业详细信息、检查SQL语法和导出查询结果。 SQL模板相关API 包括保存SQL模板、创建作业模板等模板相关API。 Flink作业相关API 包括OBS授权给DLI服务、新建SQL作业、更新SQL作业、新建Flink自定义作业、更新Flink自定义作业、批量运行作业、查询作业列表、查询作业详情、查询作业执行计划、查询作业监控信息、批量停止作业、删除作业、批量删除作业、导出Flink作业、导入Flink作业、生成Flink SQL作业的静态流图、创建IEF消息通道、边缘Flink作业状态上报、边缘Flink作业Action回调、IEF系统事件上报。 Flink作业模板相关API 包括新建模板、更新模板、删除模板和查询模板列表。 Spark作业相关API 包括创建批处理作业、取消批处理作业、查询批处理作业列表、查询批处理作业详情、查询批处理作业状态和查询批处理作业日志。 Spark作业模板相关API 包括保存SQL模板、创建作业模板等模板相关API。
  • 操作场景 安装完操作系统后的临时云服务器还需要进行相关配置,并安装云平台提供的Guest OS driver,才能保证后续创建的云服务器正常使用。 Guest OS driver包括VMTools驱动和PV driver,在前面步骤中已为云服务器安装VMTools驱动,因此本节只需要安装PV driver即可。 该任务指导用户完成Windows云服务器的相关配置与驱动安装,从而创建为Windows系统盘镜像。
  • 操作步骤 配置云服务器。 检查网卡属性是否为DHCP。如果云服务器网络配置为静态IP地址,请参考“设置网卡属性为DHCP”修改为DHCP方式。 对于需要使用Windows远程桌面连接方式进行访问的云服务器,需要开启远程桌面连接功能,请参考“开启远程桌面连接功能”。 安装PV driver,请参考“安装PV driver”。 安装完以后需要清除系统日志,请参考“清除系统日志”。 安装并配置Cloudbase-Init,保证镜像创建的新云服务器可以使用控制台的“用户数据注入”功能注入初始化自定义信息(例如为云服务器设置登录密码)。请参考“安装并配置Cloudbase-Init工具”。 (可选)配置增值功能。 开启网卡多队列,请参考“如何设置镜像的网卡多队列属性?”。 配置IPv6地址,请参考“如何开启云服务器动态获取IPv6(试用)?”。 关机云服务器,使上述配置生效。 创建Windows系统盘镜像。 具体操作请参考通过云服务器创建Windows系统盘镜像。
  • 操作场景 数据盘镜像是只包含用户业务数据的镜像,您可以通过创建数据盘镜像将云服务器数据盘上的业务数据保存。数据盘镜像可用来创建新的云硬盘,从而实现用户业务数据的迁移。 如果您有以下使用场景,建议通过数据盘镜像来实现。 云服务器上的业务数据迁移到另一个账号。 实现方式:A账号将数据盘制作成数据盘镜像,共享给B账号,然后B账号使用数据盘镜像创建新的数据盘。 云服务器上的业务数据迁移到另一个区域。 实现方式:将A区域的数据盘制作成数据盘镜像,跨区域复制到B区域,然后在B区域使用数据盘镜像创建新的数据盘。 场景示例:通过制作数据盘镜像,将快到期云服务器的磁盘数据导出。
  • 后续操作 数据盘镜像创建成功后,您可能需要创建新的数据盘并挂载到目标云服务器上,有两种方法供您参考: 在创建好的数据盘镜像所在行,单击“申请数据盘”创建新的数据盘(支持批量创建),然后挂载至目标云服务器。 在创建弹性云服务器向导页面,为云服务器添加数据盘时,单击“用数据盘镜像创建磁盘”,然后选择一个数据盘镜像。 此方式下,每个数据盘镜像只可以用来创建一个数据盘,不能重复选择。例如,为云服务器添加了一块数据盘,这个数据盘来源是数据盘镜像data_disk_image,如果想再添加一块数据盘,则不能使用数据盘镜像data_disk_image来创建。 图3 添加数据盘
共100000条