有没有办法通过redshift描述外部/频谱表?

在AWS Athena中,您可以编写

SHOW CREATE TABLE my_table_name;

,然后看到类似SQL的查询,该查询描述了如何构建表的架构。 它适用于在AWS Glue中定义了架构的表。对于在常规RDBMS中创建表,加载和浏览数据视图非常有用。

以这种方式与Athena交互是手动的,我想自动化创建具有与Redshift Spectrum中相同模式的常规RDBMS表的过程。

如何通过可通过psql运行的查询来做到这一点?还是有另一种方法可以通过aws-cli来做到这一点?

proxool 回答:有没有办法通过redshift描述外部/频谱表?

Redshift Spectrum 不支持SHOW CREATE TABLE语法,但是有些系统表可以传递相同的信息。我不得不说,它不如雅典娜返回的准备使用 sql有用。

表是

使用这些数据,您可以重建表格的DDL。

例如,可以使用CREATE TABLE格式获取列及其类型的列表:

select distinct
       listagg(columnname || ' ' || external_type,',\n') 
             within group ( order by columnnum ) over ()
from svv_external_columns
where tablename = '<YOUR_TABLE_NAME>'
and schemaname = '<YOUR_SCHEM_NAME>'

查询提供的输出类似于:

col1 int,col2 string,...

*)我使用的是listagg窗口函数,而不是聚合函数,因为显然listagg聚合函数只能与用户定义的表一起使用。笨蛋

本文链接:https://www.f2er.com/2990002.html

大家都在问