【问题标题】:Does Apache Hive have an equivalent to PostgreSQL's pg_dump?Apache Hive 是否具有与 PostgreSQL 的 pg_dump 等效的功能?
【发布时间】:2017-03-02 06:21:03
【问题描述】:

我在 Apache Hive 中有一堆数据库。我想输出它们的结构——表名、列名、键、关系等。相当于 PostgreSQL 的pg_dump 将是完美的。有这样的东西吗?

【问题讨论】:

  • 只是出于好奇 - 您希望在 Hive 中找到什么样的“键”和“关系”?
  • 说实话,我不确定。我刚刚获得了一堆数据并开始使用 Hive。我认为它的结构类似于 SQL...这就是为什么我要寻找数据及其结构的高级描述 :)
  • 如果您只想查看表结构,那么最好的方法是连接到链接到您的配置单元(mysql 或 derby)的数据库并查看架构。您可以在 hive-site.xml 文件中找到这些详细信息

标签: hive


【解决方案1】:

我知道做这类事情的三种方法。这些都不好玩。

A. 使用一些自定义脚本和 Beeline(或 Hive CLI)对所有表和视图进行逆向工程

  • 运行show databases 查询
  • 解析结果,迭代show tables in **
  • 解析结果,迭代show CREATE TABLE **.**
  • ...和show partitions **.**show indexes **.** (但您必须自己重建 ALTER TABLE / CREATE INDEX 命令)
  • 如果你有授权策略,也运行show principals 并在show grant ** 上迭代(但你必须自己重建 CREATE ROLE 和 GRANT 命令)

B. 开发您的自定义 Java 程序以连接到 MetaStore 服务、扫描数据库、扫描表/视图、扫描分区、扫描StorageDescriptor、扫描列、扫描所有内容和它的狗……得到你真正想要的东西。祝你好运。 Some pointers here.

C. 直接连接到 MetaStore 数据库后端(Derby、MySQL、Postgres...),然后尝试了解所需内容的位置并选择 随便你

【讨论】:

  • 请注意,对于使用 AVRO SerDe 或链接到 HBase 后端的表,您可能看不到任何列;完整的模式将在 TBLPROPERTIES 中描述(可能只是指向一个 URL)。
猜你喜欢
  • 2018-05-06
  • 1970-01-01
  • 1970-01-01
  • 2011-05-12
  • 1970-01-01
  • 1970-01-01
  • 2011-06-13
  • 1970-01-01
  • 2012-03-21
相关资源
最近更新 更多