DataLeap 数据开发套件支持通过配置开发环境与生产环境的火山引擎 EMR Serverless Spark 队列以及元数据库的映射关系,来实现在同一个 DataLeap 项目中运用一套任务配置,对不同环境下的数据集成、开发环境任务和生产环境任务等进行管理。本文将介绍如何在 DataLeap 平台操作 EMR Serverless Spark 引擎的多环境引擎实例的方案。
使用限制
- 需开通 DataLeap 服务版本中 DataOps敏捷研发或分布式数据自治的服务,项目方可使用多环境模式。详见版本服务说明。
- 多环境映射能力当前处于白名单阶段,如需使用,您可通过提工单的方式,请联系我们进行开通使用。
- 租户主账号或具备 DataLeapFullAccess 权限的 IAM 子账号才可创建 DataLeap 项目,且仅创建项目时选择的开发模式为多环境模式的项目才支持环境映射配置。关于子账号的权限详细说明请参见权限介绍。
- 数据集成任务目标端 Hive 数据源若是通过连接串或 EMR Serverless Hive 方式接入时,暂不支持任务自动创建目标端生产表,您需先手动在目标生产库中创建目标表。
使用前提
- 服务开通:
- 已开通 DataLeap 服务。详见DataLeap 服务开通。
- 已开通 EMR Serverless Spark 队列资源实例。详见队列管理。
- 已在 DataLeap 项目控制台中,绑定相应的 EMR Serverless Spark 服务实例及多个队列信息。详见创建项目。
- 子用户访问 EMR Serverless Spark 队列资源时,需确保拥有 EMRServerlessFullAccess 或 EMRServerlessReadOnlyAccess 权限策略,子用户可请主账号在访问控制界面进行权限策略添加,或者也可通过自定义策略方式进行配置相应权限。详见自定义策略。
- 在数据地图中,已完成对 EMR Serverless Spark 的元数据管理服务 LAS Catalog 进行元数据采集操作。详见元数据采集。
注意事项
- 多环境项目模式,任务开发界面配置时,不同任务类型使用不同环境数据:
- 配置全域数据集成任务时,均使用数据源的开发环境配置,任务发布后运行时系统自动使用数据源的生产环境配置,多环境数据源只适用于离线集成任务,不适应于流式集成和解决方案,流式集成和解决方案中默认仅使用生产环境数据源。
- 配置数据开发 EMR Serverless Spark SQL 任务,编辑器中编辑 SQL 语句时,是使用环境映射中生产环境引擎和计算队列信息;任务调试时则自动替换为环境映射中的开发环境引擎和计算队列信息。
- 开发、生产环境运维中心的任务,两个环境默认均支持每日自动调度生成周期实例,正常执行的实例会产生一定的周期实例费用,若开发环境中无需每日自动调度生成周期实例,您可将开发环境运维中心的任务进行关闭操作。实例费用说明详见资源组计费说明。
新建多环境项目
- 登录 DataLeap租户控制台。
- 单击新建项目按钮,进入配置项目基础信息、项目管控和服务绑定等信息。其中:
- 在项目管控中,开发模式选择多环境模式。

- 在服务绑定中,勾选 EMR Serverless Spark 服务,并绑定多个资源队列信息。

更多项目配置参数说明,详见 4 参数说明。
环境映射
多环境模式项目创建完成后,需在环境映射中,操作配置开发环境和生产环境的计算资源映射和元数据关系。
您可在项目创建完成后的弹窗中进入环境映射配置入口,或在项目控制台中进入。

