You need to enable JavaScript to run this app.
文档中心
大数据研发治理套件

大数据研发治理套件

复制全文
下载 pdf
Lance
配置 Lance 任务
复制全文
下载 pdf
配置 Lance 任务

Lance 是面向分析与向量数据场景的列式数据集格式。DataSail 支持通过 EMR Serverless 的 LAS Catalog 访问 Lance 表,并进行离线批量读取和写入。本文为您介绍 Lance 数据同步的能力支持情况。

1 使用前提

已完成 Lance 数据源配置操作,详见配置 Lance 数据源。

2 离线同步任务开发

2.1 新建任务

Lance 数据源测试连通性成功后,可进入数据开发页面,新建 Lance 相关通道任务。新建任务方式详见离线数据同步。

2.2 可视化配置说明

任务创建成功后,您可根据实际场景,配置 Lance 离线读、Lance 离线写等通道任务。

2.2.1 Lance 离线读

Image
数据来源选择 Lance,并完成以下相关参数配置,其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。

参数

说明

*数据源类型

下拉选择 Lance。

*数据源名称

已在数据源管理中注册成功的 Lance 数据源,下拉可选。若还未建立相应数据源,可单击数据源管理按钮,前往创建 Lance 数据源。

*数据表

需要采集的数据表名称。可输入表名称关键词后,下拉选择 LAS Catalog 中已存在且 table_type=lance 的表。

数据过滤

填写可下推到 Lance 扫描的过滤表达式,减少读取数据量。
只同步符合所填过滤条件的数据,直接填写 where 后的过滤 SQL 语句,例如 id=48。暂不支持根据 limit 关键字过滤。如果不配置,默认会同步全量数据。

注意

Reader 按 Lance Fragment 创建并行读取切片。实际并行度受 Fragment 数量、任务并行度和资源配置共同影响。

2.2.2 Lance 离线写

Image
数据目标端选择 Lance,并完成以下相关参数配置:

参数

说明

*目标类型

数据去向目标类型选择 Lance。

*数据源名称

已在数据源管理中注册成功的 Lance 数据源,下拉可选。

*数据表

所选数据源下需数据写入的表名,下拉可选。目标 Lance 表需已在 LAS Catalog 中创建。

*写入方式

支持 overwrite、append 和 upsert。

  • overwrite:使用本次任务结果覆盖目标数据集内容。
    • 适用场景:全量刷新。执行前应确认目标表和权限。
  • append:在现有 Lance 数据集中追加新数据。
    • 适用场景:新增明细、分批导入。
  • upsert:按唯一键更新匹配记录并插入未匹配记录。
    • 适用场景:增量更新、维表合并。

*唯一键

Lance 数据表选择完成后,可下拉选择一个或多个目标表字段作为 upsert 匹配键。

注意

  • 当写入方式选择 upsert 时,需设置该参数。
  • Upsert 会创建临时数据并执行合并,建议唯一键具备稳定的业务语义,并尽量避免 null 值和高重复值,以确保合并结果准确。当任务失败后重试时,DataSail 会按照任务状态处理临时数据。

2.2.3 字段映射

数据来源和目标端配置完成后,需要指定来源和目标端的字段映射关系,根据字段映射关系,数据集成任务将源端字段中的数据,写入到目标端对应字段中。
字段映射支持选择基础模式和转换模式配置映射:

注意

基础模式和转换模式不支持互相切换,模式切换后,将清空现有字段映射中所有配置信息,一旦切换无法撤销,需谨慎操作。

  • 转换模式:
    字段映射支持数据转换,您可根据实际业务需求进行配置,将源端采集的数据,事先通过数据转换后,以指定格式输入到目标端数据库中。
    转换模式详细操作说明详见4.1 转换模式
    在转换模式中,你可依次配置:来源节点、数据转换、目标节点信息:

    配置节点

    说明

    来源节点

    配置数据来源 Source 节点信息:

    • 节点名称:自定义输入来源节点名称信息,只允许由数字、字母、下划线、-和.组成;且长度不能超过10。
    • 数据字段:通过自动添加、手动添加等方式添加数据来源字段信息。

    配置完成后,单击确认按钮,完成来源节点配置。

    数据转换

    单击数据转换右侧添加按钮,选择 SQL 转换方式,配置转换信息和规则:

    • 节点名称:自定义输入来源节点名称信息,只允许由数字、字母、下划线、-和.组成;且长度不能超过10。
    • SQL 脚本:输入 SQL 脚本转换规则,目前仅支持添加一个转换的 SQL 语句,且不能包括 “;”。

    配置完成后,单击确认按钮,完成数据转换节点配置。SQL 脚本示例详见4.1.2 添加转换节点。

    目标节点

    配置目标节点 Sink 信息:

    • 节点名称:自定义输入来源节点名称信息,只允许由数字、字母、下划线、-和.组成;且长度不能超过10。
    • 数据字段:通过自动添加、手动添加等方式添加数据目标字段信息。

    配置完成后,单击确认按钮,完成目标节点配置。

  • 基础模式:

    您可通过以下三种方式操作字段映射关系:

    • 自动添加:单击自动添加按钮,根据两端数据表信息,可以自动填充来源和目标的字段信息。
    • 手动添加:单击手动添加按钮,可以手动编辑来源和目标的字段信息,可以逐个添加。
    • 移动\删除字段:您也可以根据需要移动字段映射顺序或删除字段。

