华为云用户手册

  • 通过“响应消息体解析为传递参数定义”获取返回值 如图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消息体
  • 通过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
  • 操作场景 当您确认不再使用当前集群后,可以删除当前 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集群与其他云服务的网络互通,只有企业项目一致的云服务才能打通网络。
  • 启动作业调度 元数据采集完成后,系统基于最新的作业调度实例产生相关的数据血缘关系。 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择对应工作空间的“数据开发”模块,进入数据开发页面。 在数据开发控制台,单击左侧导航栏中的作业开发按钮,进入作业开发页面后,打开已完成血缘配置的作业。 在数据开发中,当作业进行“执行调度”时,系统开始解析血缘关系。 测试运行不会解析血缘。 图1 作业调度 待调度作业成功运行完成后,等待约1分钟左右,数据血缘关系即可生成成功。
  • 自动血缘解析 自动血缘解析无需进行手动配置,当数据开发作业中包含如表1所示节点及场景时,系统支持自动解析血缘关系。 解析SQL节点的血缘时,支持多SQL解析及列级血缘解析,单条SQL语句不支持SQL中含有分号的场景。 表1 支持自动血缘解析的作业节点及场景 作业节点 支持场景 DLI SQL 支持解析DLI中表与表之间数据插入产生的血缘。 支持通过建表语句产生的OBS文件到DLI表之间的血缘。 DWS SQL 支持Insert into等DML操作产生的DWS表之间的血缘。 MRS Hive SQL 支持Insert into/overwrite等DML操作产生的MRS表之间的血缘。 MRS Spark SQL 支持Insert into/overwrite等DML操作产生的MRS表之间的血缘。 CDM Job 支持MRS Hive、DLI、DWS、RDS、OBS以及 CSS 之间表文件迁移所产生的血缘。 ETL Job 支持DLI、OBS、MySQL以及DWS之间的ETL任务产生的血缘。
  • 什么是数据血缘 大数据时代,数据爆发性增长,海量的、各种类型的数据在快速产生。这些庞大复杂的数据信息,通过联姻融合、转换变换、流转流通,又生成新的数据,汇聚成数据的海洋。 数据的产生、加工融合、流转流通,到最终消亡,数据之间自然会形成一种关系。我们借鉴人类社会中类似的一种关系来表达数据之间的这种关系,称之为数据的血缘关系。与人类社会中的血缘关系不同,数据的血缘关系还包含了一些特有的特征: 归属性:一般来说,特定的数据归属特定的组织或者个人,数据具有归属性。 多源性:同一个数据可以有多个来源(多个父亲)。一个数据可以是多个数据经过加工而生成的,而且这种加工过程可以是多个。 可追溯性:数据的血缘关系,体现了数据的生命周期,体现了数据从产生到消亡的整个过程,具备可追溯性。 层次性:数据的血缘关系是有层次的。对数据的分类、归纳、总结等对数据进行的描述信息又形成了新的数据,不同程度的描述信息形成了数据的层次。 DataArts Studio生成的血缘关系图如图1所示,为数据表对象,为作业节点对象,通过对象和箭头的编排表示血缘信息。从血缘关系图中可以看到,wk_02表数据是由wk_01表数据经过hive_1作业节点加工而生成的,wk_02表数据经由hive_2作业节点加工又分别生成了wk_03、wk_04和wk_05的表数据。 图1 数据血缘关系示例
  • DataArts Studio数据血缘实现方案 数据血缘的产生: DataArts Studio数据血缘解析方案包含自动分析血缘和手动配置血缘两种方式。一般推荐使用自动血缘解析的方式,无需手动配置即可生成血缘关系,在不支持自动血缘解析的场景下,再手动配置血缘关系。 自动血缘解析,是由系统解析数据开发作业中的数据处理和数据迁移类型节点后自动产生的,无需进行手动配置。支持自动血缘解析的节点类型和场景请参见自动血缘解析。 手动配置血缘,是在数据开发作业节点中,自定义血缘关系的输入表和输出表。注意手动配置血缘时,此节点的自动血缘解析将不生效。支持手动配置血缘的节点类型请参见手动配置血缘。 数据血缘的展示: 首先在数据目录组件完成元数据采集任务,当数据开发作业满足自动血缘解析要求或已手动配置血缘,然后成功完成作业调度后,则可以在数据目录模块可视化查看数据血缘关系。
  • 业务日期参数 业务日期是指在调度时间内,任务预期调度运行时间的前一天(即昨天)。例如,调度日期为2023年1月1日,那么业务日期就是2022年12月31日。该参数是通过yyyy、yy、mm和dd自定义组合而生成的时间参数,其格式可自定义。例如,${yyyy}、${yyyymm}、${yyyymmdd}和${yyyy-mm-dd}等。 yyyy:表示4位的年份,取值为业务日期的年份。 yy:表示2位的年份,取值为业务日期的年份后两位。 mm:表示月份,取值为业务日期的月份。 dd:表示天,取值为业务日期的天。 取N年前、N月前、N天前的时间数据请参考表1,参数只能精确到年月日,不支持小时、分钟、秒的写法。 表1 业务日期参数获取说明 业务日期场景 获取方法 前/后N年 ${yyyy±N} 前/后N月 ${yyyymm±N} 前/后N周 ${yyyymmdd±7*N} 前/后N天 ${yyyymmdd±N} 前/后N年(yy格式) ${yy±N}
  • 计划时间参数 计划时间是指在调度时间内,任务预期调度运行的时间点(即当天)。该参数是通过yyyy、yy、mm、dd、hh24、mi和ss自定义组合而生成的时间参数,其格式可自定义。例如,$[yyyymmdd]、$[yyyy-mm-dd]、$[hh24miss]、$[hh24:mi:ss]和$[yyyymmddhh24miss]等。 yyyy:表示4位的年份,取值为计划时间的年份。 yy:表示2位的年份,取值为计划时间的年份后两位。 mm:表示月份,取值为计划时间的月份。 dd:表示天,取值为计划时间的天。 hh:表示12小时制,取值为计划时间的小时。 hh24:表示24小时制,取值为计划时间的小时。 mi:表示分钟,取值为计划时间的分钟。 ss:表示秒,取值为计划时间的秒。 取N小时前、N分钟前的时间数据请参考表2,该参数不支持通过$[yyyy-N]、$[mm-N]等直接获取多少年前、多少月前的时间数据。 表2 计划时间参数获取说明 计划时间场景 获取方法 后N年 $[add_months(yyyymmdd,12*N)] 前N年 $[add_months(yyyymmdd,-12*N)] 后N月 $[add_months(yyyymmdd,N)] 前N月 $[add_months(yyyymmdd,-N)] 前/后N周 $[yyyymmdd±7*N] 前/后N天 $[yyyymmdd±N] 前/后N小时 获取该时间数据包含如下两种方式: $[hh24miss±N/24] $[自定义时间格式±N/24]。 例如,取前一个小时的不同时间格式: 取月:$[mm-1/24]。 取年:$[yyyy-1/24]。 取年月:$[yyyymm-1/24]。 取年月日:$[yyyymmdd-1/24]。 取前一天且前一小时:$[yyyymmdd-1-1/24] 前/后N分钟 获取该时间数据包含如下四种方式: $[hh24miss±N/24/60] $[yyyymmddhh24miss±N/24/60] $[mi±N/24/60] $[自定义时间格式±N/24/60] 例如,取计划时间15分钟前的不同时间格式: 取年:$[yyyy-15/24/60] 取年月:$[yyyymm-15/24/60] 取年月日:$[yyyymmdd-15/24/60] 取小时:$[hh24-15/24/60] 取分钟:$[mi-15/24/60] 调度参数替换值在实例生成时已经确定,所以调度参数的替换值不会随着实例实际运行时间的改变而改变。 当调度参数取小时、分钟时,参数替换值由实例的计划时间决定,即由节点调度配置的计划调度时间决定。举例如下: 如果当前节点为日调度节点,并且设置计划调度时间为01:00,则小时的参数取值为01。 如果当前节点为小时调度节点,并且设置计划调度时间为00:00~23:59,每小时调度一次,则:第一个小时实例计划时间为0点,小时的参数取值为00,第二个小时实例计划时间为1点,小时的参数取值为01,以此类推。
  • 参考:配置委托权限 将账号的操作权限委托给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 Administrator: 数据治理 中心服务的所有执行权限。 KMS Administrator:数据加密服务加密密钥的管理员权限。 DLI Flink Job、DLI SQL、DLI Spark DLI Service Admin 数据湖探索 的所有执行权限。 DWS SQL、Shell、RDS SQL(通过代理方式连接数据源) DAYU Administrator KMS Administrator Administrator:数据治理中心服务的所有执行权限。 KMS Administrator:数据加密服务加密密钥的管理员权限。 CS S 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
  • 参考:创建委托 登录 IAM 服务控制台。 选择“委托”,单击“创建委托”。 设置“委托名称”。例如:DGC_agency。 在创建委托页面,委托类型选择“云服务”,云服务选择“ 数据湖 治理中心DGC”,将操作权限委托给DataArts Studio,让DataArts Studio以您的身份使用其他云服务,代替您进行一些资源运维工作。 图3 创建委托 单击“下一步”,进入授权页面。 在授权页面中搜索“Tenant Administrator”策略,勾选“Tenant Administrator”策略并单击“下一步”。 因Tenant Administrator策略具有除 统一身份认证 服务IAM外,其他所有服务的所有执行权限。所以给委托服务DataArts Studio配置Tenant Administrator,可访问周边所有服务。 若您想达到对权限较小化的安全管控要求,Tenant Administrator可不配置,仅配置OBS OperateAccess权限(因作业执行过程中,需要往OBS写执行日志信息,因此需要添加 OBS OperateAccess权限)。然后再根据作业中的节点类型,配置不同的委托权限。例如某作业仅包含Import GES节点,可配置GES Administrator权限和OBS OperateAccess权限即可。详细方案请参考参考:配置委托权限。 图4 配置权限 单击“确定”完成委托创建。
  • 调度身份的分类 调度身份分为委托和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账户,适用于单个作业级别。配置执行用户请参考配置执行用户。 配置执行用户调度功能当前需申请白名单后才能使用。如需使用该特性,请联系客服或技术支持人员。
  • 方法 表1 方法说明 方法 说明 示例 boolean isExistOBSPath(String obsPath) 判断OBS文件或目录(目录请以“/”结尾)是否存在,存在返回true,不存在返回false。 判断OBS目录是否存在,目录请以“/”结尾,EL表达式如下: #{OBSUtil.isExistOBSPath("obs://test/jobs/")} 判断OBS文件是否存在,EL表达式如下: #{OBSUtil.isExistOBSPath("obs://test/jobs/job.log")}
  • 数据架构使用流程 DataArts Studio数据架构的流程如下: 图1 数据架构流程 准备工作: 添加审核人:在数据架构中,业务流程中的步骤都需要经过审批,因此,需要先添加审核人。只有工作空间管理员角色的用户才具有添加审核人的权限。 管理配置中心:数据架构中提供了丰富的自定义选项,统一通过配置中心提供,您需要根据自己的业务需要进行自定义配置。 数据调研:基于现有业务数据、行业现状进行数据调查、需求梳理、业务调研,输出企业业务流程以及数据主题划分。 主题设计:通过分层架构表达对数据的分类和定义,帮助厘清数据资产,明确业务领域和业务对象的关联关系。 主题域分组:基于业务场景对主题域进行分组。 主题域:互不重叠数据的高层面的数据分类,用于管理其下一级的业务对象。 业务对象:指企业运作和管理中不可缺少的重要人、事、物信息。 流程设计:针对流程的一个结构化的整体框架,描述了企业流程的分类、层级以及边界、范围、输入/输出关系等,反映了企业的商业模式及业务特点。 数仓规划:对数仓分层以及数仓建模进行统一管理。支持用户自定义数仓分层。 标准设计:新建码表&数据标准。 新建码表:通常只包括一系列允许的值和附加文本描述,与数据标准关联用于生成值域校验质量监控。 新建数据标准:用于描述公司层面需共同遵守的属性层数据含义和业务规则。其描述了公司层面对某个数据的共同理解,这些理解一旦确定下来,就应作为企业层面的标准在企业内被共同遵守。 模型设计:应用逻辑模型、关系建模、维度建模和数据集市的方法,进行分层建模。 逻辑模型:用于创建逻辑模型以及逻辑模型的修改和删除,转化为物理模型。同时,可以对逻辑实体进行创建及发布,进行逆向数据库等操作。 关系建模:基于关系建模,新建SDI层和DWI层两个模型。 SDI:Source Data Integration,又称贴源数据层。SDI是源系统数据的简单落地。 DWI:Data Warehouse Integration,又称数据整合层。DWI整合多个源系统数据,对源系统进来的数据进行整合、清洗,并基于三范式进行关系建模。 维度建模:基于维度建模,新建DWR层模型并发布维度和事实表。 DWR:Data Warehouse Report,又称数据报告层。DWR基于多维模型,和DWI层数据粒度保持一致。 维度:维度是用于观察和分析业务数据的视角,支撑对数据进行汇聚、钻取、切片分析,用于SQL中的GROUP BY条件。 事实表:归属于某个业务过程的事实逻辑表,可以丰富具体业务过程所对应事务的详细信息。 数据集市:新建DM层并发布汇总表。 DM (Data Mart):又称数据集市。DM面向展现层,数据有多级汇总。 汇总表:汇总表是由一个特定的分析对象(如会员)及其相关的统计指标组成的。组成一个汇总逻辑表的统计指标都具有相同的统计粒度(如会员),汇总逻辑表面向用户提供了以统计粒度(如会员)为主题的所有统计数据(如会员主题集市)。 指标设计:新建业务指标和技术指标,技术指标又分为原子指标、衍生指标和复合指标。 业务指标:指标一般由指标名称和指标数值两部分组成,指标名称及其涵义体现了指标质的规定性和量的规定性两个方面的特点,指标数值反映了指标在具体时间、地点、条件下的数量表现。 业务指标用于指导技术指标,而技术指标是对业务指标的具体实现。 原子指标:原子指标中的度量和属性来源于多维模型中的维度表和事实表,与多维模型所属的业务对象保持一致,与多维模型中的最细数据粒度保持一致。 原子指标中仅含有唯一度量,所含其它所有与该度量、该业务对象相关的属性,旨在用于支撑指标的敏捷自助消费。 衍生指标:是原子指标通过添加限定、维度卷积而成,限定、维度均来源于原子指标关联表的属性。 复合指标:由一个或多个衍生指标叠加计算而成,其中的维度、限定均继承于衍生指标。 注意,不能脱离衍生指标、维度和限定的范围,去产生新的维度和限定。 父主题: 数据架构
  • 导入逻辑实体 导入EXCEL 单击逻辑实体列表上方“导入”中的“导入EXCE”。在“导入表”对话框中,选择“导入配置”页签,单击“下载关系建模导入模板”。 图12 导入EXCEL 下载关系建模导入模板后,编辑完成后保存至本地。 选择是否更新已有数据。 如果系统中已有的编码和模板中的编码相同,系统则认为是数据重复。 不更新:当数据重复时,不会替换系统中原有的数据。 更新:当数据重复时 系统中的原有数据为草稿状态,则会覆盖生成新的草稿数据。 系统中的原有数据为发布状态,则会生成下展数据。 单击“添加文件”,选择编辑完成的导入模板。 单击“上传文件”,上传完成后,自动跳转到“上次导入”页签,查看已导入的数据。 单击“关闭”退出该页面。 导入LDM 导入LDM模型时,请先选择一个主题。不选择则无法导入。 当前支持导入逻辑模型。 请准备好需要导入的.ldm格式的逻辑模型。该逻辑模型是从第三方系统Power Designer导出来的。 导入的LDM模型支持的版本:16.x 单击逻辑实体列表上方“导入”中的“导入LDM”。在“导入表”对话框中,选择“导入配置”页签。 图13 导入LDM 选择是否更新已有数据。 不更新:当数据重复时,不会替换系统中原有的数据。 更新:当数据重复时 系统中的原有数据为草稿状态,则会覆盖生成新的草稿数据。 系统中的原有数据为发布状态,则会生成下展数据。 单击“添加文件”,选择提前准备好的.ldm格式的逻辑模型。 单击“上传文件”,上传完成后,自动跳转到“上次导入”页签,查看已导入的数据。 单击“关闭”退出该页面。
  • 通过逆向数据库导入逻辑实体 通过逆向数据库,您可以从其他数据源中将一个或多个已创建的数据库表导入到逻辑实体目录中,使其变成逻辑实体。 在数据架构控制台,单击左侧导航树中的“逻辑模型”,进入逻辑模型页面,选择一个逻辑模型进入逻辑实体列表页面。 在逻辑实体列表上方,单击“逆向数据库”。 在“逆向数据库”对话框中,配置如下参数,然后单击“确定”。 表7 逆向数据库配置 参数名称 说明 *所属主题 在下拉列表中选择所属主题。 *数据连接类型 在下拉列表中将显示逆向数据库支持的数据连接类型,请选择所需要的数据连接类型。 *数据连接 选择数据连接。 如需从其他数据源逆向数据库到逻辑实体目录中,需要先在DataArts Studio管理中心创建一个数据连接,以便连接数据源。创建数据连接的操作,请参见配置DataArts Studio数据连接参数。 *数据库 选择数据库。 *Schema 下拉选择Schema。该参数仅DWS和POSTGRESQL模型的表有效。 队列 DLI队列。仅当“数据连接类型”选择“DLI”时,该参数有效。 更新已有表 如果从其他数据源逆向过来的表,在逻辑实体中已存在同名的表,选择是否更新已有的逻辑实体。 名称来源 逆向后表名称/字段名称的来源,可以是描述或者是相应英文名,如表/字段未指定描述则固定使用英文名。 来自描述 来自英文名称 *数据表 选择全部或部分需导入的数据表。 图10 逆向配置 逆向数据库的结果会在“上次逆向”页面中显示。如果逆向成功,单击“关闭”。如果逆向失败,您可以查看失败原因,问题解决后,选中失败的表,然后单击“重新逆向”进行重试。 图11 逆向结果
  • 逻辑模型转换为物理模型 完成逻辑模型的创建后,您可以将逻辑模型转换为物理模型,支持转换为已有的物理模型。 在DataArts Studio控制台首页,选择对应工作空间的“数据架构”模块,进入数据架构页面。 在数据架构控制台,单击左侧导航树中的“逻辑模型”。 在总览图中找到所需要的逻辑模型,将光标移动到该卡片上,单击该模型的转换按钮。逻辑模型只支持转换为关系建模的模型。 图8 逻辑模型转化为物理模型 在“转换为物理模型”对话框中,配置如下参数,然后单击“确定”。 图9 转换为物理模型 逻辑模型转换为物理模型时,系统会先校验是否有前缀。 表6 参数描述 参数名称 说明 *模型名称 逻辑模型所需转换的物理模型的名称。在下拉列表中选择一个已有的模型。 *更新已有表 当选择了模型名称后才显示该参数。 不更新 更新 如果选择更新已有表,则需要选择“物理表更新方式”。 不删除多余字段 删除多余字段 *数据连接类型 在下拉列表中选择数据连接类型。 数据连接 选择所需要的数据连接。同一个关系模型一般建议使用统一的数据连接。 如果您还未创建与数据源之间的数据连接,请前往DataArts Studio管理中心控制台进行创建,详情请参见配置DataArts Studio数据连接参数。 数据库 选择数据库。如果您还未创建数据库,可以前往DataArts Studio数据开发控制台进行创建,详情请参见新建数据库。 选择逻辑实体 全部:将所有的逻辑实体转换为物理表。 部分:将选择的部分逻辑实体转换为物理表。 队列 DLI队列。该参数仅DLI连接类型有效。 Schema DWS和POSTGRESQL的模式。该参数仅支持DWS和POSTGRESQL连接类型。 描述 描述信息。支持的长度为0~600个字符。
  • 属性 表1 属性说明 属性 类型 描述 示例 dataArray String Loop.dataArray表示For Each节点“数据集”中定义的二维数组。 一般定义格式为#{Loop.dataArray[0][0]}、#{Loop.dataArray[0][1]}等类似样式。其中[0][0]表示数组中第一行的第一个值,[0][1]表示第一行的第二个值,以此类推。 作为For Each节点的“子作业参数”取值,表示For Each循环中,始终取“数据集”中二维数组的第二行的第一个值。 #{Loop.dataArray[1][0]} current String For Each节点在处理数据集的时候,是一行一行进行处理的。Loop.current表示当前遍历到的For Each节点“数据集”中定义的二维数组的某一行,该数据行为一维数组。 一般定义格式为#{Loop.current[0]}、#{Loop.current[1]}或其他。其中[0]表示遍历到的当前行的第一个值,[1]表示遍历到的当前行的第二个值,以此类推。 作为For Each节点的“子作业参数”取值,表示For Each循环遍历中,取“数据集”中二维数组的当前遍历行的第二个值。 #{Loop.current[1]} offset Int For循环当前的偏移量,从0开始。 Loop.dataArray[Loop.offset] = Loop.current。 获取For Each循环当前的偏移量,即遍历次数,从0开始。 #{Loop.offset}
  • 建立主机数据连接 开发Python脚本前,我们需要建立一个到弹性 云服务器ECS 的连接。 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择对应工作空间的“管理中心”模块,进入管理中心页面。 在管理中心页面,单击“数据连接”,进入数据连接页面并单击“创建数据连接”。 参见表1配置相关参数,创建主机连接名称为“ecs”的数据连接,如图1所示。 表1 主机连接 参数 是否必选 说明 数据连接类型 是 主机连接固定选择为主机连接。 数据连接名称 是 数据连接的名称,只能包含字母、数字、下划线和中划线,且长度不超过100个字符。 标签 否 标识数据连接的属性。设置标签后,便于统一管理。 说明: 标签的名称,只能包含中文、英文字母、数字和下划线,不能以下划线开头,且长度不能超过100个字符。 适用组件 是 选择此连接适用的组件。勾选组件后,才能在相应组件内使用本连接。 基础与网络连通配置 主机地址 是 Linux操作系统主机的IP地址。 请参考查看云服务器详细信息获取。 绑定Agent 是 选择CDM集群,CDM集群提供Agent。 说明: CDM集群作为管理中心数据连接Agent时,单集群的并发活动线程最大为200。即当多个数据连接共用同一Agent时,通过这些数据连接提交SQL脚本、Shell脚本、Python脚本等任务的同时运行上限为200,超出的任务将排队等待。建议您按照业务量情况规划多个Agent分担压力。 在调度Shell、Python脚本时,Agent会访问ECS主机,如果Shell、Python脚本的调度频率很高,ECS主机会将Agent的内网IP加入黑名单。为了保障作业的正常调度,强烈建议您使用ECS主机的root用户将绑定Agent(即CDM集群)的内网IP加到/etc/hosts.allow文件里面。 CDM集群的内网IP获取方式请参见查看并修改CDM集群配置。 端口 是 主机的SSH端口号。 Linux操作系统主机的默认登录端口为22,如有修改可通过主机路径“/etc/ssh/sshd_config”文件中的port字段确认端口号。 KMS密钥 是 通过KMS加解密数据源认证信息,选择KMS中的任一默认密钥或自定义密钥即可。 说明: 第一次通过DataArts Studio或KPS使用KMS加密时,会自动生成默认密钥dlf/default或kps/default。关于默认密钥的更多信息,请参见什么是默认密钥。 数据源认证及其他功能配置 用户名 是 主机的登录用户名。 登录方式 是 选择主机的登录方式: 密钥对 密码 密钥对 是 “登录方式”为“密钥对”时,显示该配置项。 主机的登录方式为密钥对时,您需要获取并上传其私钥文件至OBS,在此处选择对应的OBS路径(OBS路径中不能存在中文字符)。 说明: 此处上传的私钥文件应和主机上配置的公钥是一个密钥对,详情请参见密钥对使用场景介绍。 密钥对密码 是 如果密钥对未设置密码,则不需要填写该配置项。 密码 是 “登录方式”为“密码”时,显示该配置项。 主机的登录方式为密码时,填写主机的登录密码。 主机连接描述 否 主机连接的描述信息。 图1 新建主机连接 关键参数说明: 主机地址:已开通ECS主机中开通的ECS主机的IP地址。 绑定Agent:已开通批量数据迁移增量包中开通的CDM集群。 单击“测试”,测试数据连接的连通性。如果无法连通,数据连接将无法创建。 测试通过后,单击“确定”,创建数据连接。
  • 在作业中引用Python脚本 创建一个作业。 选择Python节点,并配置节点属性。 选择已创建好的Python脚本,配置相关节点参数。在“参数”里面可以配置脚本参数,例如: 配置的参数是指执行Python语句时,向语句传递的参数,参数之间使用空格分隔,例如:Microsoft Oracle。此处的“参数”需要在Python语句中引用,否则配置无效。 图5 配置Python节点属性 单击“测试运行”,查看该作业的运行结果。 图6 查看作业运行结果 单击“保存”,作业配置信息创建完成。 单击“提交”,提交版本后对该作业进行调度。
  • 环境准备 已开通弹性云服务器,并创建ECS,ECS主机名为“ecs-dgc”。 本示例主机选择“CentOS 8.0 64bit with ARM(40GB)”的公共镜像,并且使用ECS自带的Python环境,您可登录主机后使用python命令确认服务器的Python环境。 已开通数据集成增量包,CDM集群名为“cdm-dlfpyhthon”,提供数据开发模块与ECS主机通信的代理。 请确保ECS主机与CDM集群网络互通,互通需满足如下条件: CDM集群与ECS主机同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或安全组不同,还需配置路由规则及安全组规则,配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。 CDM集群与ECS主机处于不同区域的情况下,需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP,数据源所在的主机可以访问公网且防火墙规则已开放连接端口。 此外,您还必须确保该ECS主机与CDM集群所属的企业项目必须相同,如果不同,需要修改工作空间的企业项目。
  • 数据准备 下载Flink作业资源包"wordcount.jar",下载地址:https://github.com/huaweicloudDocs/dgc/blob/master/WordCount.jar 下载的Flink作业资源包需要进行JAR包完整性校验。Windows操作系统下,打开本地命令提示符框,输入如下命令,在本地生成已下载JAR包的SHA256值,其中,“D:\wordcount.jar”为JAR包的本地存放路径和JAR包名,请根据实际情况修改。 certutil -hashfile D:\wordcount.jar SHA256 命令执行结果示例,如下所示: SHA256 的 D:\wordcount.jar 哈希: 0859965cb007c51f0d9ddaf7c964604eb27c39e2f1f56e082acb20c8eb05ccc4 CertUtil: -hashfile 命令成功完成。 对比所下载JAR包的SHA256值和下面JAR包的SHA256值。如果一致,则表示下载过程不存在篡改和丢包。 SHA256值:0859965cb007c51f0d9ddaf7c964604eb27c39e2f1f56e082acb20c8eb05ccc4 准备数据文件“in.txt”,内容为一段英文单词。
  • 操作步骤 将作业资源包和数据文件传入OBS桶中。 本例中,WordCount.jar文件上传路径为:lkj_test/WordCount.jar;word.txt 文件上传路径为:lkj_test/input/word.txt。 创建一个数据开发模块空作业,作业名称为“job_MRS_Flink”。 图1 新建作业 进入到作业开发页面,拖动“MRS Flink”节点到画布中并单击,配置节点的属性。 图2 配置MRS Flink节点属性 参数设置说明: --Flink作业名称 wordcount --MRS集群名称 选择一个MRS集群 --运行程序参数 -c org.apache.flink.streaming.examples.wordcount.WordCount --Flink作业资源包 wordcount --输入数据路径 obs://dlf-test/lkj_test/input/word.txt --输出数据路径 obs://dlf-test/lkj_test/output.txt 其中: obs://dlf-test/lkj_test/input/word.txt为wordcount.jar的传入参数路径,可以把需要统计的单词写到里面; obs://dlf-test/lkj_test/output.txt为输出参数文件的路径(如已存在output.txt文件,会报错)。 单击“测试运行”,执行该MRS Flink作业。 待测试完成,执行“提交”。 在“作业监控”界面,查看作业执行结果。 查看OBS桶中返回的记录(没设置返回可跳过)。
  • 案例二:通过MRS Spark Python作业实现打印输出"hello python" 前提条件: 开发者具有OBS相关路径的访问权限。 数据准备: 准备脚本文件"zt_test_sparkPython1.py",具体内容如下: from pyspark import SparkContext, SparkConf conf = SparkConf().setAppName("master"). setMaster("yarn") sc = SparkContext(conf=conf) print("hello python") sc.stop() 操作步骤: 将脚本文件传入OBS桶中。 创建一个数据开发模块空作业。 进入到作业开发页面,拖动“MRS Spark Python”节点到画布中并单击,配置节点的属性。 参数设置说明: --master yarn --deploy-mode cluster obs://obs-tongji/python/zt_test_sparkPython1.py 其中:zt_test_sparkPython1.py 为脚本所在路径 单击“测试运行”,执行该脚本作业。 待测试完成,执行“提交”。 在“作业监控”界面,查看作业执行结果。 图8 查看作业执行结果 日志验证。 运行成功后,登录MRS manager后在YARN上查看日志,发现有hello python的输出。 图9 查看YARN上日志
  • 开发DWS SQL作业 DWS SQL脚本开发完成后,我们为DWS SQL脚本构建一个周期执行的作业,使得该脚本能定期执行。 创建一个批处理作业,作业名称为“job_dws_sql”。 然后进入到作业开发页面,拖动DWS SQL节点到画布中并单击,配置节点的属性。 图2 配置DWS SQL节点属性 关键属性说明: SQL脚本:关联开发DWS SQL脚本中开发完成的DWS SQL脚本“dws_sql”。 数据连接:默认选择SQL脚本“dws_sql”中设置的数据连接,支持修改。 数据库:默认选择SQL脚本“dws_sql”中设置的数据库,支持修改。 脚本参数:通过EL表达式获取"yesterday"的值,EL表达式如下: #{Job.getYesterday("yyyy-MM-dd")} 节点名称:默认显示为SQL脚本“dws_sql”的名称,支持修改。 作业编排完成后,单击,测试运行作业。 如果运行成功,单击画布空白处,在右侧的“调度配置”页面,配置作业的调度策略。 图3 配置调度方式 说明: 2021/08/06至2021/08/31,每天2点执行一次作业。 单击“提交”,执行调度作业,实现作业每天自动运行。
  • 开发Hive SQL作业 Hive SQL脚本开发完成后,我们为Hive SQL脚本构建一个周期执行的作业,使得该脚本能定期执行。 创建一个数据开发模块空作业,作业名称为“job_hive_sql”。 图2 创建job_hive_sql作业 然后进入到作业开发页面,拖动MRS Hive SQL节点到画布中并单击,配置节点的属性。 图3 配置MRS Hive SQL节点属性 关键属性说明: 节点名称:默认显示为SQL脚本“hive_sql”的名称,支持修改。 SQL脚本:关联开发Hive SQL脚本中开发完成的Hive SQL脚本“hive_sql”。 数据连接:默认选择SQL脚本“hive_sql”中设置的数据连接,支持修改。 数据库:默认选择SQL脚本“hive_sql”中设置的数据库,支持修改。 作业编排完成后,单击,测试运行作业。 如果运行成功,单击画布空白处,在右侧的“调度配置”页面,配置作业的调度策略。 图4 配置调度方式 该作业调度时间在2021/01/01至2021/01/25,每天2点调度一次作业。 最后我们需要提交版本,执行调度作业,实现作业每天自动运行。
  • 场景说明 用户在使用DLI服务时,大部分时间会使用SQL对数据进行分析处理,有时候处理的逻辑特别复杂,无法通过SQL处理,那么可以通过Spark作业进行分析处理。本章节通过一个例子演示如何在数据开发模块中提交一个Spark作业。 操作流程如下: 创建DLI集群,通过DLI集群的物理资源来运行Spark作业。 获取Spark作业的演示JAR包,并在数据开发模块中关联到此JAR包。 创建数据开发模块作业,通过DLI Spark节点提交Spark作业。
  • 提交Spark作业 用户需要在数据开发模块中创建一个作业,通过作业的DLI Spark节点提交Spark作业。 创建一个数据开发模块空作业,作业名称为“job_DLI_Spark”。 图2 创建作业 然后进入作业开发页面,拖动DLI Spark节点到画布并单击,配置节点的属性。 图3 配置节点属性 关键属性说明: DLI队列:DLI中创建的DLI队列。 作业运行资源:DLI Spark节点运行时,限制最大可以使用的CPU、内存资源。 作业主类:DLI Spark节点的主类,本例的主类是“org.apache.spark.examples.SparkPi”。 Spark程序资源包:3中创建的资源。 作业编排完成后,单击,测试运行作业。 图4 作业日志(仅参考) 如果日志运行正常,保存作业并提交版本。
共100000条