华为云用户手册

  • 源端优化 MySQL抽取优化。 可通过在作业任务配置参数单击中“添加自定义属性”来新增MySQL同步参数。 图1 添加自定义属性 可使用的调优参数具体如下: 表1 全量阶段优化参数 参数名 类型 默认值 说明 scan.incremental.snapshot.backfill.skip boolean true 全量阶段是否跳过读取Binlog数据,默认为true。跳过读取Binlog数据可以有效降低内存使用。需要注意的是,跳过读取Binlog功能只提供at-least-once保证。 scan.incremental.snapshot.chunk.size int 50000 分片大小,决定了全量阶段单个分片最大数据的数据条数以及分片个数。分片大小越大,单个分片数据条数越多,分片个数越小。 当表的条数过多时,作业会划分较多的分片,从而占用过多的内存导致内存问题,请根据表的条数适当调整该值。 当scan.incremental.snapshot.backfill.skip为false时,实时处理集成作业会缓存单个分片的数据,此时分片越大,占用内存越多,引发内存溢出,在此场景下,可以考虑降低分片大小。 scan.snapshot.fetch.size int 1024 全量阶段抽取数据时,从Mysql侧单次请求抽取数据的最大条数,适当增加请求条数可以减少对Mysql的请求次数提升性能。 debezium.max.queue.size int 8192 数据缓存队列条数,默认为8192,当源表中单条数据过大时(如1MB),缓存过多数据会导致内存溢出,可以考虑减小该值。 debezium.max.queue.size.in.bytes int 0 数据缓存队列大小,默认为0,即表示缓存队列不考虑数据大小,只按照数据条数计算。在debezium.max.queue.size无法有效限制内存占用时,考虑显式设置该值来限制缓存数据的大小。 jdbc.properties.socketTimeout int 300000 全量阶段连接Mysql的socket超时时间,默认为5分钟。当Mysql负载较高,作业出现SocketTimeout异常时,考虑增大该值。 jdbc.properties.connectTimeout int 60000 全量阶段连接Mysql的连接超时时间,默认为1分钟。当Mysql负载较高,作业出现ConnectTimeout异常时,考虑增大该值。 表2 增量阶段优化参数 参数名 类型 默认值 说明 debezium.max.queue.size int 8192 数据缓存队列条数,默认为8192,当源表中单条数据过大时(如1MB),缓存过多数据会导致内存溢出,可以考虑减小该值。 debezium.max.queue.size.in.bytes int 0 数据缓存队列大小,默认为0,即表示缓存队列不考虑数据大小,只按照数据条数计算。在debezium.max.queue.size无法有效限制内存占用时,考虑显式设置该值来限制缓存数据的大小。
  • 作业调优 默认场景下,给定的1U4G规格可满足绝大部分使用场景,但Migration服务也提供修改JobManager和TaskManager规格的能力以应对极端情况。例如最常见的作业内存溢出,可以在实时集成作业的“任务配置”中添加自定义属性,根据实际情况调整JobManager和TaskManager的各类内存来适应同步场景。 图1 添加自定义属性 表1 作业任务参数一览表 参数名 参数类型 默认值 参数说明 jobmanager.memory.process.size int 3586MB jobmanager的处理内存,直接影响堆内存大小。 说明: 该配置会占用总体资源,影响新增其他作业,非必要不配置。 taskmanager.memory.process.size int 3686MB taskmanager的处理内存,直接影响堆内存大小。 说明: 该配置会占用总体资源,影响新增其他作业,非必要不配置。 taskmanager.memory.managed.fraction int 0.2 taskmanager管理内存占比。 taskmanager.memory.network.max int 128MB 默认不需要配置,分库分表场景下如果实例数和表数过多,建议根据实际情况增加网络内存。 taskmanager.memory.network.fraction int 0.1 默认不需要配置,分库分表场景下如果实例数和表数过多,建议根据实际情况增加网络内存。 checkpoint.interval int 60000 Flink作业生成checkpoint的间隔,单位为毫秒。数据量大的作业建议调大,需要给更长时间进行数据Flush,但会增加时延。 checkpoint.timeout.ms int 600000 Flink作业生成checkpoint的超时时间,单位为毫秒。
  • 源端抽取慢 检查源端负载是否已到达源端数据源上限。优先查看源端数据源的监控指标,查看CPU、内存、IO等参数是否处于高负载状态。 在排除源端负载的情况下,如果源端是MySQL/Oracle/SQLServer/PostgreSQL/ GaussDB 等的全量+增量作业且作业处于全量抽取阶段,或者Kafka/Hudi等数据源抽取速度慢,请优先尝试加大作业并发数,以提高作业的并发抽取速率。 MySQL/Oracle/SQLServer/PostgreSQL/GaussDB等关系型数据为保证事务有序,在增量阶段是单并发抽取,加大并发一般不会提升抽取性能。 如果第2步也无法有效提升性能,请参考对应链路性能调优文档尝试进行参数优化。 如果上述步骤仍然无法提升作业速度,请联系技术支持人员协助解决。
  • 目的端写入慢 检查目的端负载是否已达到目的端数据源上限。优先查看目的端数据源的监控指标,查看CPU、内存、IO等参数是否处于高负载状态。 在排除目的端负载的情况下,加大作业并发,以提高写入速度。 如果第2步也无法有效提升性能,请根据源端抽取慢排查源端的性能因素。 如果排除了源端问题的情况下,请参考对应链路性能调优文档尝试进行参数优化。 如果上述步骤仍然无法提升作业速度,请联系技术支持人员协助解决。
  • 操作步骤 暂停运行中的实时集成作业。 方式一: 登录 DataArts Studio 控制台实例,进行所用空间的数据开发界面,单击左侧导航栏的“作业监控”,进入“实时集成作业监控界面”,搜索对应的实时集成作业,单击右侧操作栏中的“暂停”按钮。 图1 暂停作业1 方式二: 登录DataArts Studio控制台实例,进行所用空间的数据开发的“作业开发”界面,搜索并双击进入对应的实时集成作业配置界面,单击作业导航栏中的“暂停”按钮。 图2 暂停作业2 修改任务配置。 根据实际需求,在实时集成作业配置界面中修改对应参数,随后保存提交作业。 恢复实时集成作业。 方式一:登录DataArts Studio控制台实例,进行所用空间的数据开发界面,单击左侧导航栏的“作业监控”,进入“实时集成作业监控界面”,搜索对应的实时集成作业,单击右侧操作栏中的“恢复”按钮。 图3 恢复作业1 方式二:登录DataArts Studio控制台实例,进行所用空间的数据开发的“作业开发”界面,搜索并双击进入对应的实时集成作业配置界面,单击作业导航栏中的“恢复”按钮。 图4 恢复作业2 动态加减表对于不同的启动模式有不同的操作效果,具体如下: 对于初始启动模式为“增量同步”的作业,暂停加表后恢复作业,新增的表将从暂停前的位点或用户重置的位点开始进行增量同步。 对于初始启动模式为“全量+增量”的作业,暂停加表后恢复作业,将对新增的表先进行全量同步,再从暂停前的位点开始进行增量同步。
  • 准备工作 查询打通网络过程中所涉及到对象的网段(包含数据源、中转VPC、migration资源组),为便于理解,本章节将举例为您进行介绍。 表1 资源网段规划 资源名称 说明 私网网段示例 数据源VPC 华为云数据源所属的VPC,各数据源VPC查看方式不同,具体方法请参考数据源官方文档。 192.168.0.0/24 migration资源组VPC Migration实时计算资源组所属VPC,由于migration资源组创建在用户账户下属的资源租户,使用资源租户的VPC网段,因此不占用用户账户的VPC网段。 查看方式: 登录DataArts Studio控制台,进入实例,单击“资源管理”进入资源管理页面,在“实时资源管理”中单击指定migration资源组的下拉框,查看该migration资源组的VPC网段。 图2 查询migration资源组网段 172.16.0.0/19
  • 准备工作 查询打通网络过程中所涉及到对象的网段(包含数据源、中转VPC、migration资源组),为便于理解,本章节将举例为您进行介绍。 表1 资源网段规划 资源名称 说明 私网网段示例 数据源公网IP 其他云数据源的公网IP,请用户根据实际情况自行获取。 14.x.x.x/32 弹性公网IP migration资源组不具有公网网段,只能通过公网NAT转换成固定的弹性公网IP以访问公网。若未开通弹性公网IP,请登录弹性公网IP控制台,单击“购买弹性公网IP”,参考通过VPC和EIP快速搭建可访问公网的网络进行配置。 100.x.x.x/32 中转VPC及其子网 用于连通数据源和migration资源组网络的中间桥梁,本方案中需要使用当前租户下的一个虚拟私有云。若未开通VPC请参考创建虚拟私有云进行配置。 VPC:10.186.0.0/19 子网:10.186.0.0/24 migration资源组VPC Migration实时计算资源组所属VPC,由于migration资源组创建在用户账户下属的资源租户,使用资源租户的VPC网段,因此不占用用户账户的VPC网段。 查看方式: 登录DataArts Studio控制台,进入实例,单击“资源管理”进入资源管理页面,在“实时资源管理”中单击指定migration资源组的下拉框,查看该migration资源组的VPC网段。 图2 查询migration资源组网段 172.16.0.0/19
  • 准备工作 查询打通网络过程中所涉及到对象的网段(包含数据源、中转VPC、migration资源组),为便于理解,本章节将举例为您进行介绍。 表1 资源网段规划 资源名称 说明 私网网段示例 数据源公网IP 本地IDC数据源的公网IP,请用户根据实际情况自行获取。 14.x.x.x/32 弹性公网IP migration资源组不具有公网网段,只能通过公网NAT转换成固定的弹性公网IP以访问公网。若未开通弹性公网IP,请登录弹性公网IP控制台,单击“购买弹性公网IP”,参考通过VPC和EIP快速搭建可访问公网的网络进行配置。 100.x.x.x/32 中转VPC及其子网 用于连通数据源和migration资源组网络的中间桥梁,本方案中需要使用当前租户下的一个虚拟私有云。若未开通VPC请参考创建虚拟私有云进行配置。 VPC:10.186.0.0/19 子网:10.186.0.0/24 migration资源组VPC Migration实时计算资源组所属VPC,由于migration资源组创建在用户账户下属的资源租户,使用资源租户的VPC网段,因此不占用用户账户的VPC网段。 查看方式: 登录DataArts Studio控制台,进入实例,单击“资源管理”进入资源管理页面,在“实时资源管理”中单击指定migration资源组的下拉框,查看该migration资源组的VPC网段。 图2 查询migration资源组网段 172.16.0.0/19
  • 使用前自检概览 当您在使用Migration服务创建实时同步任务前,需要预先检查是否做好了准备工作,以满足实时同步任务的环境要求。 表1 自检项 自检项 说明 需要执行的准备工作 华为云账号及权限准备 准备华为账号,创建用户并授权使用Migration。 说明: 所使用的DataArts Studio版本需要为初级版及以上。 若使用联邦账号,作业提交需配置委托,详情参考配置调度身份。 参考 注册华为账号 并开通华为云。 参考授权使用实时数据集成。 实时计算资源组准备 购买实时集成任务使用的计算资源,并关联到要使用的DataArts Studio工作空间。 参考购买数据集成资源组增量包。 参考实时集成资源组关联工作空间。 数据库准备 连接源和目标数据库以及对应连接账号权限准备。 说明: 建议创建单独用于Migration任务连接的数据库账号,避免因为账号修改导致的任务连接失败。 连接源和目标数据库的账号密码修改后,请尽快修改Migration任务中的连接信息,避免任务连接失败后的自动重试导致数据库账号被锁定,影响使用。 不同链路、数据库、权限要求不同,可参考以下链接,选择对应链路查看使用须知:使用教程。 连接准备 准备DataArts Studio管理中心数据连接。 说明: 数据连接配置中必须勾选数据集成选项。 数据连接中使用的Agent代理实际为 CDM 集群,所用集群需升级至较新版本(24.4.0B030版本以上),以满足功能特性需求,详情请联系客服或技术支持人员。 参考创建DataArts Studio数据连接。 网络准备 说明: 请确保Migration服务与目标库之间的RTT(Round-Trip Time)小于2毫秒,否则将会影响Migration任务的性能。 例如,目标库与Migration服务之间的物理距离较远(例如,部署在非中国大陆区域的数据库,通过VPN接入到部署在中国大陆区域的Migration),导致RTT远高于2毫秒,从而导致Migration产生延迟。 数据库部署在本地IDC。 参考数据库部署在本地IDC进行网络准备。 数据库部署在其他云。 参考数据库部署在其他云进行网络准备。 数据库部署在华为云。 参考数据库部署在华为云进行网络准备。 父主题: 数据集成(实时作业)
  • 约束与限制 已购买并配置DataArts Studio实例,并创建了可供使用的工作空间。 已创建 IAM 用户并授权使用DataArts Studio权限,详情请参见创建IAM用户并授予DataArts Studio权限。 当前IAM用户已加入拥有DataArts Studio的系统角色(如“DAYU Administrator”或“DAYU User”)的用户组,详情请参见创建IAM用户并授予DataArts Studio权限。 当前IAM用户已配置DataArts Studio工作空间的角色成员,且该空间角色成员需要拥有数据开发、管理中心服务的类管理员或开发者权限,用于查看、创建与操作数据连接、数据集成任务,角色的权限说明请参见权限列表。
  • 操作步骤 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择实例,单击“进入控制台”。 单击“资源管理”,进入资源管理页面。 在“实时资源管理”页签中,找到指定的数据集成资源组,单击右侧操作栏中的“关联工作空间”。 图1 关联工作空间入口 在弹出框中,搜索需要使用的DataArts Studio工作空间,单击“关联”按钮,即可在对应工作空间中选到该数据集成资源组。 一个数据集成资源组可以关联到多个DataArts Studio工作空间。 图2 关联工作空间
  • GBASE连接参数说明 连接GBASE连接时,相关参数如表1所示。 表1 GBASE连接参数 参数名 说明 取值样例 名称 连接的名称,根据连接的数据源类型,用户可自定义便于记忆、区分的连接名。 adb_link 连接器 默认为关系数据库,不可更改。 - 数据库服务器 配置为要连接的数据库的IP地址或 域名 ,多个值以;分隔。 192.168.0.1;192.168.0.2 端口 配置为要连接的数据库的端口。 3306 数据库名称 配置为要连接的数据库名称。 dbname 用户名 待连接数据库的用户。 数据库用户名。新建分库连接时,此配置对数据源列表中所有未配置用户名密码的后端连接生效;编辑分库连接时,如需修改已存在的后端连接,请在数据源列表中单独指定用户名密码。 cdm 密码 数据库密码。 - 使用Agent Agent功能待下线,无需配置。 GBASE为GBASE8A时显示该参数。 - Agent Agent功能待下线,无需配置。 GBASE为GBASE8A时显示该参数。 - 引用符号 可选参数,数据库包围标识符。对某些数据库意味着大小写敏感,如不需用请置空。 " 驱动版本 不同类型的关系数据库,需要适配不同的驱动,更多详情请参见如何获取驱动。 GBASE为GBASE8A时显示该参数。 - 单次请求行数 可选参数,单击“显示高级属性”后显示。 指定每次请求获取的行数,根据数据源端和作业数据规模的大小配置该参数。如果配置过大或过小,可能影响作业的时长。 10000 单次提交行数 可选参数,单击“显示高级属性”后显示。 指定每次批量提交的行数,根据数据目的端和作业数据规模的大小配置该参数。如果配置过大或过小,可能影响作业的时长。 1000 连接属性 自定义连接属性。可选参数,单击“添加”可增加多个指定数据源的JDBC连接器的属性,参考对应数据库的JDBC连接器说明文档进行配置。 常见配置举例如下: socketTimeout:配置JDBC连接超时时间,单位为毫秒。 mysql.bool.type.transform:配置mysql读取时,是否将tinyint(1)解析成boolean类型,默认为true。 - 父主题: 配置连接参数
  • 环境变量 环境变量中支持定义变量和常量,环境变量的作用范围为当前工作空间。 变量是指不同的空间下取值不同,需要重新配置值,比如“工作空间名称”变量,这个值在不同的空间下配置不一样,导出导入后需要重新进行配置。 常量是指在不同的空间下都是一样的,导入的时候,不需要重新配置值。 图1 环境变量 具体应用如下: 在环境变量中已新增一个变量,“参数名”为sdqw,“参数值”为wqewqewqe。 打开一个已创建好的作业,从左侧节点库中拖拽一个“Create OBS”节点。 在节点属性页签中配置属性。 图2 Create OBS 单击“保存”后,选择“前往监控”页面监控作业的运行情况。
  • 场景描述 在配置作业调度时,可以选择每个月的最后一天执行。如果您需要配置作业的调度时间为每月最后一天,请参考下面两种方法。 表1 配置每月最后一天进行调度 配置方法 优势 如何配置 调度周期配置为天,通过条件表达式进行判断是否为每月最后一天 可以灵活适用多种场景。只需要编写条件表达式就可以灵活调度作业去运行。例如,每月最后一天,每月七号等。 方法1 调度周期配置为月,勾选每月最后一天 通过配置调度周期来执行任务调度。不用编写开发语句,通过勾选需要调度的时间去执行任务。 方法2
  • 新建企业模式工作空间 如果您之前未使用过简单模式、无需继承业务数据,则可以直接新建企业模式工作空间。 创建工作空间 使用具有DAYU Administrator、Tenant Administrator权限的账号进入DataArts Studio控制台。 单击控制台的“空间管理”页签,进入工作空间页面。 单击“创建工作空间”,在空间信息页面请根据页面提示配置参数,参数说明如表1所示,配置完成后,单击“确定”完成工作空间的创建。 图6 空间信息 表1 新建空间参数说明 参数名 说明 空间名称 空间名称,只能包含字母、数字、下划线、中划线、中文字符,且长度不超过32个字符。在当前的DataArts Studio实例中,工作空间名称必须唯一。 空间描述 空间的描述信息。 空间模式 选择工作空间为简单模式还是企业模式。新建企业模式工作空间时,此处需配置为企业模式。 企业项目 DataArts Studio实例默认工作空间关联的企业项目。企业项目管理是一种按企业项目管理云资源的方式,具体请参见《企业管理用户指南》。 如果已经创建了企业项目,这里才可以选择。当DataArts Studio实例需连接云上服务(如DWS、 MRS 、RDS等),还必须确保DataArts Studio工作空间的企业项目与该云服务实例的企业项目相同。 一个企业项目下只能购买一个DataArts Studio实例。 需要与其他云服务互通时,需要确保与其他云服务的企业项目一致。 说明: 未开通企业项目时,则每个IAM项目只允许创建1个DataArts Studio实例。 作业日志OBS路径 用于指定DataArts Studio数据开发作业的日志存储的OBS桶。工作空间成员如需使用DataArts Studio数据开发,必须具备“作业日志OBS桶”的读、写权限,否则,在使用过程中,系统将无法正常读、写数据开发的作业日志。 单击“选择OBS路径”按钮,您可以选择一个已创建的OBS桶和对象,系统将基于工作空间全局配置作业日志OBS桶。 如果不配置该参数,DataArts Studio数据开发的作业日志默认存储在以“dlf-log-{projectId}”命名的OBS桶中,{projectId}即项目ID。 说明: 数据开发作业运行完以后,运行结果日志会存储在OBS桶路径下面,便于查看运行历史记录,文件格式为xxxxx.log的文件就是作业运行日志,xxxxx表示作业id。已经运行完的SQL结果,删除历史记录后,不会影响业务。 DLI 脏数据OBS路径 用于指定DataArts Studio数据开发中DLI SQL执行过程中的脏数据存储的OBS桶。工作空间成员如需使用DataArts Studio数据开发执行DLI SQL,必须具备“DLI脏数据OBS桶”的读、写权限,否则,在使用过程中,系统将无法正常读、写DLI SQL执行过程中的脏数据。 单击“选择OBS路径”按钮,您可以选择一个已创建的OBS桶和对象,系统将基于工作空间全局配置DLI脏数据OBS桶。 如果不配置该参数,DataArts Studio数据开发的DLI SQL脏数据默认存储在以“dlf-log-{projectId}”命名的OBS桶中。 标签 通过为资源添加标签,可以对资源进行自定义标记,实现资源的分类。 说明: 如您的账号归属某个组织,且该组织已经设定DataArts Studio服务的相关标签策略,则需按照标签策略规则添加标签。标签如果不符合标签策略的规则,则可能会导致实例创建失败,请联系组织管理员了解标签策略详情。 当拥有多个工作空间时,您可以按使用者、维护者或用途等各类维度为各工作空间添加标签,然后在工作空间列表页面,可以通过标签搜索、识别不同类型的工作空间。 标签由标签键和标签值组成。在添加标签时,标签键和标签值可以选择在标签管理服务(简称TMS)中创建的预定义标签,也可以直接输入自定义的标签。然后单击输入框右侧的“添加”,即可成功添加一条标签。 说明: 预定义标签需要预先在标签管理服务中创建好,然后才能进行选择。您可以通过单击“查看预定义标签”进入标签管理服务的“预定义标签”页面,然后单击“创建标签”来创建新的预定义标签,具体请参见《标签管理服务用户指南》中的“创建预定义标签”章节。 另外,工作空间最多支持添加20个标签,标签的键名不能重复,一个“标签键”只能添加一个对应“标签值”。 创建后操作 创建后需要管理员手工新建数据连接、配置环境隔离,并按照组织分工在工作空间处定义管理员、开发者、部署者、运维者等角色。 新建数据连接:请参考创建DataArts Studio数据连接。 配置环境隔离:请参考配置DataArts Studio企业模式环境隔离。 为其他用户定义工作空间角色:请参见添加工作空间成员和角色章节添加工作空间成员和角色。 另外,新建企业模式工作空间,还需要您在数据开发中配置空间级别的公共委托或公共IAM账号。配置委托的操作详情可参见配置调度身份。 图7 配置工作空间委托
  • 简单模式升级企业模式 对于简单模式的工作空间,DAYU Administrator、Tenant Administrator可以直接将其升级为企业模式。 升级前操作 如果您需要升级工作空间模式,需要在数据开发中配置空间级别的公共委托或公共IAM账号,避免升级失败。 配置委托的操作详情可参见配置调度身份。 图4 配置工作空间委托 升级操作 登录DataArts Studio控制台。 找到所需要的DataArts Studio实例,在DataArts Studio实例上单击“进入控制台”。然后,选择“空间管理”页签。 在“空间管理”页面,找到需要升级模式的工作空间,单击其所在行的“编辑”,此时显示“空间信息”页面。 在“空间信息”页面,单击“空间模式”后的“升级”按钮,弹出确认界面后,单击“确认升级”您就可以将该工作空间升级为企业模式。 图5 升级企业模式 升级后操作 升级后需要管理员手工修改数据连接、配置环境隔离,并按照组织分工在工作空间处定义管理员、开发者、部署者、运维者等角色。 修改数据连接:请参考创建DataArts Studio数据连接。 配置环境隔离:请参考配置DataArts Studio企业模式环境隔离。 为其他用户定义工作空间角色:请参见添加工作空间成员和角色章节添加工作空间成员和角色。
  • 前提条件 创建工作空间模式前,您需要先了解以下内容: 已了解简单模式与企业模式工作空间的区别,包括不同工作空间的开发流程等差异,详情请参见简单模式与企业模式介绍。 已配置空间级的身份调度,包含公共委托和公共IAM账号,详情请参见配置公共委托和配置公共IAM账号。 已准备好两套相互隔离的 数据湖 引擎,用于隔离开发和生产环境。 配置两套数据湖服务,进行开发与生产环境隔离。 对于集群化的数据源(例如MRS、DWS、RDS、MySQL、Oracle、DIS、E CS 等),DataArts Studio通过管理中心的创建数据连接区分开发环境和生产环境的数据湖服务,在开发和生产流程中自动切换对应的数据湖。因此您需要准备两套数据湖服务,且两套数据湖服务的版本、规格、组件、区域、VPC、子网以及相关配置等信息,均应保持一致,详细操作请参见创建DataArts Studio数据连接。 创建数据连接时,通过不同的集群来进行开发与生产环境的隔离,如图1所示。 图1 创建数据连接时选择不同集群 配置DLI环境隔离。 配置企业模式环境隔离,包含DLI队列配置和DB配置。 对于Serverless服务(例如DLI),DataArts Studio通过管理中心的环境隔离来配置生产环境和开发环境数据湖服务的对应关系,在开发和生产流程中自动切换对应的数据湖。因此您需要在Serverless数据湖服务中准备两套队列、两套数据库资源,建议通过名称后缀进行区分,详细操作请参见配置DataArts Studio企业模式环境隔离。 配置DB,在同一个数据湖服务下配置两套数据库,进行开发与生产环境隔离。 对于DWS、MRS Hive和MRS Spark这三种数据源,如果在创建数据连接时选择同一个集群,如图2所示,则需要配置数据源资源映射的DB数据库映射关系进行开发生产环境隔离,如图3所示。详细操作请参见DB配置。 图2 创建数据连接时选择同一个集群 图3 DB配置 数据准备与同步 数据湖服务创建完成后,您需要按照项目规划(例如数据开发需要操作的库表等),分别在开发和生产环境的数据湖服务中,新建数据库、数据库模式(仅DWS需要)、数据表等。 对于集群化的数据源(例如MRS、DWS、RDS、MySQL、Oracle、DIS、ECS),使用两套集群资源,两套环境中的数据库、数据库模式(仅DWS需要)和数据表必须保持同名。 对于Serverless服务(例如DLI),两套队列和两套数据库建议通过名称和后缀(开发环境添加后缀“_dev”,生产环境无后缀)进行关联与区分,数据表必须保持同名。 对于DWS、MRS Hive和MRS Spark数据源,如果使用一套相同的集群资源,通过两个数据库(开发环境添加后缀“_dev”,生产环境无后缀)进行开发生产环境隔离,两套环境中数据库模式(仅DWS需要)和数据表必须保持同名。 数据库、数据库模式(仅DWS需要)、数据表等新建完成后,如果涉及原始数据表等,您还需要将两套数据湖服务之间的数据进行同步: 数据湖中已有数据:通过CDM或DRS等数据迁移服务,在数据湖间批量同步数据。 数据源待迁移数据:通过对等的CDM或DRS等数据迁移服务作业进行同步,保证生产环境和开发环境的数据湖服务数据一致。
  • DB配置 在DataArts Studio控制台首页,选择对应工作空间的“管理中心”模块,进入管理中心页面。 在管理中心页面,单击“数据源资源映射配置”,进入数据源资源映射配置页面。 单击“DB配置”下的“添加”,然后分别配置开发环境数据库名和生产环境数据库名,完成后单击“保存”。通过和可以进行编辑和删除操作。 数据库名需配置为已创建完成的数据库名。建议在创建数据库时,开发环境数据库名和生产环境数据库名保持一致,开发环境数据库名带上“_dev”后缀,以与生产环境数据库名进行区分。 对于DWS、MRS Hive和MRS Spark这三种数据源,如果在创建数据连接时选择同一个集群,则需要配置数据源资源映射的DB数据库映射关系进行开发生产环境隔离。 图4 DB配置
  • (可选)创建DLI环境隔离 仅Serverless服务(当前即DLI)需要配置环境隔离。 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择对应工作空间的“管理中心”模块,进入管理中心页面。 在管理中心页面,单击“数据源资源映射配置”,进入数据源资源映射配置页面。 图1 数据源资源映射配置 单击“DB配置”下的“添加”,然后分别配置开发环境数据库名和生产环境数据库名,完成后单击“保存”。通过和可以进行编辑和删除操作。 数据库名需配置为已创建完成的数据库名。建议在创建数据库时,开发环境数据库名和生产环境数据库名保持一致,开发环境数据库名带上“_dev”后缀,以与生产环境数据库名进行区分。 图2 DB配置 单击“DLI队列配置”下的“添加”,然后分别配置开发环境队列名和生产环境队列名,完成后单击“保存”。通过和可以进行编辑和删除操作。 队列名需配置为已在DLI创建完成的队列名。建议开发环境队列名和生产环境队列名保持一致,开发环境队列名带上“_dev”后缀,以与生产环境队列名进行区分。 图3 DLI队列配置 “DB配置”和“DLI队列配置”完成后,DLI环境隔离创建成功。
  • 运维者操作 运维者作为运维管理的负责人,需要对生产环境的作业、实例、通知、备份等进行统一管控,相关操作如下表所示。 表1 运维者操作 操作 说明 作业监控 包含对批作业、实时作业的监控。 具体请参见作业监控。 实例监控 对作业实例进行监控,作业每次运行,都会对应产生一次作业实例记录。 具体请参见实例监控。 补数据监控 对补数据作业运行情况进行监控。可以通过补数据,修正历史中出现数据错误的作业实例,或者构建更多的作业记录以便调试程序等。 具体请参见补数据监控。 通知管理 配置在作业运行异常或成功时能接收到通知。 具体请参见通知管理。 备份管理 支持每日定时备份昨日系统中的所有作业、脚本、资源和环境变量。 具体请参见备份管理。 父主题: 企业模式角色操作
  • 开发者操作 开发者作为任务开发与处理的人员,需要开发脚本、开发作业等,相关操作如下表所示。 表1 开发者操作 操作 说明 脚本开发 选择开发环境的数据湖引擎,在开发环境下的调测并发布数据开发脚本,发布到生产环境后系统会自动替换为对应生产环境引擎。 具体请参见脚本开发。 作业开发 选择开发环境的数据湖引擎,在开发环境下的调测并发布数据开发作业,发布到生产环境后系统会自动替换为对应生产环境引擎。 具体请参见作业开发。 父主题: 企业模式角色操作
  • 管理员操作 管理员作为项目负责人或开发责任人,需要为企业模式的环境配置、人员角色等进行统一管控,相关操作如下表所示。 表1 管理员操作 操作 说明 准备工作 包含数据湖准备以及数据准备与同步。 数据湖准备: 由于企业模式下需要区分开发环境和生产环境,因此您需要分别准备对应生产环境和开发环境的两套数据湖服务,用于隔离开发和生产环境: 对于集群化的数据源(例如MRS、DWS、RDS、MySQL、Oracle、DIS、ECS),DataArts Studio通过管理中心的创建数据连接区分开发环境和生产环境的数据湖服务,在开发和生产流程中自动切换对应的数据湖。因此您需要准备两套数据湖服务(即两个集群),且两套数据湖服务的版本、规格、组件、区域、VPC、子网以及相关配置等信息,均应保持一致。 例如,当您的数据湖服务为MRS集群时,需要准备两套MRS集群,且版本、规格、组件、区域、VPC、子网等保持一致。如果某个MRS集群修改了某些配置,也需要同步到另一套MRS集群上。 对于Serverless服务(例如DLI),DataArts Studio通过管理中心的环境隔离来配置生产环境和开发环境数据湖服务的对应关系,在开发和生产流程中自动切换对应的数据湖。因此您需要在Serverless数据湖服务中准备两套队列、数据库资源,建议通过名称后缀进行区分。 特别的,对于DWS、MRS Hive和MRS Spark数据源,如果使用一套相同的集群,则需要配置数据源资源映射的DB数据库映射关系进行开发生产环境隔离。 数据准备与同步: 数据湖服务创建完成后,您需要按照项目规划(例如数据开发需要操作的库表等),分别在开发和生产环境的数据湖服务中,新建数据库、数据库模式(仅DWS需要)、数据表等。 对于集群化的数据源(例如MRS、DWS、RDS、MySQL、Oracle、DIS、ECS),使用两套集群资源,两套环境中的数据库、数据库模式(仅DWS需要)和数据表必须保持同名。 对于Serverless服务(例如DLI),两套队列和数据库建议通过名称和后缀(开发环境添加后缀“_dev”,生产环境无后缀)进行关联与区分,数据表必须保持同名。 对于DWS、MRS Hive和MRS Spark数据源,使用一套集群资源,通过两个数据库(开发环境添加后缀“_dev”,生产环境无后缀)进行开发生产环境隔离,两套环境中的数据库模式(仅DWS需要)和数据表必须保持同名。 数据库、数据库模式(仅DWS需要)、数据表等新建完成后,如果涉及原始数据表等,您还需要将两套数据湖服务之间的数据进行同步: 数据湖中已有数据:通过CDM或DRS等数据迁移服务,在数据湖间批量同步数据。 数据源待迁移数据:通过对等的CDM或DRS等数据迁移服务作业进行同步,保证生产环境和开发环境的数据湖服务数据一致。 创建企业模式数据连接 对于所有的数据湖引擎,都需要创建数据连接。 对于集群化的数据源,如果使用不同的集群,支持同时创建DataArts Studio与开发环境数据湖、DataArts Studio与生产环境数据湖之间的数据连接。 具体请参见创建DataArts Studio数据连接。 配置企业模式环境隔离 配置开发、生产环境的DLI队列和DB映射配置的环境隔离。 对于DWS、MRS Hive和MRS Spark这三种数据源,如果在创建数据连接时选择同一个集群资源,则需要在同一个数据湖服务下配置两套数据库,进行开发与生产环境隔离,具体请参见DB配置。 对于数据源为DLI时,可以通过企业模式环境隔离配置两套DLI队列和DB数据库进行生产与开发环境的隔离。具体请参见配置DataArts Studio企业模式环境隔离。 授权用户使用DataArts Studio 为协同使用DataArts Studio的项目成员创建具备“DAYU User”权限的IAM账号,并匹配对应的工作空间角色。 具体请参见授权用户使用DataArts Studio章节创建用户并授予权限。 父主题: 企业模式角色操作
  • 企业模式业务流程 当前DataArts Studio企业模式,主要涉及管理中心和数据开发组件,业务流程由管理员、开发者、部署者、运维者等角色共同完成。 图1 企业模式架构 管理员:管理员需要进行准备数据湖、配置数据连接和环境隔离、数据的导入导出、配置项目用户权限等操作。 开发者:开发者需要在数据开发的开发环境,进行脚本、作业开发等操作,开发完成后进行测试运行、提交版本,最终提交发布任务。 部署者:部署者需要在数据开发的开发环境,查看待审批任务,并进行发布审批操作。 运维者:部署者需要在数据开发的生产环境,基于开发者发布的资源,进行作业监控、通知管理、备份等操作。 自定义角色:用户可以对需要的操作权限进行自定义设置,来满足实际业务的需要。 访客:具备DataArts Studio只读权限,只允许对DataArts Studio进行数据读取,无法操作、更改工作项及配置,建议将只查看空间内容、不进行操作的用户设置为访客。 表1 企业模式内的权限 - 简单空间 企业空间 管理者 拥有生产环境管理中心的所有权限,包含连接配置、数据导入导出等。 增加了部署相关的新操作 进行管理中心的连接配置、环境隔离配置,数据导入导出等 进行数据开发配置,比如环境配置、调度身份配置、配置默认项等 开发者 拥有生产环境的作业及脚本开发的所有权限。 开发环境:所有操作 生产环境:只读操作 部署:增加了打包、查看发布项、查看发布项列表、查看发布包内容 环境信息配置:只读操作 部署者 无 查看发布包 查看发布项列表 发布包:只有部署者和管理者可以操作 撤销发布:只有部署者和管理者可以操作 运维者 拥有生产环境的作业及脚本实例的运行监控、运维调度等权限。 开发环境:只读操作 生产环境:所有操作 部署:查看发布包内容 环境信息配置:只读操作 访客 仅只读 仅只读 父主题: 企业模式角色操作
  • 企业模式对使用流程的影响 简单模式工作空间下,DataArts Studio数据开发组件以及对应管理中心组件无法设置开发环境和生产环境,只能进行简单的数据开发,无法对数据开发流程和表权限进行强管控。提交脚本或作业后,您无需发布,脚本或作业即可进入调度系统周期性执行,产出结果数据。 图7 简单模式流程 企业模式下,DataArts Studio数据开发组件以及对应管理中心组件的数据连接支持设置开发环境和生产环境,有效隔离开发者对生产环境业务的影响。其中:开发环境只针对开发人员开放,只用于脚本或作业开发,开发完后发布到生产环境中。生产环境内不能做任何修改,只对最终用户开放,任何修改必须回退到开发环境中重新修改发布。 图8 企业模式流程
  • 注意事项 不同工作空间模式对于数据湖引擎存在一定的要求,企业模式工作空间需要分别为开发环境和生产环境进行数据湖引擎配置,才可以实现开发生产环境隔离。配置开发生产环境隔离包含以下三种方式: 图1 配置开发生产环境隔离 配置两套数据湖服务,进行开发与生产环境隔离。 对于集群化的数据源(例如MRS、DWS、RDS、MySQL、Oracle、DIS、ECS等),DataArts Studio通过管理中心的创建数据连接区分开发环境和生产环境的数据湖服务,在开发和生产流程中自动切换对应的数据湖。因此您需要准备两套数据湖服务,且两套数据湖服务的版本、规格、组件、区域、VPC、子网以及相关配置等信息,均应保持一致,详细操作请参见创建DataArts Studio数据连接。 创建数据连接时,通过不同的集群来进行开发与生产环境的隔离,如图2所示。 图2 创建数据连接时选择不同集群 配置DLI环境隔离。 配置企业模式环境隔离,包含DLI队列配置和DB配置。 对于Serverless服务(例如DLI),DataArts Studio通过管理中心的环境隔离来配置生产环境和开发环境数据湖服务的对应关系,在开发和生产流程中自动切换对应的数据湖。因此您需要在Serverless数据湖服务中准备两套队列、两套数据库资源,建议通过名称后缀进行区分,详细操作请参见配置DataArts Studio企业模式环境隔离。 配置DB,在同一个数据湖服务下配置两套数据库,进行开发与生产环境隔离。 对于DWS、MRS Hive和MRS Spark这三种数据源,如果在创建数据连接时选择同一个集群,如图3所示,则需要配置数据源资源映射的DB数据库映射关系进行开发生产环境隔离,如图4所示。详细操作请参见DB配置。 图3 创建数据连接时选择同一个集群 图4 DB配置 企业模式工作空间下,开发环境的数据开发作业默认不进行调度,仅发布至生产环境后可进行调度。
  • 简单模式与企业模式介绍 简单模式:传统的DataArts Studio工作空间模式。简单模式工作空间下,DataArts Studio数据开发组件以及对应管理中心组件无法设置开发环境和生产环境,只能进行简单的数据开发,无法对数据开发流程和表权限进行强管控。一个数据湖作为DataArts Studio的生产环境。 图5 简单模式工作空间 企业模式:为解决简单模式存在的风险,DataArts Studio工作空间新增支持企业模式。企业模式下,DataArts Studio数据开发组件以及对应管理中心组件的数据连接支持设置开发环境和生产环境,有效隔离开发者对生产环境业务的影响。需要两个数据湖,其中一个数据湖作为DataArts Studio开发环境,另一个作为DataArts Studio生产环境。其中: 开发环境只针对开发人员开放,只用于脚本或作业开发,开发完后发布到生产环境中。 生产环境内不能做任何修改,只对最终用户开放,任何修改必须回退到开发环境中重新修改发布。 图6 企业模式工作空间 您可选择创建任意模式工作空间体验DataArts Studio,使用企业模式工作空间实现DataArts Studio开发环境与生产环境代码隔离、不同环境计算资源隔离、权限隔离、任务发布流程管控等需求。 若您已在使用简单模式工作空间,并且希望保留当前简单模式工作空间的代码时,可选择工作空间模式升级,详情请参见创建企业模式工作空间。
  • 不同模式工作空间的优劣势对比 表3 不同模式工作空间的优劣势对比 对比 简单模式 企业模式 优势 简单、方便、易用。 仅需要授权数据开发人员“开发者”角色即可完成所有数据开发工作。 提交脚本或作业后,您无需发布,脚本或作业即可进入调度系统周期性执行,产出结果数据。 安全、规范。 具备安全、规范的代码发布管控流程(包含代码评审、代码DIFF查看等功能),保障生产环境稳定性,避免不必要的因代码逻辑引起的脏数据蔓延或任务报错等非预期情况。 数据访问得到有效管控,数据安全得以保障。 所有脚本或作业仅支持在开发环境编辑,开发者无法修改生产环境的脚本或作业。 开发环境和生产环境的数据隔离,开发者无法影响生产环境的数据。 开发环境下,脚本、作业以当前开发者的身份执行;生产环境下,脚本、作业则使用空间级的公共IAM账号或公共委托执行。 如果需要对生产环境进行变更,必须在开发环境通过开发者的发布操作才能将变更提交到生产环境,需要管理者或部署者审批通过,才能发布成功。 劣势 存在不稳定、不安全的风险。 无法设置开发环境和生产环境隔离,只能进行简单的数据开发。 无法对生产表权限进行控制。 说明: 开发调测阶段,开发者可直接访问生产数据湖的数据,随意对表进行增加、删除和修改等操作,存在数据安全风险。 无法对数据开发流程进行管控。 说明: 开发者可以不经过任何人审批,随时新增、修改脚本或作业并提交至调度系统,给业务带来不稳定因素。 流程相对复杂,一般情况下无法一人完成所有数据开发、生产流程。
  • 背景信息 本文内容由以下几部分构成,从不同角度分别为您解决企业模式不同的问题。 表1 了解企业模式 分类 说明 简单模式与企业模式介绍 不同工作空间模式的介绍。 不同模式工作空间对生产任务开发与运维的影响 DataArts Studio建立于对应工作空间物理属性之上的任务开发与运维机制介绍。 不同模式工作空间的优劣势对比 不同工作空间模式的优劣势对比。 企业模式对使用流程的影响 介绍企业模式工作空间下的流程管控。 不同工作空间模式下,DataArts Studio模块对应操作 简单模式仅有生产环境,企业模式有开发环境和生产环境,此部分为您介绍各个环境与DataArts Studio模块的对应关系。
  • 常用EL表达式样例合集 本章节介绍常用的EL表达式及示例。 表1 常用的EL表达式 方法 描述 示例 String getNodeStatus(String nodeName) 获取指定节点运行状态,成功状态返回success,失败状态返回fail。 例如,判断节点是否运行成功,可以使用如下判断条件,其中test为节点名称: #{(Job.getNodeStatus("test")) == "success" } 获取test节点运行状态。 #{Job.getNodeStatus("test")} String getNodeOutput(String nodeName) 获取指定节点的输出。此方法只能获取前面依赖节点的输出。 获取test节点输出。 #{Job.getNodeOutput("test")} 当前一节点执行无结果时,输出结果为“null”。 当前一节点的输出结果是一个字段时,输出结果形如[["000"]]所示。此时可通过EL表达式分割字符串结果,获取前一节点输出的字段值,但注意输出结果类型为String。需要输出原数据类型时,仍需通过For Each节点及其支持的Loop内嵌对象EL表达式获取。 #{StringUtil.split(StringUtil.split(StringUtil.split(Job.getNodeOutput("前一节点名"),"]")[0],"[")[0],"\\"")[0]} 当前一节点的输出结果是多个(两个及以上)字段时,输出结果形如[["000"],["001"]]所示。此时需要结合For Each节点及其支持的Loop内嵌对象EL表达式如#{Loop.current[0]},循环获取输出结果,详见获取SQL节点的输出结果值。 String getParam(String key) 获取作业参数。 注意此方法只能直接获取当前作业里配置的参数值,并不能获取到父作业传递过来的参数值,也不能获取到工作空间里面配置的全局变量,作用域仅为本作业。 这种情况下建议使用表达式${job_param_name},既可以获取到父作业传递过来的参数值,也可以获取到全局配置的变量。 获取参数test的值: #{Job.getParam("test")} String getPlanTime(String pattern) 获取指定pattern的计划时间字符串,pattern为日期、时间模式,请参考日期和时间模式。 获取作业调度计划时间,具体到毫秒: #{Job.getPlanTime("yyyy-MM-dd HH:mm:ss:SSS")} String getYesterday(String pattern) 获取执行pattern的计划时间前一天的时间字符串,pattern为日期、时间模式,请参考日期和时间模式。 获取作业调度计划时间的前一天的时间,具体到日期: #{Job.getYesterday("yyyy-MM-dd HH:mm:ss:SSS")} String getLastHour(String pattern) 获取执行pattern的计划时间前一小时的时间字符串,pattern为日期、时间模式,请参考日期和时间模式。 获取作业调度计划时间前一小时的时间,具体到小时: #{Job.getLastHour("yyyy-MM-dd HH:mm:ss:SSS")} Date addDays(Date date, int amount) 给date添加指定天数后,返回新Date对象,amount可以是负数。 将作业调度计划减一天的时间,转换为年月日格式。 #{DateUtil.format(DateUtil.addDays(Job.planTime,-1),"yyyy-MM-dd")} int getDay(Date date) 从date获取天,例如:date为2018-09-14,则返回14。 从作业调度计划获取具体的天。 #{DateUtil.getDay(Job.planTime)} Date now() 返回当前时间。 以秒格式返回当前的时间。 #{DateUtil.format(DateUtil.now(),"yyyy-MM-dd HH:mm:ss")} Object path(String jsonStr,String jsonPath) 返回json字符串指定路径下的字段值。类似于XPath,path方法可以通过路径检索或设置JSON,其路径中可以使用.或[]等访问成员、数值,例如:tables[0].table_name。 字符串变量str的内容如下: { "cities": [{ "name": "city1", "areaCode": "1000" }, { "name": "city2", "areaCode": "2000" }, { "name": "city3", "areaCode": "3000" }] } 获取city1的电话区号,EL表达式如下: #{JSONUtil.path(str,"cities[0].areaCode")} current For Each节点在处理数据集的时候,是一行一行进行处理的。Loop.current表示当前遍历到的For Each节点“数据集”中定义的二维数组的某一行,该数据行为一维数组。 一般定义格式为#{Loop.current[0]}、#{Loop.current[1]}或其他。其中[0]表示遍历到的当前行的第一个值,[1]表示遍历到的当前行的第二个值,以此类推。 作为For Each节点的“子作业参数”取值,表示For Each循环遍历中,取“数据集”中二维数组的当前遍历行的第二个值。 #{Loop.current[1]} 父主题: EL表达式参考
  • 前提条件 已新增Python脚本,请参见新建脚本。 已新建主机连接,该Linux主机配有用于执行Python脚本的环境。新建主机连接请参见主机连接参数说明。 连接主机的用户需要具有主机/tmp目录下文件的创建与执行权限。 Shell或Python脚本可以在该ECS主机上运行的最大并发数由ECS主机的/etc/ssh/sshd_config文件中MaxSessions的配置值确定。请根据Shell或Python脚本的调度频率合理配置MaxSessions的值。 当前用户已锁定该脚本,否则需要通过“抢锁”锁定脚本后才能继续开发脚本。新建或导入脚本后默认被当前用户锁定,详情参见编辑锁定功能。
共100000条
提示

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