我是新来的Hive。我想捕获所有数据库中的表和相关元数据(如列、行数等)的列表。我要找的是某种脚本,我可以把它交给任何人,任何人都可以运行它,并通过将其写入文件来提供输出。
一种方法是编写一个mapreduce程序,该程序将连接到hive并提取这些信息。
另一种方法是以某种方式循环遍历表列表并获取这些信息。我知道 show tables
以及 describe table
命令,但不确定如何在脚本中使用这些命令以及如何运行此脚本。
我应该采取哪种方法?有哪些其他选项/方法可用于执行此任务?谢谢你的帮助[对于rdbms,我可以通过在系统目录表上编写一个sql查询来实现这一点。]
3条答案
按热度按时间jmo0nnb31#
我将使用spark、mapreduce或hpl/sql循环遍历表列表(如您所述),然后使用各种show语句获取所需的数据。我将首先研究hpl/sql方法,以便它可以作为任何配置单元查询运行,然后如果第一种方法不起作用,我将尝试使用spark。
alen0pnh2#
使用配置单元元存储API是一种可能的解决方案。请参阅hivemetastore API
你也可以看看webhcat apishcat的Hive
ttisahbt3#
我相信您需要将配置单元metastore配置为使用mysql或oracle,然后您可以查询mysql或oracle数据库中的sys表并获得所需的内容。默认情况下,配置单元使用derby数据库
看到了吗https://dzone.com/articles/how-configure-mysql-metastore
希望这有帮助