我在 Hive 上有一个包含许多数据库和表的数据库,现在我该如何搜索并找到感兴趣的列?

Posted

技术标签:

【中文标题】我在 Hive 上有一个包含许多数据库和表的数据库,现在我该如何搜索并找到感兴趣的列?【英文标题】:I have a database full of many databases and Tables on Hive, now how could I search and find the column of interest? 【发布时间】:2021-10-19 03:46:28 【问题描述】:

总之,我意识到 Hue(Hive/Impala) 不像 Microsoft SQL Server,您运行以下命令来查找感兴趣的表。

Select * from information_schema.columns where column_name like '%The_Table_of_Interest%'

第一种情况:假设我知道我的数据库是什么,我通过搜索表并找到感兴趣的列将注意力集中在正确的表上。

第二个场景:我什至不知道我需要什么数据库来查找正确的表以及感兴趣的列。

我意识到,在 Hue 中,没有查找列的选项。我只能看到表格搜索!

话虽如此,对于上述两种情况,应该有一种方法可以找到感兴趣的列。

场景2当然很难接近,但是第一个看起来更容易一些。

现在,我进行了研究,并在 Shell 命令行中运行了一些代码,这可能有助于找到目标列。但是,这需要对我不太熟悉的层进行一些进一步的调查。(谈到 Metaset 等)

因此,这是我的问题。

假设我们正在讨论第一种情况,现在我如何在您完全不了解表格的情况下搜索和查找列。我无法猜测并尝试每个表格来找到正确的表格来找到我正在寻找的列。你有什么建议,你的策略是什么?先感谢您。 :)

【问题讨论】:

【参考方案1】:

2019 年美好的一天

这里有一些命令可以帮助您探索您有权访问的不同表:

查找表或数据库

show tables like 'ben*'

看表定义

show create table <table>;

获取表信息

describe my_table_01;

获取更多信息

describe extended table_name

以漂亮的格式获取更多信息

describe formatted table_name;

如果您有权访问 Apache Ranger,我还发现查看表权限很有用。 (看看谁在用什么)

Apache Atlas 如果您使用它,它有助于查看数据的来源。(它保存数据沿袭信息,可能有助于您了解事物的工作原理)

别忘了您可以查看 HDFS 来查找数据库、表(如果它们位于 /hive/warehouse/ 中)。这也有助于了解事物的创建时间。

【讨论】:

Apache Ranger - 对于查看人们正在运行的查询非常有用,并且可以帮助您查看有用的模式。 谢谢达曼和马特。是的,我需要访问摄取到数据湖的整个数据元集。让我们看看如何更深入地挖掘它。问题:如何深入使用 HDFS 和 /hive/warehouse。你能给我举个例子吗?

以上是关于我在 Hive 上有一个包含许多数据库和表的数据库,现在我该如何搜索并找到感兴趣的列?的主要内容,如果未能解决你的问题,请参考以下文章

经典解密数据库和表的创建

使用Hive SQL查询Iceberg表的正确姿势

使用Hive SQL查询Iceberg表的正确姿势

Hadoop之Hive数据的导入与导出(DML)

Hive学习第三课 创建数据库和删除数据库

MySQL处理数据库和表的命令