库表离线采集
库表离线采集是平台面向结构化数据库提供的数据集成能力,支持对接 DM、SAP HANA、MySQL、Oracle、PostgreSQL、SQL Server 等主流关系型数据库,基于自定义查询条件、增量过滤规则,批量抽取库表结构化数据,统一落地至平台数据卷、Lance 湖仓,完成业务结构化数据的离线归集与存储,支撑数据分析、报表计算、多模态融合等下游业务。
前提条件
- 具有空间管理员权限或其他具备该功能权限的角色。
- 任务运行需使用任务所在项目绑定资源组下的源链接与集成实例,请确保该计算实例与需要集成的数据源网络已打通。
配置说明
平台提供向导模式、脚本模式两种任务配置方式,适配不同业务复杂度场景,可按需选择使用。
- 向导模式(默认):零代码可视化表单配置,操作简单、上手快速,适配常规标准化库表同步场景。
- 脚本模式:支持自定义脚本灵活拓展同步逻辑,适合快速接入更多引擎层已支持的数据源,满足复杂及个性化业务需求。
需在向导模式完成全部基本配置后,才可切换至脚本模式。
创建库表离线采集任务
任务创建入口
- 未创建过任务:进入数据集成>库表离线采集页面,选择对应数据源即可进入任务配置页面。
- 已创建过任务:在库表离线采集任务列表右上角,单击创建/批量创建按钮新建任务。
| 类型 | 说明 |
|---|---|
| 单个任务创建 | 适用于用户需要从特定数据表中采集数据,并对该数据表进行详细配置的情况。 |
| 批量任务创建 | 适用于用户需要从单个数据库中一次性选择多个数据表进行采集的情况。 |
选择源端
在创建对话框,选择结构化数据源端,按需选择对应数据源类型完成连接创建。当前支持的数据源如下:
| 数据源 | 适用场景 |
|---|---|
| DM | 国产信创业务库,适配政企国产化数据库同步场景。 |
| SAP HANA | 企业 ERP 配套高性能内存数据库,业务经营数据抽取。 |
| MySQL | 互联网通用业务库,支持 MySQL5、MySQL8 版本全量 / 增量同步。 |
| Oracle | 传统大型企业核心业务库,适配 Oracle11g 版本数据采集。 |
| PostgreSQL | 开源事务型业务库、MPP 分析库批量数据抽取。 |
| SQL Server | Windows 体系企业业务库,支持 2016、2019 版本离线同步。 |
| S3 | 兼容S3协议对象存储,采集存储桶内文件数据,适配海量文件、跨平台对象存储数据接入场景。 |
| FTP | 采集FTP服务器目录下的文件数据,适配通过文件方式交换数据的业务系统。 |
| SFTP | 采集SFTP服务器目录下的文件数据,适配对传输安全有要求的文件交换场景。 |
| Iceberg | 数据湖表格式数据源,读取对象存储上 Iceberg 元数据与底层数据文件,支持湖表全量、增量变更数据采集。 |
| Elasticsearch(ES) | 搜索与分析引擎数据源,采集 ES 索引数据,适配日志、检索类数据接入场景。 |
| MongoDB | 文档型 NoSQL 数据库,采集集合(Collection)数据。 |
| RestAPI | 通过 REST API 拉取数据,适配以接口方式对外提供数据的业务系统。 |
| Hive | Hadoop 数据仓库,采集 Hive 库表数据,适配大数据离线数仓接入场景。 |
| Feishu | 飞书多维表格数据源,采集多维表格中的业务表单数据,实现线上业务台账接入。 |
任务配置流程
下文主要解释库表离线采集两种配置模式的完整搭建流程,明确两种模式的操作差异、配置规范及使用约束,可根据业务场景复杂度,选择适配的模式完成任务配置。
向导模式配置流程
- 根据需求选择单击DM/HANA/MySQL/Oracle/PostgreSQL/SQLServer/Elasticsearch/Feishu/FTP/Hive/Iceberg/MongoDB/RestAPI/S3/SFTP数据源;
- 完整填写对应数据源连接配置参数;
- 填写对应配置项,关于数据源的详细配置如下表:
表1 基本配置说明
| 列表项名称 | 说明 |
|---|---|
| 任务名称 | 输入任务名称,名称长度必须在1~256字符之间,不能出现/或者\,不能仅为. |
| 所属位置 | 指定当前任务所处项目文件夹,侧边通过浏览按钮选择路径,实现任务文件的统一管理。 |
| 任务描述 | 输入任务描述,不超过500字符。 |
表2 常用型数据库源端配置说明(适用:DM、MySQL、SQLServer、Oracle、PostgreSQL、HANA、MongoDB、Hive)
| 列表项名称 | 说明 |
|---|---|
| 源端类型 | DM、MySQL、SQLServer、Oracle、PostgreSQL、HANA、MongoDB、Hive。 |
| 数据源名称 | 下拉选择数据源,也可以单击创建数据源去创建数据源。 |
| 数据库名称 | 下拉选择数据库。 |
| 数据表名称 | 下拉选择数据表。 |
| 分片字段 | 选择用于多并发数据同步的切分字段,建议使用主键或唯一键。MongoDB、Hive源端无需配置本项。 |
| 源端表删除字段 | 选择当源表字段被删除时的处理策略,支持忽略已删除字段、终止任务两种策略。MongoDB、Hive源端无需配置本项。 |
| 源端表新增字段 | 选择当源表新增字段时的处理策略,支持忽略已新增字段、终止任务两种策略。MongoDB、Hive源端无需配置本项。 |
| 源端表被删除 | 当源端表被删除时,将暂停任务执行,并将任务状态置为失败。MongoDB、Hive源端无需配置本项。 |
| where 语句 | 配置where语句,数据过滤条件,不含WHERE关键字,支持时间宏如 ${logicTime(yyyy-MM-dd HH:mm:ss,-1d)}。Hive源端无需配置本项。 |
表3 文件类源端配置项说明(适用:S3、FTP、SFTP)
| 列表项名称 | 说明 |
|---|---|
| 源端类型 | S3、FTP、SFTP。 |
| 数据源名称 | 下拉选择数据源,也可以单击创建数据源去创建数据源。 |
| 文件路径 | 指定待采集文件目录路径。 |
| 路径正则过滤 | 通过正则表达式匹配路径,筛选符合规则的目标文件。 |
| 文件格式过滤 | 根据文件后缀格式,筛选指定类型文件。 |
| 更新时间过滤 | 依据文件最后更新时间范围,过滤采集文件。 |
| 文件类型 | 选择目标文件数据类型(如csv、parquet、json等)。 |
表4 数据表源端配置项说明(适用:Iceberg)
| 列表项名称 | 说明 |
|---|---|
| 源端类型 | Iceberg。 |
| 数据库名称 | 下拉选择数据库。 |
| 数据表名称 | 下拉选择数据表。 |
| 源端表删除字段 | 选择当源表字段被删除时的处理策略,支持忽略已删除字段、终止任务两种策略。 |
| 源端表新增字段 | 选择当源表新增字段时的处理策略,支持忽略已新增字段、终止任务两种策略。 |
| 源端表被删除 | 当源端表被删除时,将暂停任务执行,并将任务状态置为失败。 |
| 过滤条件 | 下推到 Iceberg 的过滤条件,不含 WHERE 关键字。 |
离线同步中,Iceberg 源端的数据库支持通过环境变量引用,便于测试到生产的作业迁移。 表5 Feishu数据源配置说明(适用:Feishu)
| 列表项名称 | 说明 |
|---|---|
| 源端类型 | Feishu。 |
| 数据源名称 | 下拉选择数据源,也可以单击创建数据源去创建数据源。 |
| 应用路径 | 填写或选择飞书多维表格所在应用路径,用于精准定位目标业务表格资源。 |
| 应用类别 | 支持选择多维表、在线表。 |
| 数据表名称 | 下拉选择当前应用下需要采集的目标数据表,作为同步源端对象。 |
| 是否使用id作为列名称 | 开关项目开启后使用飞书字段ID作为列名,仅多维表支持,默认关闭。 |
| 跳过表头行数 | 应用类型选择在线表时,需配置采集时需要跳过的起始行数,默认为1,多维表无需配置。 |
表6 Elasticsearch 源端配置项说明
| 列表项名称 | 说明 |
|---|---|
| 源端类型 | Elasticsearch。 |
| 数据源名称 | 下拉选择数据源,也可以单击创建数据源去创建数据源。 |
| 索引名称 | 下拉选择待采集的 Elasticsearch 索引。 |
| 单批拉取条数 | 每次 scroll 请求拉取的文档数,默认 100。 |
| Scroll 保持时间 | ES scroll 上下文保持时间,默认 1m。 |
| 查询 DSL | Elasticsearch 原生查询 DSL(JSON 格式),用于过滤数据,如 {"range":{"age":{"gt":18}}}。 |
表7 RestAPI 源端配置项说明
| 列表项名称 | 说明 |
|---|---|
| 源端类型 | RestAPI。 |
| 数据源名称 | 下拉选择数据源,也可以单击创建数据源去创建数据源。 |
| 数据表名称 | RestAPI 源端没有物理表,此处填写逻辑表名,用于目的端表名与字段映射标识。 |
| 域名组 | 下拉选择域名组。数据源可配置多个域名组,每组包含独立的 base URL、端口和认证方式。 |
| 接口路径 | 接口路径,会和数据源的 base URL、端口拼接组装为完整请求 URL。 |
| 请求方法 | 选择接口请求方法,连接器仅支持 GET 与 POST。 |
| 自定义请求头 | 扁平 JSON 对象;认证类请求头由后端依据数据源认证方式自动生成,无需在此处填写。 |
| 查询参数 | 扁平 JSON 对象;禁止填写凭证信息,查询参数会在 DEBUG 日志明文输出。 |
| 响应格式 | 选择接口响应格式,连接器仅支持 Json 与 Text。 |
| 数据路径 | 定位业务数据数组的 JSONPath,必须以.*或[*]结尾;仅填写$.data会将整个数组识别为单条记录,产生单条错误数据且不会报错。 |
| 启用翻页 | 开关项,接口采用分页返回数据时开启。 |
| 按行切分 | 开关项;仅响应为 NDJSON(每行一条完整 JSON 对象)时开启。该能力不感知 JSON 格式,带换行缩进的格式化 JSON 响应开启后会解析失败,普通 JSON 接口请保持关闭。 |
表8 目标端配置说明
| 列表项名称 | 说明 |
|---|---|
| 目标端类型 | iceberg/Doris/PostgreSQL/结构化数据集。 |
| 类型选择Iceberg | 需配置数据库、更新写入、写入模式、建表方式(自动建表/选择已有表)、表类型、表名设置、描述、目标表。 |
| 类型选择Doris | 需配置数据库、建表方式(自动建表/选择已有表)、表类型、表名设置、描述、目标表。 |
| 类型选择PostgreSQL | 需配置数据源名称、数据库名称、更新写入、写入模式、建表方式(自动建表/选择已有表)、表名设置、描述。 |
| 类型选择结构化数据集 | 需配置更新写入、写入模式、目标位置、建表方式(自动建表/选择已有数据集)、表名设置、描述、目标表。 |
离线同步中,Iceberg、Doris 目标端的数据库支持通过环境变量引用,便于测试到生产的作业迁移。
- 完成源端与目标端配置后,若为自动建表,可查看系统自动生成的映射配置,支持手动编辑调整字段映射配置。若为选择已有表,则可按需进行同名映射、同行映射或手动映射。
- 最后配置高级配置,具体参数说明如下:
表9 高级配置说明
| 配置项名称 | 说明 |
|---|---|
| 最大并发数 | 填写最大并发数。范围是1~100。 |
| 断点续传 | 默认开启,开启后,任务执行过程中将定期将临时目录数据提交到正式目录,若任务失败,重跑时可从最近一次checkpoint位置继续执行。 |
| 开启限速 | 选择是否启用读取速率限制,默认关闭。 |
| 最大行数速率 | 整个任务每秒最多读取的行数,单位 条/s。该值按最大并发数均分给各个并发,调整并发数不改变任务总速率。 |
| 最大流量速率 | 整个任务每秒最多读取的数据量,单位 MB/s。按最大并发数均分。 |
- 在完成高级配置后,单击保存并前置检查,会对计算资源状态检查、源端数据源连通性测试、目的端数据源连通性测试、脚本内容合法性检查、任务的合法性检查。
前置检查失败后,页面会展示具体失败原因,可根据日志提示修正数据源连接、任务过滤规则、目标端权限等配置项,修改完成后重新执行前置检查,全部校验项通过方可保存并创建任务。
- 前置检查通过后,您单击运行按钮或单击发布按钮,对任务进行发布操作,发布任务之后,可以在工作流中被调度执行。
- 若选择单击运行按钮,可按需选择运行或运行并查看详情两种执行方式,任务发起后即代表任务创建成功;选择运行并查看详情可直接跳转至任务运行记录页面,实时查看本次同步任务执行进度。
脚本模式配置流程
- 单击创建,选择某个源端类型
- 在向导模式完成全部基本配置后,单击创建页面最上方的转为脚本模式按钮,进行切换。
- 编辑脚本,配置集成任务,库表离线采集的通用脚本配置如下:
_db_jobMeta:任务基础配置信息。建议在向导模式完成配置后,不再在脚本模式中修改该部分内容。env:任务高级配置信息。其中job.mode用于区分离线任务和实时任务;parallelism用于设置并发数;checkpoint.interval用于配置断点续传检查点保存间隔。source、sink:数据源和目标端配置,不同源端插件支持的配置项有所差异。
1JSON复制
2{"_db_jobMeta":{"name":"任务名称","description":"任务描述","parentFolderId":"project_91cc_799bd26eee94","type":"batch","mode":"script"},"env":{"job.mode":"BATCH","parallelism":1,"checkpoint.interval":30000},"source":[{"plugin_name":"插件名","_db_pluginId":"DB侧插件名"}],"sink":[{"plugin_name":"插件名","_db_pluginId":"DB侧插件名"}]}
- 配置完成后,单击保存并前置检查,各检查项通过后方可保存并创建任务。
- 前置检查通过后,您单击运行按钮或单击发布按钮,对任务进行发布操作。
- 若选择单击运行按钮,可按需选择运行或运行并查看详情两种执行方式。
查看库表离线采集任务列表
创建完成的库表离线采集任务以列表形式展示,支持通过任务名称、源端数据源、源端数据库和目标端数据库进行搜索。
表10 库表离线采集任务列表说明
| 列表项名称 | 说明 |
|---|---|
| 任务名称 | 库表离线采集任务的名称。 |
| 状态 | 任务状态,分为:草稿、检查中、更新中、已发布、检查通过和检查未通过。 |
| 源端类型 | DM、MySQL、SQLServer、Oracle、PostgreSQL、SAP HANA、S3、FTP、SFTP、Iceberg、Elasticsearch(ES)、MongoDB、REST API、Hive、Feishu。 |
| 源端数据源 | 单击源端数据源名称,可跳转数据源管理查看详细信息。 |
| 源端数据库 | 数据抽取的源头数据库名称。 |
| 源端数据表 | 源端数据库里具体要抽取数据的表名称。 |
| 目标端数据表 | 数据最终写入的目标表名称。 |
| 最近运行 | 最近一次运行任务的状态。 |
| 创建人 | 创建库表采集任务的用户名。 |
| 创建时间 | 创建任务的时间。 |
| 更新人 | 记录最后一次更新该任务的用户。 |
| 更新时间 | 记录任务最后一次更新的时间。 |
| 发布人 | 记录发布该任务的用户。 |
| 发布时间 | 记录任务发布的具体时间。 |
| 操作 | 前置检查、运行、发布、编辑、删除、复制、权限管理。 |
列表批量操作
- 批量编辑高级配置、批量前置检查、批量运行、批量发布、批量删除。
查看库表离线采集任务详情
单击任务名称可进入库表离线采集任务详情,通过切换tab页可查看运行记录、任务信息和统计信息。
运行记录
表11 库表采集任务详情概览
| 列表项名称 | 说明 |
|---|---|
| 运行记录ID | 运行记录唯一ID。 |
| 业务时间 | 运行时对应业务时间。 |
| 状态 | 全部、待触发、运行中、失败、成功、终止中、已终止。 |
| 运行时长 | 任务运行开始到结束的时长。 |
| 运行类型 | 全部、例行执行、工作流单次执行、单次执行、补数据执行和重跑。 |
| 开始时间 | 任务运行开始的时间。 |
| 结束时间 | 任务运行结束的时间。 |
| 读取行数 | 任务从源端读取的数据行数。 |
| 写入行数 | 任务向目标端写入的数据行数。 |
| 读取大小 | 任务从源端读取的数据量大小。 |
| 写入大小 | 任务向目标端写入的数据量大小。 |
| 操作 | 详情(统计信息与任务日志)、终止、重跑(从断点继续或忽略断点全量重跑)。 |
任务信息
可查看任务的基本配置信息,脚本模式创建的任务仅支持以脚本形式查看。
统计信息
查看统计概览(已读取数据、已写入数据行数及大小)和趋势分析(运行时长、数据量和处理速率),趋势分析可通过时间范围进行筛选。
评价此篇文章
