DataSail 支持将普通飞书表格或多维表格当做数据源,将表格中的数据同步至任意 DataSail 支持的批式 Writer 数据源中。
本文将为您介绍 LarkSheet 数据源的配置和离线任务可视化的配置能力。
子账号新建数据源时,需要有项目的管理员角色,方可以进行新建数据源操作。各角色对应权限说明,详见:管理成员
LarkSheet 数据源目前仅支持离线读。
飞书电子表格没有表头的概念,但为了飞书电子表格导入任务具有更好的规范性,我们约定:
表格中的第一行会作为表头 。表头需要是:从 A1 单元格开始的,连续的,非空的,不能重名的一系列单元格。 表头只用于做字段映射,不会参与数据传输。
例如表头行数据如下:
A | B | C | D | E | |
---|---|---|---|---|---|
姓名 | 年龄 | 爱好 | 学校 |
A | B | C | D | E | |
---|---|---|---|---|---|
姓名 | 年龄 | 爱好 | 学校 |
A | B | C | D | E | |
---|---|---|---|---|---|
姓名 | 爱好 | 年龄 | 爱好 |
A | B | C | D | E | |
---|---|---|---|---|---|
姓名 | 年龄 | 爱好 | 学校 |
注意
在任务正常上线后,需要保证表头的稳定,不要轻易修改表头。任务执行前会进行表头校验,如出现非法表头或者跟任务中的字段映射对不齐时,会主动报错: Invalid sheet header
因飞书电子表格无强制的 Schema 约束,DataSail 会将表格中的每个单元格统一当做 string 来处理,目标 Writer 数据源中对应的字段最好也是 string 类型,否则会可能会出现数据格式转化出错导致的作业失败。
新建数据源操作详见配置数据源,以下为您介绍 LarkSheet 数据源配置相关信息:
参数 | 说明 |
---|---|
基本配置 | |
数据源类型 | LarkSheet |
接入方式 | 连接串 |
数据源名称 | 数据源的名称,可自行设置,仅支持中文,英文,数字,“_”,100个字符以内。 |
参数配置 | |
APP ID | 进入飞书开放平台,单击已创建成功的企业自建应用,进入到凭证与基础信息界面,在应用凭证处,获取应用唯一的 APP ID 标识。 |
APP Secret | 在凭证与基础信息界面,获取应用的 APP Secret 秘钥,此秘钥在创建应用时由平台自动生成。 |
飞书开放平台域名 | 开放平台域名默认为 https://open.feishu.cn 说明 如果是普通 SaaS 版飞书,不需要修改飞书开放平台域名;除非使用私部版本飞书,才需要修改飞书开放平台域名。 |
LarkSheet 数据源测试连通性成功后,进入到数据开发界面,开始新建 LarkSheet 相关通道任务。
新建任务方式详见离线数据同步。
任务创建成功后,您可根据实际情况,配置 LarkSheet 批式读通道任务。
数据来源选择 LarkSheet,并完成以下相关参数配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 说明 |
---|---|
*数据源类型 | 下拉选择 LarkSheet 数据源类型。 |
*数据源名称 | 已在数据源管理中注册成功的 LarkSheet 数据源,下拉可选。 |
*表格类型 | 支持选择飞书表格和多维表格两种类型。 |
*飞书链接 | 在输入框中写入飞书电子表格对应的 URL 链接。 注意
|
数据来源和目标端配置完成后,需要指定来源和目标端的字段映射关系,根据字段映射关系,数据集成任务将源端字段中的数据,写入到目标端对应字段中。
字段映射支持选择基础模式和转换模式配置映射:
注意
基础模式和转换模式不支持互相切换,模式切换后,将清空现有字段映射中所有配置信息,一旦切换无法撤销,需谨慎操作。
转换模式:
字段映射支持数据转换,您可根据实际业务需求进行配置,将源端采集的数据,事先通过数据转换后,以指定格式输入到目标端数据库中。
转换模式详细操作说明详见4.1 转换模式
在转换模式中,你可依次配置:来源节点、数据转换、目标节点信息:
配置节点 | 说明 |
---|---|
来源节点 | 配置数据来源 Source 节点信息:
配置完成后,单击确认按钮,完成来源节点配置。 |
数据转换 | 单击数据转换右侧添加按钮,选择 SQL 转换方式,配置转换信息和规则:
配置完成后,单击确认按钮,完成数据转换节点配置。SQL 脚本示例详见4.1.2 添加转换节点。 |
目标节点 | 配置目标节点 Sink 信息:
配置完成后,单击确认按钮,完成目标节点配置。 |
基础模式:
您可通过以下三种方式操作字段映射关系:
LarkSheet 数据源支持使用脚本模式(DSL)的方式进行配置。
在某些复杂场景下,您可通过任务脚本的方式,按照统一的 Json 格式,编写 LarkSheet Reader 参数脚本代码,来运行数据集成任务。
进入 DSL 模式操作流程,可详见 MySQL 数据源-4.4.1 进入DSL 模式。
进入 DSL 模式编辑界面后,您可根据实际情况替换相应参数,LarkSheet Reader 脚本示例如下
{ // [required] dsl version, suggest to use latest version "version": "0.2", // [required] execution mode, supoort streaming / batch now "type": "batch", // reader config "reader": { // [required] datasource type "type": "larksheet", // [optional] datasource id, set it if you have registered datasource "datasource_id": 123, // [required] user parameter "parameter": { // ********** please write here ********** // "key" : value "columns": [{ "type": "string", "name": "jj" }, { "type": "string", "name": "ii" }, { "type": "string", "name": "hh" }, { "type": "string", "name": "gg" }, { "type": "string", "name": "ff" }, { "type": "string", "name": "ee" }, { "type": "string", "name": "dd" }, { "type": "string", "name": "cc-主管" }, { "type": "string", "name": "vv" }, { "type": "string", "name": "aa" }], "class":"com.bytedance.dts.batch.lark.bitable.LarkBitableInputFormat", "bitable_url": "https://dx49vxrxjmx.feishu.cn/base/VOvUbNLqUa8z9Dso5DCcCBe7nKb?table=tblsUjtRQvsjuQZr" } }, // writer config "writer": { // [required] datasource type "type": "las", // [optional] datasource id, set it if you have registered datasource "datasource_id": 123, // [required] user parameter "parameter": { // ********** please write here ********** // "key" : value "service_region": "cn-beijing", "partition": "`date`=20240624", "db_name": "bigdata_demo", "columns": [{ "type": "string", "name": "col1", "description": "1" }, { "type": "string", "name": "col2", "description": "1" }, { "type": "string", "name": "col3", "description": "1" }, { "type": "string", "name": "col4", "description": "1" }, { "type": "string", "name": "col5", "description": "1" }, { "type": "string", "name": "col6", "description": "1" }, { "type": "string", "name": "col7", "description": "1" }, { "type": "string", "name": "col8", "description": "1" }, { "type": "string", "name": "col9", "description": "1" }, { "type": "string", "name": "col10", "description": "1" }], "class": "com.bytedance.dts.las.LasOutputFormat", "table_name": "lark_demo" } }, // common config "common": { // [required] user parameter "parameter": { // ********** please write here ********** // "key" : value } } }
Reader 参数说明,其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数:
参数名称 | 参数含义 |
---|---|
*type | Reader type,默认固定值 larksheet |
*datasource_id | 注册的 LarkSheet 数据源 ID。可以在项目控制台 > 数据源管理界面中查找。 |
*class | LarkSheet reader connector type,不同表格类型,其默认固定值不同:
|
*bitable_url | 需要读取的 LarkSheet 飞书表格 URL 链接信息,如:https://bytedance.larkoffice.com/sheets/G2xxxxxxxxxxxxb |
*columns | 所配置的飞书表格中,需要同步的列名集合,使用 JSON 的数组描述字段信息。
|
LarkSheet 离线读时,您可在任务运行参数 > 自定义参数设置中填写任务执行时所需的高级参数,如图所示:
常见高级参数如下:
参数 | 描述 | 默认值 |
---|---|---|
job.reader.batch_size | 从飞书 OpenApi 单次请求获取的行数,当表格中有复杂公式导致作业失败时,建议调低该参数。 | 2000 |
job.reader.skip_nums | 配置方式为一个数组,比如: [10, 20]。 | [],代表不会跳过任何行 |
出现此异常提醒,请检查以下几项:
job.reader.batch_size
,将参数对应的值降低,减少单次读取的数据量。前后不要出现空格、制表符等不可见字符,否则会引起任务失败。
注意
表头不能有以下几种情况:
否则在拉取飞书表格 Schema 的时候也会报错(如下图所示)。因此推荐使用纯文本来做表头,且表头不要有一些自定义的格式。
目前多维表格中暂不支持列中包含公式或计算列。
表格内容若是“飞书云文档链接”,则一般会自动转为标题,此时导入目标数据源后,也会是标题形式。
若需要导入文档链接,需要在表格中进行以下操作: