Lance Hive Namespace¶
Lance Hive Namespace is an implementation using Apache Hive MetaStore (HMS). For more details about HMS, please read HMS AdminManual 2.x and HMS AdminManual 3.x.
Namespace Mapping¶
A HMS server can be viewed as the root Lance namespace.
For HMS 2.x and below, a database in HMS maps to the first level Lance namespace to form a 2-level Lance namespace as a whole.
For HMS 3.x and above, a catalog in HMS maps to the first level Lance namespace, and a database in HMS maps to the second level Lance namespace to form a 3-level Lance namespace as a whole.
Table Definition¶
A Lance table should appear as a Table object in HMS with the following requirements:
- the
tableType
must be set asEXTERNAL_TABLE
to indicate this is not a managed Hive table - the
location
instorageDescriptor
must point to the root location of the Lance table - the
parameters
must follow:- there is a key
table_type
set tolance
(case insensitive) - there is a key
managed_by
set to eitherstorage
orimpl
(case insensitive). If not set, default tostorage
- there is a key
version
set to the latest numeric version number of the table. This field will only be respected ifmanaged_by=impl
- there is a key
Requirement for Implementation Managed Table¶
An update to the implementation managed table must use Hive's atomic update feature (HIVE-26882)
and use the version
parameter value to perform conditional update through alter_table_with_environment_context