Lance 目录命名空间¶
Lance 目录命名空间是一个轻量级、简单的 1 级 Lance 命名空间,仅包含表列表。人们可以轻松地在任何本地或远程存储系统之上,使用 Lance 目录命名空间直接创建和使用 Lance 表。
目录命名空间映射到存储上的一个目录,我们称之为命名空间目录。Lance 表对应于命名空间目录中的一个子目录,其格式为<table_name>.lance
。我们称之为表目录。考虑以下命名空间目录布局示例
.
└── /my/dir1/
├── table1.lance/
│ ├── data/
│ │ ├── 0aa36d91-8293-406b-958c-faf9e7547938.lance
│ │ └── ed7af55d-b064-4442-bcb5-47b524e98d0e.lance
│ ├── _versions/
│ │ └── 9223372036854775707.manifest
│ └── _indices/
│ └── 85814508-ed9a-41f2-b939-2050bb7a0ed5-fts/
│ └── index.idx
├── table2.lance
└── table3.lance
这描述了一个 Lance 目录命名空间,其命名空间目录位于/my/dir1/
。它包含表table1
、table2
、table3
,分别位于表目录/my/dirs/table1.lance
、/my/dirs/table2.lance
、/my/dirs/table3.lance
。
配置¶
Lance 目录命名空间接受以下配置属性
属性 | 必需 | 描述 | 默认 | 示例 |
---|---|---|---|---|
根 |
否 | 表存储的命名空间根目录 | 当前工作目录 | /my/dir , s3://bucket/prefix |
storage.* |
否 | 特定于存储的配置选项 | storage.region=us-west-2 |
根路径¶
有 3 种方法可以指定根路径
- URI:遵循 RFC 3986 规范的 URI,例如
s3://mu-bucket/prefix
。 - 绝对 POSIX 存储路径:POSIX 标准存储中的绝对文件路径,例如
/my/dir
。 - 相对 POSIX 存储路径:POSIX 标准存储中的相对文件路径,例如
my/dir2
,./my/dir3
。根的绝对路径应从当前工作目录派生。
存储选项¶
带有 storage.
前缀的属性在删除前缀后直接传递给底层的 OpenDAL 存储系统。例如,storage.region
在传递到存储层时变为 region
。请访问 Apache OpenDAL 获取更多详情。
表存在性¶
如果具有特定名称的表目录存在并且包含非空的 _versions
子目录,则该表存在于 Lance 目录命名空间中。
在检查特定表是否存在或决定是否应列出表时,操作必须列出带有 _versions/
前缀的对象并检查是否存在任何对象。如果目录存在但目录中没有文件,则应将其视为不存在。