跳到主要内容

Iceberg 数据源配置

本文简要介绍添加 Iceberg 数据源时,需要填写的配置说明。

CloudCanal 支持 Iceberg 3 种 Catalog 和 2 种存储方式,搭配关系为

  • AWS Glue + AWS S3
  • Nessie + MinIO / AWS S3
  • Rest + MinIO / AWS S3

CloudCanal 的 Iceberg 配置即由此支持关系展开。

操作路径

点击 数据源管理 > 新增数据源,选择 自建 选项卡下的 Iceberg 数据源类型。

通用配置

  • 网络地址:即 Catalog 服务地址,3 种方式对应的示例地址如下(<>内部分根据实际情况替换)。

    • AWS Glue : glue.<aws_glue_region_code>.amazonaws.com
    • Nessie : <nessie_server_ip>:19120/api/v1
    • Rest : <rest_server_ip>:<rest_server_port>
  • 版本号:根据 Iceberg 实际版本进行选择。

  • 描述:根据承载业务等信息进行数据源描述。

  • 物理位置:根据 Catalog 实际部署位置,就近选择,也可保持默认值,做标记用途。

额外参数

  • httpsEnabled:如果 Catalog 为 AWS Glue ,则需要为 true (即打开开关) ,其他 2 种,根据部署的 Catalog 服务 ssl 开闭状态进行选择。

  • catalogName:为 Catalog 取一个名称,无特殊规定。建议以 <Catalog类型>_catalog 进行命名,如 glue_catalog

  • catalogType:即 Catalog 类型,可选填充 GLUE / NESSIE / REST 之一。

  • catalogWarehouse:Iceberg 文件存储的根目录,如 s3://bladepipe-iceberg,则元数据和数据文件会基于目标存储 /bladepipe-iceberg 文件夹创建。

  • catalogProps:根据 Catalog 和存储方式的不同搭配,配置有所区别,如下所示(<>内容根据实际情况替换):

    • AWS Glue + AWS S3
    {
    "io-impl": "org.apache.iceberg.aws.s3.S3FileIO",
    "s3.endpoint": "https://s3.<aws_s3_region_code>.amazonaws.com",
    "s3.access-key-id": "<aws_s3_iam_user_access_key>",
    "s3.secret-access-key": "<aws_s3_iam_user_secret_key>",
    "s3.path-style-access": "true",
    "client.region": "<aws_s3_region>",
    "client.credentials-provider.glue.access-key-id": "<aws_glue_iam_user_access_key>",
    "client.credentials-provider.glue.secret-access-key": "<aws_glue_iam_user_secret_key>",
    "client.credentials-provider": "com.amazonaws.glue.catalog.credentials.GlueAwsCredentialsProvider"
    }
    • Nessie + AWS S3
    {
    "io-impl": "org.apache.iceberg.aws.s3.S3FileIO",
    "s3.endpoint": "https://s3.<aws_s3_region_code>.amazonaws.com",
    "s3.access-key-id": "<aws_s3_iam_user_access_key>",
    "s3.secret-access-key": "<aws_s3_iam_user_secret_key>",
    "s3.path-style-access": "true",
    "client.region": "<aws_s3_region_code>"
    }
    • Nessie + MinIO
    {
    "io-impl": "org.apache.iceberg.aws.s3.S3FileIO",
    "s3.endpoint": "http://<minio_server>:<minio_port>",
    "s3.access-key-id": "<minio_user>",
    "s3.secret-access-key": "<minio_password>",
    "s3.path-style-access": "true",
    "client.region": "us-east-1"
    }
    • Rest + AWS S3
    {
    "io-impl": "org.apache.iceberg.aws.s3.S3FileIO",
    "s3.endpoint": "https://s3.<aws_s3_region_code>.amazonaws.com",
    "s3.access-key-id": "<aws_s3_iam_user_access_key>",
    "s3.secret-access-key": "<aws_s3_iam_user_secret_key>",
    "s3.path-style-access": "true",
    "client.region": "<aws_s3_region_code>"
    }
    • Rest + MinIO
    {
    "io-impl": "org.apache.iceberg.aws.s3.S3FileIO",
    "s3.endpoint": "http://<minio_server>:<minio_port>",
    "s3.access-key-id": "<minio_user>",
    "s3.secret-access-key": "<minio_password>",
    "s3.path-style-access": "true",
    "client.region": "us-east-1"
    }