华为云用户手册

  • 新建衍生指标并发布 在 DataArts Studio 控制台首页,选择对应工作空间的“数据架构”模块,进入数据架构页面。 在数据架构控制台,单击左侧导航树中的“技术指标”,选择“衍生指标”页签进入衍生指标页面。 在左侧的主题目录中选中一个主题,然后单击“新建”按钮,开始新建衍生指标。 在新建衍生指标页面,根据页面提示配置参数。 图1 新建衍生指标 表1 新建衍生指标参数说明 参数名称 说明 *数据表 在下拉列表中选择即可。 *所属主题 显示所属的主题信息。 *原子指标 选择原子指标。 统计维度 在下拉列表中,选择一个或多个维度。此处只能选择原子指标所关联的事实表中的属性。 时间限定 在下拉框中选择所需要的时间限定,并选择关联的字段。系统预置了一些时间限定,如果不能满足需求,请参考新建时间限定进行创建。 通用限定 如需设置通用限定,可以单击“新建”按钮新建一个或多个通用限定。只能包含中文、英文字母、数字和下划线,且只能以中文或英文字母开头。 如图2所示,在新建通用限定区域,通过以下配置新建一个通用限定。 限定名称:指定通用限定的名称。 添加条件(且):单击该下拉框,选择“且条件”或者“或条件”可以添加相应的条件,然后在字段下拉框中选择一个字段,并根据页面提示设置条件。您可以添加多个条件。 当选择的字段是字符串类型(例如string、varchar)时,并且条件选择“属于”或“不属于”时,支持从码表中导入数据。单击“从码表导入”,在码表配置页面,选择“码表”和“码表字段”,单击“确定”。导入的码表值数量不能超过50。 在某个条件后面单击删除按钮,可以将该条件删除。 添加公式(且):单击该下拉框,选择“且公式”或者“或公式”可以添加相应的公式,然后再单击“编辑公式”按钮,在弹出对话框中选择所需要的“函数”和“字段”,并设置“表达式”。 在某个公式后面单击删除按钮,可以将该公式删除。 图2 通用限定 告警配置 由衍生指标和表达式组成,表达式由告警参数和逻辑运算符组成。在指标运行时,系统将计算出告警条件表达式的结果,并根据表达式的结果是否为真来判断是否触发告警。如果表达式的结果为真则触发质量告警,结果为假则不触发质量告警。 参数配置完成后,单击“预览”,可以查看该衍生指标的相关信息,并定义名称、编码、数据类型、告警条件和描述等信息。 表2 预览衍生指标参数说明 参数名称 说明 名称 系统已根据原子指标、统计维度、时间限定等参数自动生成,您也可以自定义。 编码 系统已根据原子指标、统计维度、时间限定等参数编码自动生成,您也可以自定义。 数据类型 系统已根据原子指标的数据类型自动生成,您也可以自定义。 告警条件 告警条件表达式由告警参数和逻辑运算符组成。在指标运行时,系统将计算出告警条件表达式的结果,并根据表达式的结果是否为真来判断是否触发告警。如果表达式的结果为真则触发质量告警,结果为假则不触发质量告警。 描述 描述信息。支持的长度为0~600个字符。 在页面下方,单击“试运行”按钮,然后在弹出框中单击“试运行”按钮,测试所设置的衍生指标是否可以正常运行。 如果试运行失败,请根据错误提示定位错误原因,将配置修改正确后,再单击“试运行”按钮进行重试。 如果试运行成功,单击“发布”,提交发布审核。 在弹出框中,选择审核人,单击“确认提交”,提交审核。 如果当前用户已被添加为审核人,则可以勾选“自助审批”,单击“确认提交”后,状态显示为“已发布”。 选择审核人时,系统支持选择多个审核人,全部审批通过后,状态才会显示为已发布。如果有任意一个人驳回,则状态为已驳回。 (可选)参考步骤2~步骤8,完成其他衍生指标的发布。 等待审核人员审核。 审核通过后,衍生指标创建完成。 衍生指标创建完成后,单击指标名称,可以查看该衍生指标的详情、关系图、发布历史和审核历史。 通过关系图,可以查看该衍生指标的血缘图。 通过发布历史,可以查看该衍生指标的发布历史和不同发布版本之间的差异对比。
  • 背景信息 原子指标来源于事实表和维度表: 原子指标是为了构建应用统计分析所需的衍生指标而定义的数据组件,因此可以基于事实逻辑表明细数据表来创建,也可以基于维度表来创建。 衍生指标无来源表,它归属于每个组合成它的原始的原子指标的来源表。 原子指标与衍生指标的关系: 原子指标的计算逻辑修改生效后,会直接更新应用于相关的衍生指标。 原子指标删除英文名,需要校验下游是否有衍生指标使用,如果有,则无法删除。 目前原子指标在被下游使用的情况下,支持变更英文名。 原子指标的更改会影响下游衍生指标。
  • 函数说明 新建原子指标时,需要按照函数设定表达式。以聚合函数的部分函数为例,函数说明如表3所示: 表3 聚合函数说明 函数名 表达式 函数说明 avg(col) avg() 求平均值。 corr(col1, col2) corr() 返回两列数值的相关系数。 count(*) count() 返回记录条数。 covar_pop(col1, col2) covar_pop() 返回两列数值协方差。 covar_samp(col1, col2) covar_samp() 返回两列数值样本协方差。 max(col) max() 返回最大值。 min(col) min() 返回最小值。 stddev_pop(col) stddev_pop() 返回指定列的偏差。 stddev_samp(col) stddev_samp() 返回指定列的样本偏差。 sum(col) sum() 求和。 var_samp(col) var_samp() 返回指定列的样本方差。 如果想要查询更多函数的功能及说明,可以在新建原子指标页面的基本信息中的设定表达式项,单击对应函数,在页面右侧的函数说明框中会显示对应的函数说明。 图4 函数说明
  • 编辑复合指标 在数据架构控制台,单击左侧导航树的“技术指标”,然后选择“复合指标”页签,进入复合指标页面。 图2 复合指标 在复合指标列表中,找到需要编辑的复合指标,单击“编辑”,进入“编辑复合指标”页面。 根据实际需要修改配置参数。参数说明请参见表1。 在页面下方,单击“试运行”按钮,然后在弹出框中单击“试运行”按钮,测试所设置的复合指标是否可以正常运行。 如果试运行失败,请根据错误提示定位错误原因,将配置修改正确后,再单击“试运行”按钮进行重试。 如果试运行成功,单击“发布”,提交发布审核。 在弹出框中单击“确认提交”,提交审核。
  • 逆向数据库导入表到维度模型中 在DataArts Studio控制台首页,选择对应工作空间的“数据架构”模块,进入数据架构页面。 在DataArts Studio数据架构控制台,单击左侧导航栏的“维度建模”进入维度建模页面。 打开需要逆向数据库导入的维度或表的页签,从下拉列表选择需要逆向数据库的维度或表,然后单击列表上方的“逆向数据库”。 图1 选中对象 在“逆向数据库”对话框中配置参数。 表1 逆向数据库 参数名称 说明 所属主题 单击“选择主题”按钮选择所属的主题信息。 数据连接类型 选择维度建模的逆向数据库。 数据连接 选择所需要的数据连接。 如需从其他数据源逆向数据库到关系模型中,需要先在DataArts Studio管理中心创建一个数据连接,以便连接数据源。创建数据连接的操作,请参见配置DataArts Studio数据连接参数。 数据库 选择数据库。 队列 仅限 DLI 连接类型,需选择DLI队列。 Schema DWS或POSTGRESQL的模式。该参数在DWS或POSTGRESQL连接类型有效。 更新已有表 在导入时,只有创建或更新操作,不会删除已有的表。 不更新:如果表已存在,将直接跳过,不更新。 更新:如果表已存在,更新已有的表信息。如果表处于“已发布”状态,表更新后,您需要重新发布表,才能使更新后的表生效。 名称来源 逆向后表名称/字段名称的来源,可以是描述或者是相应英文名,如表/字段未指定描述则固定使用英文名。 来自描述 来自英文名称 说明: 进行逆向数据库配置时,如果逆向后表中文名称/字段中文名称的来源选择“来自描述”,则用中文名在进行描述时,表的字段注释不能重复。 数据表 选择“全部”时,将数据库中的所有的表都导入。 选择“部分”时,请选择需要导入的表。 单击“确定”开始执行逆向数据库操作。等待操作执行完成,即可在“上次逆向”中查看结果或者执行重新逆向操作。
  • 数据架构总览 在DataArts Studio控制台首页,选择对应工作空间的“数据架构”模块,进入数据架构页面,查看“总览”,如图1所示。 图1 数据架构总览 我的待办 显示“我的申请”和“待我审核”的数量。 单击每一项上面统计数量将分别跳转到“我的申请”和“待我审核”页面。 资产概览 显示数据架构中所有对象的总量。 单击每个对象名称后的统计数量将跳转到该对象的管理页面。 快捷入口 显示数据架构 数据治理 方法的整体流程。单击流程下的具体操作,可以跳转到对应的界面。 数据架构流程 显示数据架构流程以及与DataArts Studio其他模块间的交互关系。关于数据架构流程的详细描述,请参见数据架构使用流程。 将鼠标移至流程图上的对象名称之上,页面上将显示对象的描述信息。 对于DataArts Studio已支持的对象,单击对象名称,可跳转至该对象的管理页面。
  • 模型设计方法概述 根据业务需求抽取信息的主要特征,模拟和抽象出一个能够反映业务信息(对象)之间关联关系的模型,即数据模型。数据模型也是可视化的展现企业内部信息如何组织的蓝图。数据模型应满足三方面要求:能比较真实地模拟业务(场景);容易被人所理解;便于在IT系统中实现。 在DataArts Studio数据架构的数据建模过程中,用到的建模方法主要有以下三种: 关系建模 关系建模是用实体关系(Entity Relationship,ER)模型描述企业业务,它在范式理论上符合3NF,出发点是整合数据,将各个系统中的数据以整个企业角度按主题进行相似性组合和合并,并进行一致性处理,为数据分析决策服务,但是并不能直接用于分析决策。 用户在关系建模过程中,可以从数仓规划去设计物理模型。 物理模型:是在逻辑数据模型的基础上,考虑各种具体的技术实现因素,进行数据库体系结构设计,真正实现数据在数据库中的存放,例如:所选的 数据仓库 是DWS或 MRS _Hive。 维度建模 维度建模是从分析决策的需求出发构建模型,它主要是为分析需求服务,因此它重点关注用户如何更快速地完成需求分析,同时具有较好的大规模复杂查询的响应性能。 多维模型是由数字型度量值组成的一张事实表连接到一组包含描述属性的多张维度表,事实表与维度表通过主/外键实现关联。典型的维度模型有星形模型,以及在一些特殊场景下使用的雪花模型。 数据集市 又称为DM(Data Mart),DM面向展现层,数据有多级汇总,由一个特定的分析对象及其相关的统计指标组成的,向用户提供了以统计粒度为主题的所有统计数据。 在DataArts Studio数据架构中,维度建模是以维度建模理论为基础,抽象出事实和维度,构建维度模型和事实模型,同时对报表需求进行抽象整理出相关指标体系,通过数据集市构建出汇总模型。
  • Apache server日志 日志样例: [Mon Jan 08 20:43:51.854334 2018] [mpm_event:notice] [pid 36465:tid 140557517657856] AH00489: Apache/2.4.12 (Unix) OpenSSL/1.0.1t configured -- resuming normal operations 正则表达式为: ^\[(.*)\] \[(.*)\] \[(.*)\] (.*).* 解析结果如下: 表5 Apache server日志解析结果 列号 样值 1 Mon Jan 08 20:43:51.854334 2018 2 mpm_event:notice 3 pid 36465:tid 140557517657856 4 AH00489: Apache/2.4.12 (Unix) OpenSSL/1.0.1t configured -- resuming normal operations
  • Log4J日志 日志样例: 2018-01-11 08:50:59,001 INFO [org.apache.sqoop.core.SqoopConfiguration.configureClassLoader(SqoopConfiguration.java:251)] Adding jars to current classloader from property: org.apache.sqoop.classpath.extra 正则表达式为: ^(\d.*\d) (\w*) \[(.*)\] (\w.*).* 解析出的结果如下: 表1 Log4J日志解析结果 列号 样值 1 2018-01-11 08:50:59,001 2 INFO 3 org.apache.sqoop.core.SqoopConfiguration.configureClassLoader(SqoopConfiguration.java:251) 4 Adding jars to current classloader from property: org.apache.sqoop.classpath.extra
  • Log4J审计日志 日志样例: 2018-01-11 08:51:06,156 INFO [org.apache.sqoop.audit.FileAuditLogger.logAuditEvent(FileAuditLogger.java:61)] user=sqoop.anonymous.user ip=189.xxx.xxx.75 op=show obj=version objId=x 正则表达式为: ^(\d.*\d) (\w*) \[(.*)\] user=(\w.*) ip=(\w.*) op=(\w.*) obj=(\w.*) objId=(.*).* 解析结果如下: 表2 Log4J审计日志解析结果 列号 样值 1 2018-01-11 08:51:06,156 2 INFO 3 org.apache.sqoop.audit.FileAuditLogger.logAuditEvent(FileAuditLogger.java:61) 4 sqoop.anonymous.user 5 189.xxx.xxx.75 6 show 7 version 8 x
  • Django日志 日志样例: [08/Jan/2018 20:59:07 ] settings INFO Welcome to Hue 3.9.0 正则表达式为: ^\[(.*)\] (\w*) (\w*) (.*).* 解析结果如下: 表4 Django日志解析结果 列号 样值 1 08/Jan/2018 20:59:07 2 settings 3 INFO 4 Welcome to Hue 3.9.0
  • Tomcat日志 日志样例: 11-Jan-2018 09:00:06.907 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux 正则表达式为: ^(\d.*\d) (\w*) \[(.*)\] ([\w\.]*) (\w.*).* 解析结果如下: 表3 Tomcat日志解析结果 列号 样值 1 11-Jan-2018 09:00:06.907 2 INFO 3 main 4 org.apache.catalina.startup.VersionLoggerListener.log 5 OS Name:Linux
  • 指定文件名迁移 从FTP/SFTP/OBS导出文件时, CDM 支持指定文件名迁移,用户可以单次迁移多个指定的文件(最多50个),导出的多个文件只能写到目的端的同一个目录。 在创建表/文件迁移作业时,如果源端数据源为FTP/SFTP/OBS,CDM源端的作业参数“源目录或文件”支持输入多个文件名(最多50个),文件名之间默认使用“|”分隔,您也可以自定义文件分隔符,从而实现文件列表迁移。 迁移文件或对象时支持文件级增量迁移(通过配置跳过重复文件实现),但不支持断点续传。 例如要迁移3个文件,第2个文件迁移到一半时由于网络原因失败,再次启动迁移任务时,会跳过第1个文件,从第2个文件开始重新传,但不能从第2个文件失败的位置重新传。 文件迁移时,单个任务支持千万数量的文件,如果待迁移目录下文件过多,建议拆分到不同目录并创建多个任务。 父主题: 关键操作指导
  • MD5校验文件一致性 CDM数据迁移以抽取-写入模式进行,CDM首先从源端抽取数据,然后将数据写入到目的端。在迁移文件到OBS时,迁移模式如图1所示。 图1 迁移文件到OBS 在这个过程中,CDM支持使用MD5检验文件一致性。 抽取时 该功能支持源端为OBS、HDFS、FTP、SFTP、HTTP。可校验CDM抽取的文件,是否与源文件一致。 该功能由源端作业参数“MD5文件名后缀”控制(“文件格式”为“二进制格式”时生效),配置为源端文件系统中的MD5文件名后缀。 当源端数据文件同一目录下有对应后缀的保存md5值的文件,例如build.sh和build.sh.md5在同一目录下。若配置了“MD5文件名后缀”,则只迁移有MD5值的文件至目的端,没有MD5值或者MD5不匹配的数据文件将迁移失败,MD5文件自身不被迁移。 若未配置“MD5文件名后缀”,则迁移所有文件。 写入时 该功能目前只支持目的端为OBS。可校验写入OBS的文件,是否与CDM抽取的文件一致。 该功能由目的端作业参数“校验MD5值”控制,读取文件后写入OBS时,通过HTTP Header将MD5值提供给OBS做写入校验,并将校验结果写入OBS桶(该桶可以不是存储迁移文件的桶)。如果源端没有MD5文件则不校验。 迁移文件到文件系统时,目前只支持校验CDM抽取的文件是否与源文件一致(即只校验抽取的数据)。 迁移文件到OBS时,支持抽取和写入文件时都校验。 如果选择使用MD5校验,则无法使用KMS加密。 父主题: 关键操作指导
  • AES-256-GCM加密 目前只支持AES-256-GCM(NoPadding)。该加密算法在目的端为加密,在源端为解密,支持的源端与目的端数据源如下。 源端支持的数据源:HDFS(使用二进制格式传输时支持)。 目的端支持的数据源:HDFS(使用二进制格式传输时支持)。 下面分别以HDFS导出加密文件时解密、导入文件到HDFS时加密为例,介绍AES-256-GCM加解密的使用方法。 源端配置解密 创建从HDFS导出文件的CDM作业时,源端数据源选择HDFS、文件格式选择二进制格式后,在“源端作业配置”的“高级属性”中,配置如下参数。 加密方式:选择“AES-256-GCM”。 数据加密 密钥:这里的密钥必须与加密时配置的密钥一致,否则解密出来的数据会错误,且系统不会提示异常。 初始化向量:这里的初始化向量必须与加密时配置的初始化向量一致,否则解密出来的数据会错误,且系统不会提示异常。 这样CDM从HDFS导出加密过的文件时,写入目的端的文件便是解密后的明文文件。 目的端配置加密 创建CDM导入文件到HDFS的作业时,目的端数据源选择HDFS、文件格式选择二进制格式后,在“目的端作业配置”的“高级属性”中,配置如下参数。 加密方式:选择“AES-256-GCM”。 数据加密密钥:用户自定义密钥,密钥由长度64的十六进制数组成,不区分大小写但必须64位,例如“DD0AE00DFECD78BF051BCFDA25BD4E320DB0A7AC75A1F3FC3D3C56A457DCDC1B”。 初始化向量:用户自定义初始化向量,初始化向量由长度32的十六进制数组成,不区分大小写但必须32位,例如“5C91687BA886EDCD12ACBC3FF19A3C3F”。 这样在CDM导入文件到HDFS时,目的端HDFS上的文件便是经过AES-256-GCM算法加密后的文件。
  • KMS加密 源端解密不支持KMS。 CDM目前只支持导入文件到OBS时,目的端使用KMS加密,表/文件迁移和整库迁移都支持。在“目的端作业配置”的“高级属性”中配置。 KMS密钥需要先在数据加密服务创建,具体操作请参见《数据加密服务 用户指南》。 当启用KMS加密功能后,用户上传对象时,数据会加密成密文存储在OBS。用户从OBS下载加密对象时,存储的密文会先在OBS服务端解密为明文,再提供给用户。 如果选择使用KMS加密,则无法使用MD5校验一致性。 如果这里使用其它项目的KMS ID,则需要修改“项目ID”参数为KMS ID所属的项目ID;如果KMS ID与CDM在同一个项目下,“项目ID”参数保持默认即可。 使用KMS加密后,OBS上对象的加密状态不可以修改。 使用中的KMS密钥不可以删除,如果删除将导致加密对象不能下载。
  • 事务模式迁移 CDM的事务模式迁移,是指当CDM作业执行失败时,将数据回滚到作业开始之前的状态,自动清理目的表中的数据。 参数位置:创建表/文件迁移的作业时,如果目的端为关系型数据库,在目的端作业配置的高级属性中,可以通过“先导入阶段表”参数选择是否启用事务模式。 参数原理:如果启用,在作业执行时CDM会自动创建临时表,先将数据导入到该临时表,导入成功后再通过数据库的事务模式将数据迁移到目标表中;导入失败则将目的表回滚到作业开始之前的状态。 图1 事务模式迁移 如果“导入开始前”选择“清除部分数据”或“清除全部数据”,CDM的事务模式不会回滚已经删除的数据。 父主题: 关键操作指导
  • 操作步骤 登录CDM管理控制台。单击左侧导航上的“集群管理”,进入集群管理界面。 图1 集群列表 “创建来源”列仅通过DataArts Studio服务进入数据集成界面可以看到。 单击集群名称后,选择“标签”页签。 图2 修改集群配置 单击“添加/编辑标签”,通过添加、修改标签为CDM集群设置资源标识。 图3 添加标签 一个集群最多可添加10个标签。 标签键(key)的最大长度为36个字符,标签值(value)的最大长度为43个字符。 (可选)在标签列表中,单击标签操作列“删除”,删除CDM集群标签。 通过以下两种方式筛选出所配置标签的资源。 在标签管理服务中,选择资源搜索条件,单击“搜索”即可筛选出所配置标签的资源。 在集群列表中,单击标签搜索,筛选出所配置标签的资源。
  • 查看集群基本信息 登录CDM管理控制台。单击左侧导航上的“集群管理”,进入集群管理界面。 或参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。在DataArts Studio控制台首页,选择对应工作空间的“数据集成”模块,进入CDM首页。 图1 集群列表 “创建来源”列仅通过DataArts Studio服务进入数据集成界面可以看到。 单击集群名称,可查看集群的基本信息。 图2 CDM集群的配置信息
  • 操作场景 CDM集群已经创建成功后,您可以查看集群基本信息,并修改集群的配置。 查看集群基本信息: 集群信息:集群版本、创建时间、项目ID、实例ID和集群ID等。 节点配置:集群规格、CPU和内存配置等信息。 网络信息:网络配置。 支持修改集群的以下配置: 消息通知 :CDM的迁移作业(目前仅支持表/文件迁移的作业)失败时,或者EIP异常时,会发送短信或邮件通知用户。该功能产生的消息通知不会计入收费项。 用户隔离:控制其他用户是否能够查看、操作该集群中的迁移作业和连接。 开启该功能时,该集群中的迁移作业、连接会被隔离,华为账号下的其他 IAM 用户无法查看、操作该集群中的迁移作业和连接。 按组批量启动作业会运行组内所有作业。如果开启了用户隔离功能,即使华为账号下的其他IAM用户无法查看到组内作业,按组批量启动作业依然会将组内作业运行,因此在用户隔离场景不建议使用按组批量启动作业功能。 关闭该功能时,该集群中的迁移作业、连接信息可以用户共享,华为账号下的所有拥有相应权限的IAM用户可以查看、操作迁移作业和连接。 注意,用户隔离关闭后需要重启集群VM才能生效。 最大抽取并发数:限制作业运行的总抽取并发数,如果当前所有作业总并发数超出限制,超出部分将排队等待。 注意,最大抽取并发数取值范围为1-1000,建议根据集群规格进行配置,建议值详见最大抽取并发数。过高的并发数可能导致内存溢出,请谨慎修改。 此处的“最大抽取并发数”参数与作业配置管理处的“最大抽取并发数”参数同步,在任意一处修改即可生效。
  • 操作场景 CDM集群创建完成后,支持解绑或绑定EIP。EIP即弹性公网IP,由虚拟私有云(Virtual Private Cloud,简称VPC)负责其计费。 如果CDM需要访问本地数据源、Internet的数据源,或者跨VPC的云服务,则必须要为CDM集群绑定一个弹性IP,或者使用NAT网关让CDM集群与其他弹性云服务器共享弹性IP访问Internet,具体操作请见添加SNAT规则。 如果用户对本地数据源的访问通道做了SSL加密,则CDM无法通过弹性IP连接数据源。
  • 适用场景 在某项目搬迁场景下,当您需要补充以前时间段内的历史业务数据,需要查看历史数据的详细信息时,可以使用补数据特性。 补数据是指作业执行一个调度任务,在过去某一段时间里生成一系列的实例。用户可以通过补数据,修正历史中出现数据错误的作业实例,或者构建更多的作业记录以便调试程序等。 补数据作业除了支持SQL脚本,其他节点也支持。 如果SQL脚本的内容有变化,补数据作业运行的是最新版本的脚本。 使用补数据功能时,如SQL中变量是DATE,脚本中就写${DATE},在作业参数中会自动增加脚本参数DATE,脚本参数DATE的值支持使用EL表达式。如果是变量时间的话,需要使用DateUtil内嵌对象的表达式,平台会自动转换成历史日期。EL表达式用法可参考EL表达式。 补数据作业除了支持作业参数,脚本参数或者全局环境变量也支持。
  • 通过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节点参数 配置完成后提交子作业。
  • 场景说明 使用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节点输出结果值适用场景更广泛,但需将作业拆分为主作业和子作业。
  • 根据前一个节点的执行状态进行IF条件判断 场景说明 根据前一个CDM节点是否执行成功,决定执行哪一个IF条件分支。基于图1的样例,说明如何设置IF条件。 图1 作业样例 配置方法 登录DataArts Studio控制台,找到所需要的DataArts Studio实例,单击实例卡片上的“进入控制台”,进入概览页面。 选择“空间管理”页签,在工作空间列表中,找到所需要的工作空间,单击工作空间的“数据开发”,系统跳转至数据开发页面。 在“作业开发”页面,新建数据开发作业,然后分别选择CDM节点和两个Dummy节点,选中连线图标并拖动,编排图1所示的作业。 其中CDM节点的失败策略需要设置为“继续执行下一节点”。 图2 配置CDM节点的失败策略 右键单击连线,选择“设置条件”,在弹出的“编辑EL表达式”文本框中输入IF条件。 每一个条件分支都需要填写IF条件,IF条件为通过EL表达式语法填写三元表达式。当三元表达式结果为true的时候,才会执行连线后面的节点,否则后续节点将被跳过。 此Demo中使用的EL表达式为“#{Job.getNodeStatus("node_name")}”,这个表达式的作用为获取指定节点的执行状态,成功状态返回success,失败状态返回fail。本例使用中,IF条件表达式分别为: 上面的A分支IF条件表达式为: #{(Job.getNodeStatus("CDM")) == "success" ? "true" : "false"} 下面的B分支IF条件表达式为:#{(Job.getNodeStatus("CDM")) == "fail" ? "true" : "false"} 输入IF条件表达式后,配置IF条件匹配失败策略,可选择仅跳过相邻的下一个节点,或者跳过该IF分支后续所有节点。配置完成后单击确定,保存作业。 图3 配置失败策略 测试运行作业,并前往实例监控中查看执行结果。 待作业运行完成后,从实例监控中查看作业实例的运行结果,如图4所示。可以看到运行结果是符合预期的,当前CDM执行的结果为fail的时候,跳过A分支,执行B分支。 图4 作业运行结果
  • 通过EL表达式获取返回值 Rest Client算子可与EL表达式相配合,根据具体的场景选择不同的EL表达式来实现更丰富的用法。您可以参考本教程,根据您的实际业务需要,开发您自己的作业。EL表达式用法可参考EL表达式。 如图3所示,Rest Client调用了MRS服务查询集群列表的API,然后执行Kafka Client发送消息。 使用场景:Kafka Client发送字符串消息,消息内容为集群列表中第一个集群的cluster Id。 关键配置:在Kafka Client中使用如下EL表达式获取Rest API返回消息体中的特定字段:#{JSONUtil.toString(JSONUtil.path(Job.getNodeOutput("Rest_Client_4901"),"clusters[0].clusterId"))} 图3 Rest Client作业样例2
  • 通过“响应消息体解析为传递参数定义”获取返回值 如图1所示,第一个Rest Client调用了MRS服务查询集群列表的API,图2为API返回值的JSON消息体。 使用场景:需要获取集群列表中第一个集群的cluster Id,然后作为参数传递给后面的节点使用。 关键配置:在第一个Rest Client的“响应消息体解析为传递参数定义”配置中,配置clusterId=clusters[0].clusterId,后续的Rest Client节点就可以用${clusterId}的方式引用到集群列表中的第一个集群的cluster Id。 响应消息体解析为参数传递定义时,传递的参数名(例如clusterId)在该作业的所有节点参数中需要保持唯一性,避免和其他参数同名。 图1 Rest Clien作业样例1 图2 JSON消息体
  • 操作场景 当您确认不再使用当前集群后,可以删除当前CDM集群。 删除CDM集群后集群以及数据都销毁且无法恢复,请您谨慎操作! 删除集群前,请您确认如下注意事项: 待删除集群确认已不再使用。 待删除集群中所需的连接和作业数据已通过批量管理CDM作业中的导出作业功能进行备份。 对于购买DataArts Studio服务时系统赠送的CDM集群,非常不建议您进行删除操作。该集群删除后无法再次赠送,只能另外购买。 删除集群后,CDM集群不再按需计费或扣除套餐时长。如果您为删除的CDM集群购买了CDM折扣套餐或包年包月形式的DataArts Studio数据集成增量包,则请参考云服务退订章节进行套餐包退订。
  • 操作场景 DataArts Studio实例中已经包含一个仅用于测试、试用等非正式业务场景的CDM集群(试用版除外)。 如果该集群已经满足您的使用需求,则无需再购买批量数据迁移增量包。 如果您需要CDM集群用于满足业务需求,请通过按需计费方式购买批量数据迁移增量包,详情请参考按需计费方式购买数据集成集群。 如果您需要为购买的CDM集群匹配套餐包用于降低使用成本,请通过套餐包方式购买批量数据迁移增量包,详情请参考套餐包方式购买数据集成集群。 DataArts Studio实例赠送的CDM集群,由于规格限制,仅用于测试、试用等非正式业务场景。用于业务场景的CDM集群可以通过“批量数据迁移增量包”进行购买,且不建议同时作为数据连接Agent代理和运行数据迁移作业使用。
  • 前提条件 已申请VPC、子网和安全组。CDM集群连接云上其它服务时,需确保CDM集群与待连接的云服务在同一个VPC。如果CDM集群与其它云服务所属不同VPC,则CDM集群需要通过EIP连接云服务。 当CDM集群与其他云服务所在的区域、VPC、子网、安全组一致时,可保证CDM集群与其他云服务内网互通,无需专门打通网络。 当CDM集群与其他云服务所在的区域和VPC一致、但子网或安全组不一致时,需配置路由规则及安全组规则以打通网络。配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。 当CDM集群与其他云服务所在的区域一致、但VPC不一致时,可以通过对等连接打通网络。配置对等连接请参见如何配置对等连接章节。 注:如果配置了VPC对等连接,可能会出现对端VPC子网与CDM管理网重叠,从而无法访问对端VPC中数据源的情况。推荐使用公网做跨VPC数据迁移,或联系管理员在CDM后台为VPC对等连接添加特定路由。 当CDM集群与其他云服务所在的区域不一致时,则需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP、CDM云上安全组出方向放通云下数据源所在的主机、数据源所在的主机可以访问公网且防火墙规则已开放连接端口。 另外,如果创建了企业项目,则企业项目也会影响CDM集群与其他云服务的网络互通,只有企业项目一致的云服务才能打通网络。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全