您可以使用 Dataflow 作业构建器蓝图将基于云的存储空间(Cloud Storage 或 Amazon S3)中的现有 Apache Parquet 文件添加到 Lakehouse 中的 Apache Iceberg 表。
此过程使用 IcebergAddFiles
转换.
如果您的 Parquet 文件位于 Cloud Storage 中,此转换会将这些文件注册到 Lakehouse,而无需移动或重写底层数据。如果您的文件位于 Amazon S3 等外部存储系统中,则这些文件会复制到 Cloud Storage,以便通过 Lakehouse 更快地查询,然后进行注册。
使用以下连接详细信息将 Parquet 文件从基于云的存储空间添加到 Lakehouse 中的 Apache Iceberg 表。
准备工作
启用 Dataflow、BigQuery 和 Lakehouse API。
如需获得创建资源所需的权限,请让管理员向您授予项目的所需 Identity and Access Management (IAM) 角色。
创建 Lakehouse for Apache Iceberg 目录、命名空间和表,以便将数据导入其中。
创建基于云的存储桶(Cloud Storage 或 Amazon S3),并将 Parquet 文件上传到该存储桶。
如果您使用的基于云的存储桶不是 Google 的 Cloud Storage,请创建一个 Cloud Storage 存储桶来存储作业错误日志。
支持和限制
使用 Dataflow 将基于云的存储空间中的 Parquet 文件导入 Lakehouse for Apache Iceberg 时,存在以下限制:
- 源数据必须采用 Apache Parquet 格式,并存储在 Cloud Storage 或 Amazon S3 中。
- 此功能仅支持批处理流水线。
将 Parquet 文件导入 Lakehouse
按照以下步骤,使用 Dataflow 作业构建器界面将 Parquet 文件从基于云的存储空间导入 Lakehouse 中的 Iceberg 表。
在 Google Cloud 控制台中,前往 Lakehouse for Apache Iceberg 页面。
选择要将数据导入其中的目录、命名空间和表。
在表详细信息 页面上,点击 导入表。
在导入配置 对话框中,选择将 Apache Parquet 文件中的表导入 Lakehouse(批量) 。
系统会打开 Dataflow 作业构建器 页面。
在 Sources 部分中:
打开已创建的 CreateGlobalInput 源条目。
在 YAML source configuration 编辑器部分中,在
elements序列中输入 Parquet 文件的一个或多个路径。为了提高导入效率,请在注册大量文件时指定多组文件( glob )。例如:
reshuffle: true elements: - gs://BUCKET_NAME/restaurant-data/2023/*.parquet - gs://BUCKET_NAME/restaurant-data/2024/*.parquet点击完成 。
在 Transforms 部分中:
点击 IcebergAddFiles 转换部分以将其打开。
在 Iceberg table 字段中,输入命名空间和表名称。例如:NAMESPACE .TABLE_NAME 。
在 目录 属性 下,配置以下项:
warehouse:目录的 Cloud Storage 位置。 例如,
gs://CATALOG_PATH。header.x-goog-user-project:您的 Google Cloud 项目 ID: PROJECT_ID。
点击完成 。
如果您要从 S3 迁移,则需要提供其他配置才能将 Parquet 文件复制到 Cloud Storage。如果您的文件已位于 Cloud Storage 中,则无需执行此操作。
点击 CopyFilesToGCS 转换部分以将其打开。
设置 gcs_file_path 配置参数的值,以提供要将临时文件复制到的完全限定 Cloud Storage 存储桶。我们建议使用 Lakehouse 数据仓库使用的同一 Cloud Storage 存储桶。
点击完成 。
1 点击 Dataflow Options 部分以将其打开。
- 点击添加其他流水线选项 以提供与 S3 相关的 Apache Beam 流水线选项 。例如,s3_region_name、s3_access_key_id、 s3_secret_access_key 及其对应的值。
在 Sinks 部分中:
点击 Write results sink 以将其打开。
在 JSON location 字段中,指定 Cloud Storage 位置和文件名以写入错误结果。例如:
gs://BUCKET_NAME/errors/errors.json点击完成 。
在 Dataflow Options 部分中,点击运行作业 。
如果您需要进一步自定义用于注册 Parquet 文件的 Dataflow 流水线,可以使用作业构建器表单或 YAML 编辑器来完成此操作。
检查作业输出
作业完成后,您可以在 BigQuery 中查询数据,以验证数据是否已注册到 Iceberg 表。
在 Dataflow 作业列表中,检查作业状态是否为成功 。
如果作业失败或出现错误,请查看 Cloud Storage 中的 JSON 错误日志文件以了解详情。
在 Google Cloud 控制台中,前往 BigQuery Studio 页面。
在查询编辑器中,输入 SQL 查询以检查表。您可以使用
PROJECT_ID.CATALOG>NAMESPACE.TABLE_NAME惯例进行查询。SELECT * FROM `PROJECT_ID.CATALOG>NAMESPACE.TABLE_NAME` LIMIT 10点击 运行。
查看查询结果 ,确保数据已正确处理。
后续步骤
- 如需了解详情,请参阅 关于 Lakehouse 运行时目录。
- 如需了解详情,请参阅 Dataflow 作业构建器界面 概览。