对于背景,我来自 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)
但是请注意,这些类型的查询不一定非常高效。