说明

在指定字段映射关系时,需检查字段名称、顺序和类型是否兼容。建议遵循以下原则:

  • 写入前确认目标 Lance 表 Schema 已包含全部目标字段。
  • Decimal 的精度和小数位需与目标 Schema 兼容。
  • Array、Map、Struct 等复杂类型的嵌套层级和子字段类型需一致。
  • Upsert 唯一键字段需参与映射,且目标表中存在同名或对应字段。
  • 使用自动字段映射后仍需人工检查类型收窄、日期时区和无符号整数边界。

2.4 高级参数

注意

高级参数会影响读取内存、文件布局和 upsert 性能。除非已有明确调优目标,建议先使用默认值,并通过小规模任务验证后再调整。

2.4.1 Lance 离线读高级参数

参数

默认值

说明

job.reader.filter

无

设置 Lance 过滤表达式,支持过滤下推。

job.reader.batch_size

512

设置单批读取行数。

job.reader.version

最新版本

读取指定 Lance 数据集版本;未配置时读取任务启动时可见的最新版本。

job.reader.block_size

引擎默认值

设置读取块大小。

job.reader.index_cache_size

引擎默认值

设置索引缓存大小。

job.reader.metadata_cache_size

引擎默认值

设置元数据缓存大小。

job.reader.verify_filter_pushdown

false

是否校验过滤条件已经下推;校验失败时任务会报错。

job.reader.topN_push_down

true

是否启用 TopN 下推。

2.4.2 Lance 离线写高级参数

参数

默认值

说明

job.writer.max_rows_per_file

引擎默认值

控制单个数据文件的最大行数。

job.writer.max_rows_per_group

引擎默认值

控制每个行组的最大行数。

job.writer.max_bytes_per_file

引擎默认值

控制单个数据文件的最大字节数。

job.writer.data_storage_version

引擎默认值

指定 Lance 数据存储版本。仅在确认下游兼容性后调整。

job.writer.enable_stable_row_ids

false

是否启用稳定 Row ID。

job.writer.upsert_duplicate_check_max_keys

5000000

Upsert 重复键检查的最大键数量;数据量较大时需评估内存和性能。

3 最佳实践与常见问题

3.1 最佳实践

  • 优先使用同地域内网访问 LAS 和 TOS,降低网络延迟和公网成本。
  • 使用列裁剪和过滤下推减少扫描量。
  • Append 适合持续追加,overwrite 适合可重复生成的全量结果,upsert 适合具有稳定唯一键的增量数据。
  • 调整文件大小参数时同时考虑对象数量、并行度和下游查询性能。
  • 升级版本或调整复杂类型 Schema 前,先在测试表验证读写兼容性。

3.2 找不到表或提示不是 Lance 表

检查数据源配置的 Catalog 和 Database、任务中的表名,以及 LAS Catalog 表参数中的 table_type=lance。目标表需提前创建。

3.3 提示不支持表路径协议

检查表存储位置是否使用 tos://、s3://、s3a:// 或 s3n://,并确认路径以 .lance 结尾。其他本地文件或 HDFS 协议当前不支持。

3.4 Upsert 任务失败

确认已配置唯一键,所有唯一键字段均存在于来源映射和目标 Schema 中,并检查唯一键是否存在大量重复或 null。数据量较大时还需评估 upsert_duplicate_check_max_keys 和任务内存。

3.5 连接测试成功但任务仍无权限

连接测试主要验证基础身份和服务连通性。任务运行还需要访问具体 Catalog 表和 TOS 对象,请检查表级元数据权限、Bucket/Object 权限以及资源组网络。

最近更新时间:2026.07.24 17:40:52
这个页面对您有帮助吗?
有用
有用
无用
无用