0

我有点期望这会在那里,但显然不是。Hive 不会在其环境中公开其自己的元数据。例如,像 Oracle 一样,它允许您对创建的表使用“user_tables”。

我理解并欣赏 hive 元数据在外部存储在 RDBMS 中的事实,但作为构建不同类型查询的用户,访问我正在工作的环境的上下文元数据很有用。

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

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

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

4

2 回答 2

2

Hive 版本3.0.0在 hive 中引入了 information_schema 数据库本身。我们可以在哪里探索基本的 Hive 元数据。还有另一个名为sys的数据库,它包含所有与元数据相关的信息。

您可以参考以下链接。

https://issues.apache.org/jira/browse/HIVE-1010

于 2020-12-24T14:13:22.203 回答
0

您写道:“我理解并欣赏配置单元元数据外部存储在 RDBMS 中的事实”。然后尝试 JDBC 存储处理程序:https ://github.com/qubole/Hive-JDBC-Storage-Handler

您可以像在此示例中一样在 Hive 中创建表,并像任何其他本机 Hive 表一样查询它:

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"
);
于 2018-04-12T19:16:21.120 回答