在环境映射配置界面,依次完成计算资源映射和元数据映射配置。
计算资源映射:
配置 EMR Serverless Spark 引擎的资源组映射与引擎映射:
说明
映射关系所涉及的集群与计算组,均需先在创建项目时的“项目配置 > 服务绑定”中进行绑定。
参数 | 说明 |
|---|
资源组映射 | 配置 DataLeap 项目计算资源组、调度资源组和数据集成资源组在生产和开发环境的映射绑定。
其中,计算和调度资源组在项目中绑定后,默认开发与生产环境映射时保持一致,暂不支持变更操作;数据集成资源组在项目绑定后,支持手动添加集成资源组映射关系,开发与生产环境映射可进行自定义配置。 |
引擎映射 | 集群 | 配置 EMR Serverless Spark 引擎的映射。
单击添加映射按钮,可按需添加引擎服务实例的映射关系。 说明 目前 EMR Serverless Spark 中默认仅有一个集群实例,因此仅可添加一个集群映射关系。 您还可进行以下操作: - 单击操作列中的删除按钮,将某一个集群引擎服务映射删除;
- 去掉与生产环境相同的勾选项,并根据实际情况,在开发环境、生产环境中分别下拉选择不同的引擎服务实例进行映射。

|
计算队列 | 配置计算队列映射情况。
添加多个计算队列,可在开发、生产环境执行任务时,根据映射关系配置自动选择对应环境的计算队列。如开发环境执行任务,选择“计算队列A_Dev”执行,同样配置将任务发布至生产环境后,执行任务会自动选择“计算队列A_Prod”执行。
集群映射配置完成后,您可单击列表左侧的展开按钮,或操作列的 ⊕ 按钮,为开发和生产集群添加对应环境的计算队列映射项。
 |
元数据映射
计算资源映射配置完成后,单击下一步按钮,进入元数据映射配置界面。
元数据映射能够按照引擎分类,展示开发环境与生产环境所选集群下数据库的映射状况。
- 单击相应引擎下的手动添加按钮,添加数据库映射项,支持添加多个;
- 依次下拉选择对应集群环境中的开发数据库和生产数据库,支持一对多数据库映射,即同一个开发数据库支持映射到多个生产数据库。

