Lance Hive 命名空间¶
Lance Hive 命名空间是使用 Apache Hive MetaStore (HMS) 的实现。有关 HMS 的更多详细信息,请阅读 HMS 管理手册 2.x 和 HMS 管理手册 3.x。
配置¶
Lance Hive 命名空间接受以下配置属性:
属性 | 必需 | 描述 | 默认 | 示例 |
---|---|---|---|---|
client.pool-size |
否 | HMS 客户端连接池的大小 | 3 | 5 |
根 |
否 | Hive Catalog 上湖仓的存储根位置 | 当前工作目录 | /my/dir , s3://bucket/prefix |
storage.* |
否 | 访问表的附加存储配置 | storage.region=us-west-2 |
特定版本配置¶
Hive 2.x:使用上面列出的配置属性。
Hive 3.x:使用与 Hive 2.x 相同的配置属性,并为 Catalog 级别操作额外添加一个 Catalog 名称常量 (hive
)。
命名空间映射¶
HMS 服务器可以被视为 Lance 的根命名空间。
对于 HMS 2.x 及以下版本,HMS 中的数据库映射到第一级 Lance 命名空间,从而形成一个整体的 2 级 Lance 命名空间。
对于 HMS 3.x 及以上版本,HMS 中的 Catalog 映射到第一级 Lance 命名空间,HMS 中的数据库映射到第二级 Lance 命名空间,从而形成一个整体的 3 级 Lance 命名空间。
表定义¶
Lance 表应在 HMS 中显示为 Table 对象,并满足以下要求:
tableType
必须设置为EXTERNAL_TABLE
,表示这不是一个托管的 Hive 表storageDescriptor
中的location
必须指向 Lance 表的根位置parameters
必须遵循以下规定- 有一个键
table_type
设置为lance
(不区分大小写) - 有一个键
managed_by
设置为storage
或impl
(不区分大小写)。如果未设置,则默认为storage
- 有一个键
version
设置为表的最新数字版本号。此字段仅在managed_by=impl
时受尊重
- 有一个键
实施托管表的额外要求¶
对实现管理的表的更新必须使用 Hive 的原子更新功能 (HIVE-26882),并使用 version
参数值通过 alter_table_with_environment_context 执行条件更新