我们按如下方式创建了架构:
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访问权限,Full Athena访问权限和s3完全访问权限附加到红移群集
但是,当我们查询如下时,我们得到0条记录。请帮忙。
select count(*) from spectrum.Customer;
答案 0 :(得分:1)
如果查询从分区外部表返回零行,请检查是否已将分区添加到此外部表。 Redshift Spectrum仅扫描使用ALTER TABLE ... ADD PARTITION显式添加的Amazon S3位置中的文件。查询SVV_EXTERNAL_PARTITIONS视图以查找现有分区。为每个丢失的分区运行ALTER TABLE ADD ... PARTITION。
我有同样的问题。做到这一点,解决了我的问题。
P.S。显式运行ALTER TABLE命令以创建分区也可以自动化。