说明
- 当勾选生产环境相同时,会自动调整为生产环境的数据库。
- 配置 EMR Serverless Spark 集群映射后,才可进行元数据映射配置。
- 建议为集群中的开发库配置上对应的生产库映射关系,且选择存在实际对应关系的生产库进行映射。例如开发/生产表 Schema 信息保持一致,防止因 Schema 结构不一致而导致同一套 SQL 在不同环境下执行结果出现差异。EMR Serverless Spark 集群若没有配置元数据库映射关系,平台则默认将所有库视为生产库。
更多环境映射操作说明详见环境映射。
计算资源映射和元数据映射配置完成后,单击确认保存按钮,即可完成环境映射配置。
全域数据集成
全域数据集成是稳定高效的数据同步平台,致力于提供丰富的异构数据源之间高速稳定的数据同步能力。您可按需进行离线、实时或整库解决方案同步任务配置。
环境信息配置完成后,您可继续以下操作。
多环境数据源配置
在项目控制台左侧导航栏中,单击数据源管理按钮,进入数据源管理页面。
在数据源管理页面,您可以开始新增生产、开发数据源,此处以配置 MySQL 和 Hive 数据源为例。
配置 MySQL 数据源:
注意
- 离线读 MySQL 数据时,配置的账号需拥有同步表的读 (SELECT) 权限。
- 离线写 MySQL 数据时,配置的账号需拥有同步表的写(INSERT、DELETE、UPDATE)权限。
- 需要将资源组关联 VPC 中的 IPv4 CIDR 地址添加进MySQL数据库白名单中。
更多MySQL数据源注意事项详见配置 MySQL 数据源。
参数 | 说明 |
|---|
基本配置 |
*数据源类型 | MySQL |
*接入方式 | 火山引擎 MySQL |
*数据源名称 | 数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100 个字符以内。 |
*适用环境 | 多环境模式项目中,集成任务配置必须配置数据源开发和生产环境,平台默认勾选生产环境进行配置,您需手动勾选开发后,根据实际情况,选择开发环境和生产环境的数据源参数是否保持一致: - 若开发数据源和生产数据源参数信息保持一致时,可单击一键复制生产环境配置信息按钮后,便可快速将生产环境数据源配置信息,填充到开发环境中。
- 若开发环境数据源与生产环境数据源需要隔离,配置信息不一致时,则勾选“开发”后,需额外配置开发环境数据源信息。
说明 仅多环境项目模式,支持选择数据源适用环境,且任务开发界面进行任务配置和任务调试时,只能使用开发数据源,任务发布后可自动使用生产数据源。 |
参数配置 |
RDS 实例 ID | 下拉选择火山引擎云数据库 MySQL 的实例 ID 信息,开发、生产环境可按需选择不同的实例 ID 信息。 |
数据库名 | 下拉选择对应实例下,已创建的 MySQL 数据库名称。 |
用户名 | 输入对应实例下有权限访问数据库的用户名信息。 |
密码 | 输入用户名对应的密码信息。 |
配置 Hive 数据源:
参数 | 说明 |
|---|
基本配置 |
*数据源类型 | Hive |
*接入方式 | EMR Serverless Hive |
*数据源名称 | 数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100 个字符以内。 |
*适用环境 | 多环境模式项目中,集成任务配置必须配置数据源开发和生产环境,平台默认勾选生产环境进行配置,您需手动勾选开发后,根据实际情况,选择开发环境和生产环境的数据源参数是否保持一致: - 若开发数据源和生产数据源参数信息保持一致时,可单击一键复制生产环境配置信息按钮后,便可快速将生产环境数据源配置信息,填充到开发环境中。
- 若开发环境数据源与生产环境数据源需要隔离,配置信息不一致时,则勾选“开发”后,需额外配置开发环境数据源信息。
说明 仅多环境项目模式,支持选择数据源适用环境,且任务开发界面进行任务配置和任务调试时,只能使用开发数据源,任务发布后可自动使用生产数据源。 |
参数配置 |
*Hive 版本号 | 默认仅支持 Hive 3.1.3。 |
*Accesskey ID | 进入火山引擎,访问控制台的密钥管理界面,复制 Accesskey ID 填写到此处。如果为子用户,请联系主账号获取密钥。 注意 填写的 AK\SK 信息,需拥有以下相应的权限: - 需要有对应 Hive 库表的读写权限,主账号或数据库 Owner 可前往 LAS Catalog 控制台进行授权操作。详见 LAS Catalog 权限管理。
- 需要有 LAS Catalog 中设置的底层存储路径 TOS Bucket 桶读写权限。存储桶权限策略操作详见桶策略模板及参数说明。
|
*Secret Access Key | 与 AccessKey ID 配套使用,类似登录密码,用于签名您的访问参数,以防被篡改。 |
Catalog | 下拉选择已在 LAS Catalog 服务中创建的 Catalog 数据目录名称信息。开发、生产环境可按需选择不同的 Catalog 信息。 |
*数据库名 | 输入上方 AK/SK 信息后,可在此下拉选择 EMR Serverless Spark 环境中,已创建的 Hive 数据库名称。
开发、生产环境可按需选择不同的 Hive 信息,建议与环境映射 - 元数据映射中设定的开发库、生产库名映射保持一致。 |
扩展配置 | 您可输入 HDFS 配置的可选扩展,例如 Hadoop HA 的配置信息。 |
数据源更多说明详见配置 MySQL 数据源、配置 Hive 数据源。
数据源参数项填写完整后,勾选已绑定的独享集成资源组,并单击上方的生产测试、开发测试按钮,执行测试连通性。测试连通后,单击确定按钮,完成数据源配置。
配置数据集成同步任务
数据源测试连通性成功后,您可继续配置单通道形式的数据集成同步任务。
- 在项目控制台界面左上角全部产品中,进入数据开发界面。

- 在数据开发页面,单击新建任务按钮,进入新建任务页面。
- 任务类型选择数据集成 > 离线集成,并输入任务名称,选择目标文件夹,完成集成任务新建。
说明
任务名称只允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,127 个字符以内。

- 在集成任务配置界面,通过界面向导的方式,来配置 MySQL_to_ Hive 的集成任务。

