【问题标题】:Getting 0 rows while querying external table in redshift在 redshift 中查询外部表时获取 0 行
【发布时间】:2017-10-31 13:13:46
【问题描述】:

我们创建的架构如下:

create external schema spectrum
from data catalog
database 'test'
iam_role 'arn:aws:iam::20XXXXXXXXXXX:role/athenaaccess'
create external database if not exists;   

及表格如下:

create external table spectrum.Customer(
Subr_Id integer,
SUB_CURRENTSTATUS varchar(100),
AIN integer,
ACCOUNT_CREATED timestamp,
Subr_Name varchar(100),
LAST_DEACTIVATED timestamp)
partitioned by (LAST_ACTIVATION timestamp)
row format delimited
fields terminated by ','
stored as textfile
location 's3://cequity-redshiftspectrum-test/'
table properties ('numRows'='1000');

访问权限如下:

athenaQuickSight 访问、完全 Athena 访问和 s3 完全访问的角色附加到 redshift 集群

但是,当我们如下查询时,我们得到 0 条记录。请帮忙。

select count(*) from spectrum.Customer;

【问题讨论】:

    标签: amazon-athena amazon-redshift-spectrum


    【解决方案1】:

    如果您的查询从已分区的外部表返回零行,请检查是否已将分区添加到此外部表。 Redshift Spectrum 仅扫描已使用 ALTER TABLE ... ADD PARTITION 显式添加的 Amazon S3 位置中的文件。查询SVV_EXTERNAL_PARTITIONS 视图以查找现有分区。为每个缺失的分区运行 ALTER TABLE ADD … PARTITION。

    Reference

    我有同样的问题。执行上述操作,解决了我的问题。

    附:显式运行 ALTER TABLE 命令来创建分区也可以自动化。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-02
    • 2023-01-16
    • 1970-01-01
    • 2022-01-22
    • 2019-08-19
    • 2021-01-12
    • 1970-01-01
    • 2015-04-20
    相关资源
    最近更新 更多