Lance Unity 命名空间¶
Lance Unity 命名空间是使用 Unity Catalog 的实现。有关 Unity Catalog 的更多详细信息,请阅读Unity Catalog 文档。
配置¶
Lance Unity 命名空间接受以下配置属性
属性 | 必需 | 描述 | 默认 | 示例 |
---|---|---|---|---|
endpoint(端点) |
是 | Unity Catalog REST API 端点 | https://:8080 |
|
api_path(API 路径) |
否 | API 路径前缀 | /api/2.1/unity-catalog |
/api/2.1/unity-catalog |
auth_token(认证令牌) |
否 | 用于认证的 Bearer 令牌 | dapi123456789abcdef |
|
catalog(目录) |
是 | 要使用的 Unity Catalog 名称 | main(主) |
|
connect_timeout(连接超时) |
否 | HTTP 连接超时(秒) | 10 | 30 |
read_timeout(读取超时) |
否 | HTTP 读取超时(秒) | 60 | 120 |
max_retries(最大重试次数) |
否 | 失败请求的最大重试次数 | 3 | 5 |
根 |
否 | Unity Catalog 上 Lakehouse 的存储根位置 | 当前工作目录 | /my/dir , s3://bucket/prefix |
storage.* |
否 | 访问表的附加存储配置 | storage.region=us-west-2 |
身份验证¶
Unity 命名空间支持以下身份验证方法
- Bearer 令牌:使用有效的 Unity Catalog 访问令牌设置
auth_token
- 无身份验证:适用于本地或不安全的 Unity Catalog 部署
命名空间映射¶
Unity Catalog 服务器提供一个三级命名空间层次结构。
- Unity Catalog 中的目录映射到一级 Lance 命名空间
- Unity Catalog 中的模式(数据库)映射到二级 Lance 命名空间
- 它们共同形成一个与 Unity 结构匹配的三级 Lance 命名空间
表定义¶
Lance 表在 Unity Catalog 中显示为表对象,并具有以下要求
table_type
必须设置为EXTERNAL
以指示这不是 Unity 托管表data_source_format
应为TEXT
(Unity Catalog 不识别LANCE
格式,因此我们使用TEXT
作为外部表的通用格式)storage_location
必须指向 Lance 表的根位置columns
必须提供从 Lance 的 Arrow 模式转换为 Unity 列格式的表模式properties
必须遵循- 有一个键
table_type
设置为lance
(不区分大小写) - 有一个键
managed_by
设置为storage
或impl
(不区分大小写)。如果未设置,则默认为storage
- 有一个键
version
设置为表的最新数字版本号。此字段仅在managed_by=impl
时受尊重
- 有一个键
实施托管表的额外要求¶
对实施托管的 Lance 表的更新必须使用 Unity Catalog 的表版本控制机制,通过 UpdateTable API 进行条件更新。必须原子地更新version
属性以防止并发修改冲突。