使用 Dataflow 作业构建器将 Delta Lake 表导入无边界 Lakehouse

借助 Dataflow 作业构建器,您可以通过低代码或无代码界面将 Cloud Storage Delta Lake 表直接导入无边界 Lakehouse,从而降低大规模数据迁移的复杂性。自动扩缩的 Dataflow 批量作业会将数据复制到 Lakehouse 中的目标 Apache Iceberg 表,并自动为新表创建架构,而现有表则需要匹配的架构。

导入数据后,您可以选择启用持续迁移。

准备工作

如需导入 Delta Lake 表数据,您需要满足以下条件:

  1. 启用 Dataflow、BigQuery 和 Lakehouse API(如果尚未启用)。

    启用 API 所需的角色

    如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 拥有此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。

    启用 API

  2. 如需获得创建资源所需的权限,请让管理员向您授予项目的所需 Identity and Access Management (IAM) 角色。

  3. 存储在 Cloud Storage 存储桶中的现有 Delta Lake 表。表目录必须是有效的 Delta Lake 表根目录,其中包含 Parquet 数据文件和 _delta_log/ 事务日志目录。

  4. 要将数据导入到的 Lakehouse Iceberg 目录、命名空间和表。

支持和限制

使用 Dataflow 将 Delta Lake 表数据导入 Lakehouse 具有以下限制:

  • 您必须使用批量流水线作业才能使用此功能。
  • 对于现有目标表,系统不会修改其架构。目标表架构必须正确映射到源 Delta Lake 表架构。
  • 源数据必须是存储在 Cloud Storage 中的有效 Delta Lake 表。表根目录必须包含 Parquet 数据文件和 Delta Lake 创建的 _delta_log/ 事务日志目录(包含 JSON 或 Parquet 日志文件)。
  • Delta Lake 表源不支持 Amazon S3。

导入 Delta Lake 表

如需将 Delta Lake 表导入 Lakehouse,请完成以下步骤:

  1. 在 Google Cloud 控制台中,前往 Lakehouse 运行时目录页面。

    前往 Lakehouse 运行时目录

  2. 选择要将数据导入到的目录、命名空间和表。

  3. 在表详情页面上,点击 导入表,然后选择从 Delta Lake(批量)。

    系统会打开 Dataflow 作业构建器页面,并加载 Delta Lake to Lakehouse 蓝图。

  4. 在来源部分中:

    1. 如需展开 ReadFromDeltaLake Delta Lake 表来源面板,请点击 展开箭头。

    2. 在表路径字段中,输入 Delta Lake 表根目录(包含数据文件和 _delta_log/ 目录的目录)的 Cloud Storage URI。例如 gs://BUCKET_NAME/tables/TABLE_NAME。

    3. 可选:在 Hadoop 配置属性字段中,配置从 Cloud Storage 读取数据所需的任何其他 Hadoop 配置属性。例如:fs.gs.impl=com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem。

    4. 点击完成。

  5. 在接收器部分中:

    1. 可选:查看 WriteToIceberg Lakehouse 表接收器面板。此面板中的信息(例如 Lakehouse 表、目录名称和仓库位置)通常会预先填充。

    2. 点击完成。

  6. 在 Dataflow 选项部分中,点击运行作业。

如果您需要进一步自定义用于导入 Delta Lake 表的 Dataflow 流水线,可以使用作业构建器表单或 YAML 编辑器。

检查作业输出

作业完成后,您可以在 BigQuery 中查询数据,以验证数据是否已复制到 Lakehouse 表。

  1. 在 Dataflow 作业列表中,检查作业状态是否为成功。

    转到作业

  2. 如果作业失败或出现错误,请查看作业日志或工作器日志了解详情。

  3. 在 Google Cloud 控制台中,前往 BigQuery Studio 页面。

    转到 BigQuery

  4. 在查询编辑器中,输入 SQL 查询以检查表。您可以使用 PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAME 惯例来查询:

    SELECT * FROM `PROJECT_ID`.`CATALOG`.`NAMESPACE`.`TABLE_NAME` LIMIT 10;
    
  5. 点击 运行。

  6. 查看查询结果,确保数据已正确处理。

可选。启用持续迁移

如需设置从 Delta Lake 到 Lakehouse 的端到端持续迁移,请完成以下一系列操作:

  1. 在输入 Delta Lake 表上启用 delta.enableChangeDataFeed 属性。
  2. 设置 delta.enableChangeDataFeed 属性后,执行初始表迁移到提交 ID 或时间戳。
  3. 根据工作负载要求选择的频率(提交 ID 或时间戳范围),为后续数据运行预定的 CDC 作业。

如需了解详情,请参阅使用 Dataflow 将 Delta Lake 变更数据捕获 (CDC) 数据迁移到 Lakehouse。

后续步骤