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 命名空间支持多种身份验证方法:
- 默认 AWS 凭证提供程序链:如果未提供明确的凭证,客户端将使用默认 AWS 凭证提供程序链。
- 静态凭证:设置
access_key_id
和secret_access_key
以获取基本 AWS 凭证。 - 会话凭证:另外提供
session_token
以获取临时 AWS 凭证。
命名空间映射¶
AWS Glue Data Catalog 可被视为 Lance 的根命名空间。Glue 中的数据库映射到第一级 Lance 命名空间,从而形成一个两级 Lance 命名空间。
表定义¶
当完全实现后,Lance 表应在 AWS Glue 中显示为具有以下要求的表对象:
TableType
必须设置为EXTERNAL_TABLE
,以表明这不是 Glue 管理的表。StorageDescriptor.Location
必须指向 Lance 表的根位置。Parameters
必须遵循。- 有一个键
table_type
设置为lance
(不区分大小写) - 有一个键
managed_by
设置为storage
或impl
(不区分大小写)。如果未设置,则默认为storage
- 有一个键
version
设置为表的最新数字版本号。此字段仅在managed_by=impl
时受尊重
- 有一个键
实施托管表的额外要求¶
对实现管理的 Lance 表的更新必须使用 AWS Glue 的 VersionId
,通过 UpdateTable API 进行条件更新。如果 VersionId
与预期版本不匹配,更新将失败以防止并发修改冲突。