Impala:列出数据库中的所有表及其创建日期

Posted

技术标签:

【中文标题】Impala:列出数据库中的所有表及其创建日期【英文标题】:Impala: list all tables and their created dates in a database 【发布时间】:2016-11-10 21:06:26 【问题描述】:

在 Impala 中,是否可以列出给定数据库中的所有表以及每个表的创建日期?比如:

my_database:

TABLE     CREATED_DATE
-----------------------
table_1   2016-01-01
table_2   2016-02-12
table_3   2016-05-03

非常感谢!

【问题讨论】:

【参考方案1】:

我认为没有特定的命令可以执行您的要求:

我们通常做的是列出给定数据库中的所有表:

show tables in db_name

那么对于我们运行的每个表:

show create table table_name

查找显示创建时间时间戳的属性 transient_lastDdlTime'='1479222568'。您必须将其更改为“可读日期”。

您可以在 python 脚本上轻松完成此操作,安装 pyodbc 包和 cloudera Impala ODBC 驱动程序。

【讨论】:

【参考方案2】:

这实际上是非常简单的一个巨大的但是。通过对 Hive 元存储的直接 READONLY 访问 - 这可能会导致可能影响 impala 和 hive 性能的额外负载 - 您可以直接查询表属性。

元存储可能建立在许多不同的数据库上——我相信 mysql 和 postgres 都是选项。这是我基于 postgres 的 Metastore 的一个示例。

select "TBL_NAME", "CREATE_TIME" from "TBLS" limit 10;

【讨论】:

以上是关于Impala:列出数据库中的所有表及其创建日期的主要内容,如果未能解决你的问题,请参考以下文章

Impala随手记

从 impala 更新 vertica 中的巨大记录

MS SQL 2008 - 获取数据库中的所有表名及其行数

Cloudera Hadoop Impala - 提取上次刷新日期

Impala - 替换表分区中的所有数据

以可使用 Impala 查询的方式在包含复杂类型的配置单元表上创建日期限制视图?