Hive 在配置单元本身中公开配置单元元数据

Hive 在配置单元本身中公开配置单元元数据,hive,metadata,hive-metastore,Hive,Metadata,Hive Metastore,我有点期待它会出现,但显然不是。配置单元不在其环境中公开自己的元数据。例如,与Oracle一样,它允许您为创建的表使用“用户表” 我理解并欣赏这样一个事实,即配置单元元数据存储在RDBMS的外部,但是作为构建不同类型查询的用户,访问我工作环境的上下文元数据是非常有用的 既然HCatalog将元数据公开给任何愿意的人,为什么hive引擎不能获取相同的元数据并允许其可见呢 我知道在实现这一点的过程中可能会遇到一些挑战,但我想问的是,“是否有任何工作流程可以实现类似的目标?” 作为一个用户,我确实需要

我有点期待它会出现,但显然不是。配置单元不在其环境中公开自己的元数据。例如,与Oracle一样,它允许您为创建的表使用“用户表”

我理解并欣赏这样一个事实,即配置单元元数据存储在RDBMS的外部,但是作为构建不同类型查询的用户,访问我工作环境的上下文元数据是非常有用的

既然HCatalog将元数据公开给任何愿意的人,为什么hive引擎不能获取相同的元数据并允许其可见呢

我知道在实现这一点的过程中可能会遇到一些挑战,但我想问的是,“是否有任何工作流程可以实现类似的目标?”

作为一个用户,我确实需要它。

您写道:“我理解并欣赏hive元数据存储在RDBMS外部的事实。”。然后尝试JDBC存储处理程序:

您可以像本例中一样在配置单元中创建表,并像任何其他本机配置单元表一样查询它:

DROP TABLE HiveTable;
CREATE EXTERNAL TABLE HiveTable(
  id INT,
  id_double DOUBLE,
  names STRING,
  test INT
)
STORED BY 'org.apache.hadoop.hive.jdbc.storagehandler.JdbcStorageHandler'
TBLPROPERTIES (
  "mapred.jdbc.driver.class"="com.mysql.jdbc.Driver",
  "mapred.jdbc.url"="jdbc:mysql://localhost:3306/rstore",
  "mapred.jdbc.username"="root",
  "mapred.jdbc.input.table.name"="JDBCTable",
  "mapred.jdbc.output.table.name"="JDBCTable",
  "mapred.jdbc.password"="",
  "mapred.jdbc.hive.lazy.split"= "false"
);

配置单元版本3.0.0在配置单元中引入了信息模式数据库本身。在这里,我们可以探索基本的配置单元元数据。还有另一个名为sys的数据库,它包含所有元数据相关信息

您可以参考以下链接了解此信息