雅典娜相当于 information_schema

Sim*_*onB 5 amazon-athena

对于背景,我来自 SQLServer 背景并大量使用系统表和信息模式,告诉我有关我的表和列的所有信息。

我没想到雅典娜有完全相同的力量,但目前对似乎可用的东西感到非常震惊和沮丧 - 除非我错过了什么?

例如,'describe mytable' - 一次只描述 1 个表。如何在一个结果中显示所有表的列?它也不输出表名,也不允许您手动将其添加为自定义列。

这些“show/list/describe”命令的所有结果似乎都生成了一个文本列表——而不是一个记录集,因此您不能将这些结果连接到其他表或视图中以生成更复杂的输出。

还有其他方法可以查询我的数据库内容吗?

提前致谢

Pio*_*sen 13

Athena 基于Presto。Presto 提供了information_schema模式,我检查过它可以在 Athena 中访问。

您可以运行例如这样的查询:

SELECT * FROM information_schema.columns;
Run Code Online (Sandbox Code Playgroud)

获取所有表的列列表。

您可以通过“数据库”过滤它:

SELECT * FROM information_schema.columns WHERE table_schema = '<databasename>';
Run Code Online (Sandbox Code Playgroud)

但是请注意,这些类型的查询不一定非常高效。