注意
- 在多环境项目的任务开发界面配置数据集成任务的来源、目标参数信息时,均采用开发环境数据源配置信息,所选表为开发环境库下的表名,任务发布运行时,平台会自动使用生产环境数据源配置,并且能够自动将开发库名替换为生产库名。但您必须确保生产库中的表名及表结构与开发库中的表一致,以免因信息不一致致使任务失败。
- 多环境项目中,数据集成任务目标端为 MongoDB、MySQL、Hive(数据源必须是 EMR Hive、EMR Serverless Hive 接入方式)、ByteHouse CDW 时, 平台支持根据任务配置的源端生产表信息来自动创建目标端生产表,并将源端生产表数据同步至目标端生产表。但 Hive 数据源若是通过连接串方式接入时,暂不支持任务自动创建目标端生产表,您需先手动在目标生产库中创建目标表。
- 多环境数据源只适用于离线集成任务,不适应于流式集成和解决方案,流式集成和解决方案中默认仅使用生产环境数据源。
- 集成任务来源、目标、字段映射及任务运行参数配置完成后,您可进入右侧调度设置和数据集成资源组窗口,设置开发、生产环境任务通用的调度频率、依赖关系和不同环境中可执行的集成资源组等信息。详见调度设置、数据集成资源组。
调试集成任务
集成任务配置完成且保存后,便可进行开发环境数据源配置的调试操作。
单击调试按钮,进入调试窗口选择执行业务日期,等待任务执行完成后,您便可前往数据地图查看开发环境中的 Hive 库表数据;或者您也可通过下方数据开发 EMR Serverless Spark SQL 调试能力,查询开发环境中的数据。

数据开发
DataLeap 数据开发即大数据开发 IDE,集批流开发为一体,为开发者提供高效、智能的开发环境。支持快速创建与 EMR 引擎相关的开发任务、进行代码开发、运行查询等。您可在 DataLeap 平台上,直接操作 EMR Serverless Spark 相关数据。
元数据管理
元数据界面支持您对使用的 EMR Serverless Spark 引擎下 LAS Catalog 表字段、分区信息、关联任务的预览查看操作及一键生成表查询语句等便捷操作,且在多环境项目中,元数据管理界面还支持您区分开发、生产环境的元数据管理操作。
- 在任务开发界面的左侧导航栏中,单击元数据按钮,进入元数据页面。
- 元数据类型切换至 EMR Serverless Spark 引擎后,您可根据库名称前的标签来区分当前的元数据库环境。
新建生产实例任务
多环境项目中,新建 EMR Serverless Spark SQL 任务仅支持新建环境映射中生产集群实例下的 SQL 开发任务。
- 在任务开发界面,单击新建任务按钮,进入新建任务页面。
- 依次选择数据开发 > EMR Serverless Spark > EMR Serverless Spark SQL 任务类型。
- 填写任务基本信息,单击确定按钮,完成任务创建。
注意
- 在项目控制台管理界面中,如果新增或修改了引擎,那么在数据开发任务新建窗口中,需刷新整个 DataLeap 数据开发界面,才能看到新增或修改后的引擎任务类型。
- 任务名称信息仅允许字符.、字母、数字、下划线、连字符、[]、【】、()、()以及中文字符,且需要在127个字符以内。

数据开发任务说明详见 EMR Serverless Spark SQL。
编辑生产环境SQL
在代码编辑器界面,输入生产环境对应 EMR Serverless Spark SQL 语句,语句中的库名、表名需要是生产库表信息,示例如下:
说明
目前多环境元数据映射仅支持数据库级别映射,暂不支持表级别的映射,因此在编辑 SQL 语句时,建议将生产表名与开发表名保持一致,使一套代码能够在两个环境中正常执行。
--生产表插入数据
INSERT INTO TABLE doc_demo.doc_csv_demo PARTITION (date = '20240403') VALUES(1, 'testyw', 26),
(2, '章三', 26),
(3, '李四', 23),
(4, '王五', 24),
(5, '刘六', 23),
(6, '方园', 88);
--查询生产表数据
SELECT *
FROM doc_demo.doc_csv_demo;
调度设置
SQL 代码编辑完成后,您需进入右侧调度设置窗口,设置生产环境中任务所使用的计算队列信息,并按需设置任务的调度频率、依赖关系等信息。详见调度设置。

