跳到内容

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 命名空间支持以下身份验证方法

  1. Bearer 令牌:使用有效的 Unity Catalog 访问令牌设置auth_token
  2. 无身份验证:适用于本地或不安全的 Unity Catalog 部署

命名空间映射

Unity Catalog 服务器提供一个三级命名空间层次结构。

  • Unity Catalog 中的目录映射到一级 Lance 命名空间
  • Unity Catalog 中的模式(数据库)映射到二级 Lance 命名空间
  • 它们共同形成一个与 Unity 结构匹配的三级 Lance 命名空间

表定义

Lance 表在 Unity Catalog 中显示为对象,并具有以下要求

  1. table_type必须设置为EXTERNAL以指示这不是 Unity 托管表
  2. data_source_format应为TEXT(Unity Catalog 不识别LANCE格式,因此我们使用TEXT作为外部表的通用格式)
  3. storage_location必须指向 Lance 表的根位置
  4. columns必须提供从 Lance 的 Arrow 模式转换为 Unity 列格式的表模式
  5. properties必须遵循
    1. 有一个键table_type设置为lance(不区分大小写)
    2. 有一个键managed_by设置为storageimpl(不区分大小写)。如果未设置,则默认为storage
    3. 有一个键version设置为表的最新数字版本号。此字段仅在managed_by=impl时受尊重

实施托管表的额外要求

对实施托管的 Lance 表的更新必须使用 Unity Catalog 的表版本控制机制,通过 UpdateTable API 进行条件更新。必须原子地更新version属性以防止并发修改冲突。