Redshift Spectrum查询从S3文件返回0行

我尝试了Redshift Spectrum。下面的两个查询都成功结束,没有任何错误消息,但是我无法在S3中获得上载文件的正确计数,即使该文件有超过300万条记录,它也只是返回0行计数。

-- Create External Schema
CREATE EXTERNAL SCHEMA spectrum_schema FROM data catalog 
database 'spectrum_db' 
iam_role 'arn:aws:iam::XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
create external database if not exists;

-- Create External Table

create EXTERNAL TABLE spectrum_schema.principals(
tconst VARCHAR (20),ordering BIGINT,nconst VARCHAR (20),category VARCHAR (500),job VARCHAR (500),characters VARCHAR(5000)
)
row format delimited
fields terminated by '\t'
stored as textfile
location 's3://xxxxx/xxxxx/'

我也尝试了“存储为实木复合地板”选项,结果是一样的。 我的iam角色具有“ s3:”,“ athena:”,“ glue:*”权限,并且已成功创建Glue表。

以防万一,我确认可以将同一S3文件成功复制到Redshift Cluster中的表中。因此,我得出结论,文件/数据本身没有问题。

如果我的过程或查询有问题。任何建议将不胜感激。

iCMS 回答:Redshift Spectrum查询从S3文件返回0行

由于您的DDL没有扫描任何数据,因此问题似乎在于它不了解s3中的实际数据。要弄清楚这一点,您只需使用AWS Glue搜寻器即可生成表。

一旦创建了表,您就可以将此表属性与在Glue数据目录中使用DDL创建的另一个表进行比较。这将为您带来区别,以及使用DDL手动创建的表中缺少的内容。

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

大家都在问