跳到内容

Lance Glue 命名空间

Lance Glue 命名空间是使用 AWS Glue Data Catalog 实现的。有关 AWS Glue 的更多详细信息,请阅读AWS Glue Data Catalog 文档

配置

Lance Glue 命名空间接受以下配置属性:

属性 必需 描述 默认 示例
catalog_id Glue Catalog 的 Catalog ID(默认为 AWS 账户 ID) 123456789012
endpoint 用于 API 兼容元存储的自定义 Glue 服务端点 https://glue.example.com
region 所有 Glue 操作的 AWS 区域 us-west-2
access_key_id 用于静态凭证的 AWS 访问密钥 ID
secret_access_key 用于静态凭证的 AWS 秘密访问密钥
session_token 用于临时凭证的 AWS 会话令牌
Glue Catalog 上 Lakehouse 的存储根位置 当前工作目录 /my/dir, s3://bucket/prefix
storage.* 访问表的附加存储配置 storage.region=us-west-2

身份验证

Glue 命名空间支持多种身份验证方法:

  1. 默认 AWS 凭证提供程序链:如果未提供明确的凭证,客户端将使用默认 AWS 凭证提供程序链。
  2. 静态凭证:设置 access_key_idsecret_access_key 以获取基本 AWS 凭证。
  3. 会话凭证:另外提供 session_token 以获取临时 AWS 凭证。

命名空间映射

AWS Glue Data Catalog 可被视为 Lance 的根命名空间。Glue 中的数据库映射到第一级 Lance 命名空间,从而形成一个两级 Lance 命名空间。

表定义

当完全实现后,Lance 表应在 AWS Glue 中显示为具有以下要求的对象:

  1. TableType 必须设置为 EXTERNAL_TABLE,以表明这不是 Glue 管理的表。
  2. StorageDescriptor.Location 必须指向 Lance 表的根位置。
  3. Parameters 必须遵循。
    1. 有一个键table_type设置为lance(不区分大小写)
    2. 有一个键managed_by设置为storageimpl(不区分大小写)。如果未设置,则默认为storage
    3. 有一个键version设置为表的最新数字版本号。此字段仅在managed_by=impl时受尊重

实施托管表的额外要求

对实现管理的 Lance 表的更新必须使用 AWS Glue 的 VersionId,通过 UpdateTable API 进行条件更新。如果 VersionId 与预期版本不匹配,更新将失败以防止并发修改冲突。