【发布时间】:2021-02-25 16:30:07
【问题描述】:
作为参考,我通过sqlalchemy 连接到amazon-athena 基本上使用:
create_engine(
f'awsathena+rest://:@athena.{myRegion}.amazonaws.com:443/{athena_schema}?s3_staging_dir={myS3_staging_path}',
echo=True)
在大多数遵循 ANSI-SQL 标准的关系数据库中,我可以通过运行以下命令以编程方式获取表的 partition 列:
select *
from information_schema.columns
where table_name='myTable' and table_schema='mySchema'
and extra_info = 'partition key'
但是,bucketing 或 clustering 列似乎没有被类似地标记。我知道我可以通过以下方式访问这些信息:
show create table mySchema.myTable
但我对干净的编程解决方案感兴趣(如果存在的话)。我试图不重新发明轮子。请告诉我如何执行此操作或将我指向相关文档。
提前谢谢你。
PS:如果关于表格的其他信息,例如文件位置和存储格式也可以通过编程方式访问,那就太好了。
【问题讨论】:
标签: sql hive sqlalchemy presto amazon-athena