开发环境调试
生产环境 SQL 语句编辑完成后,您可进行 EMR Serverless Spark SQL 开发环境相应语句的调试操作。
- 单击编辑界面上方调试按钮,并在弹窗中选择业务日期;
- 单击预览开发环境 SQL 按钮,在自定义 SQL 窗口中查看根据环境映射替换后的开发表 SQL 语句。您也可以根据需要修改开发环境调试的语句;

- 确认库名替换无误后,单击使用自定义 SQL 调试按钮,便可查询 EMR Serverless Spark 开发环境中相应的库表数据。

- 任务调试结束后,您可在执行日志 Driver 模块中查看调试使用的计算队列信息。

提交任务
开发环境调试结果确认无误后,单击上方操作栏中的保存和提交上线按钮,在提交上线对话框中,依次设置回溯数据、监控设置、提交设置等参数,以下为您介绍多环境项目中如何提交任务至不同环境中。
注意
在提交上线或发布过程中,如果触发了流水线管理,您需要确保流水线运行成功后,任务才能真正被提交到发布中心或运维中心。详见配置流水线。
提交任务至开发环境
提交任务至开发环境,您需通过发布中心,将任务发布到开发环境中。
注意
发布至开发环境的任务,不受发布复查策略和发布流水线校验控制,可直接发布至开发环境,您需关注开发环境的执行结果。
- 在提交上线窗口,提交设置中,选择仅提交方式,并单击确认按钮,便可将任务提交至发布中心。
回溯数据、监控设置等更多提交上线说明详见:数据开发概述---离线任务提交。

- 前往发布中心,在待发布列表中,单击新建发布包按钮;

- 在新建发布包窗口中,选择发布环境为“发布开发环境(后续推生产环境)”;
- 并单击下方开发环境调度配置按钮,在开发环境调度配置窗口中,按实际场景配置开发任务优先级、执行时间、开发环境依赖等信息,您也可以在窗口中手动修改开发环境的 SQL 代码;
说明
开发环境调度配置中展现的 SQL 代码,已是根据多环境配置替换后的代码,可直接将其发布到开发环境,您也可以手动对开发环境的 SQL 代码进行修改。
- 开发环境调度配置信息填写完成后,单击发布至开发环境按钮,即可将任务发布至开发环境中。
- 成功发布至开发环境后,在待发布列表中,任务变更类型已修改为“XX(已发布至开发环境)”。
提交任务至生产环境
提交任务至生产环境,您可在提交上线窗口中,直接将任务提交并发布至生产环境;也可通过发布中心,再将任务发布到生产环境中。
- 方式一:
提交设置时直接选择“提交并发布至生产环境”,便可直接在提交上线窗口中,将任务提交至生产环境。

- 方式二:
通过发布中心,将任务发布至生产环境,操作如下:
- 在提交上线窗口,提交设置中,选择仅提交方式,并单击确认按钮,便可将任务提交至发布中心。
- 前往发布中心,在待发布列表中,单击新建发布包按钮;
- 在新建发布包窗口中,选择发布环境为“发布生产环境(跳过开发环境)”;

- 在下方单击确定按钮后,便可将任务发布至生产环境。
更多发布中心操作,详见任务发布。
任务运维
在多环境项目中,任务提交发布成功后,可进入运维中心查看开发环境运维和生产环境运维。
在上方导航栏中,进入离线任务运维,并可在离线任务运维左侧导航栏上方,切换查看开发环境运维或生产环境运维的任务详情。
说明
- 为区分开发环境任务与生产环境任务,平台在开发环境任务中默认增加了环境标识,环境标识为“__dev”,如自定义的任务名称为:spark_多环境,则开发环境任务名称为:spark_多环境__dev;生产环境中任务名称不变,仍为 spark_多环境。
- 开发、生产环境运维中心的任务,两个环境默认均支持每日自动调度生成周期实例,正常执行的实例会产生一定的周期实例费用,若开发环境中无需每日自动调度生成周期实例,您可将开发环境运维中心的任务进行关闭操作。实例费用说明详见资源组计费说明。

在对应环境中,按需查看任务运行情况,您也可对任务进行监控报警设置、开启任务、停止任务、查看运行日志等运维操作。
更多任务运维操作,详见离线任务运维。