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

svmlkihl  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(411)

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

nkhmeac6

nkhmeac61#

配置单元版本3.0.0在配置单元中引入了信息模式数据库本身。在那里我们可以探索基本的配置单元元数据。另外还有一个名为sys的数据库,它拥有所有与元数据相关的信息。
你可以参考下面的链接。
https://issues.apache.org/jira/browse/hive-1010

3pmvbmvn

3pmvbmvn2#

您写道:“我理解并欣赏这样一个事实,即配置单元元数据存储在rdbms的外部”。然后尝试jdbc存储处理程序:https://github.com/qubole/hive-jdbc-storage-handler
您可以像本例中那样在配置单元中创建表,并像查询任何其他本机配置单元表一样对其进行查询:

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"
);

相关问题