命名空间实现¶
一个 Lance 命名空间实现 是 Lance 命名空间规范的实现,更具体地说:
- 它满足所有 Lance 命名空间定义和概念。
- 它声明并实现了一系列受支持的 Lance 命名空间操作。
实现与存储¶
除了任何仅存储的实现(例如目录命名空间),Lance 表同时存在于存储和实现中。例如,对于Hive 命名空间,Lance 表同时存在于 HMS 和存储中。在这种设置下,管理 Lance 表有两种可能的方式。Lance 命名空间实现可以选择支持其中一种或两种:
实现管理表¶
实现管理的 Lance 表是完全由 Lance 命名空间实现管理的表。该实现必须维护有关 Lance 表最新版本的信息。对表的任何修改都必须通过该实现进行。如果用户绕过该实现直接修改存储中的底层表,则该实现不得将表的更改反映给命名空间用户。
此模式确保命名空间服务了解表中所有活动,从而可以完全执行表的任何治理和管理功能。
存储管理表¶
存储管理的 Lance 表是完全由存储管理但在 Lance 命名空间实现中具有元数据定义的表。该实现仅包含有关表目录位置的信息。期望工具根据 Lance 格式规范,根据表目录中的内容找到 Lance 表的最新版本。对表的修改可以直接针对存储进行,也可以作为对实现的请求进行,其中实现负责根据 Lance 格式规范将相应的更改应用于底层存储。
此模式对于现实世界的 ML/AI 工作流程更灵活,但实现失去了对表执行操作的完全可见性和控制,因此更难对存储管理的表强制执行任何治理和管理功能。
原生实现¶
原生 Lance 命名空间实现是在此 lance-namespace
仓库中维护的 Lance 命名空间实现。任何在该仓库之外的实现都被视为第三方实现。