Amazon redshift 使用红移光谱读取AWS红移外部表中的数据

Amazon redshift 使用红移光谱读取AWS红移外部表中的数据,amazon-redshift,amazon-redshift-spectrum,Amazon Redshift,Amazon Redshift Spectrum,我在AWS红移集群中执行了以下操作,以从S3读取拼花地板文件 create external schema s3_external_schema from data catalog database 'dev' iam_role 'arn:aws:iam::<MyuniqueId>:role/<MyUniqueRole>' create external database if not exists; 我是否缺少使其返回查询输出的任何授权或访问权限。调试非工作红移

我在AWS红移集群中执行了以下操作,以从S3读取拼花地板文件

create external schema s3_external_schema 
from data catalog 
database 'dev' 
iam_role 'arn:aws:iam::<MyuniqueId>:role/<MyUniqueRole>'
create external database if not exists;

我是否缺少使其返回查询输出的任何授权或访问权限。

调试非工作红移光谱查询的步骤

使用athena尝试相同的查询:最简单的方法是运行胶水爬虫 针对s3文件夹,它应该创建一个配置单元元存储表 您可以直接使用与中相同的sql进行查询 雅典娜。 使用s3选择:使用aws控制台导航到您的一个拼花地板 文件,右键单击并选择,然后单击“拼花地板可能已经存在” 默认设置并查看您得到了什么。 如果1。或2。如果你的定义有效,那么很可能你的定义在光谱中不正确。相反,只需使用在配置单元元存储中创建的定义,如下所示

create external schema some_schema from data catalog
database 'the_name_you_gave_the_hive_db'
iam_role 'whatever'
create external database if not exists;

然后,您可以只使用新定义的红移光谱模式,而无需进一步定义。

调试非工作红移光谱查询的步骤

使用athena尝试相同的查询:最简单的方法是运行胶水爬虫 针对s3文件夹,它应该创建一个配置单元元存储表 您可以直接使用与中相同的sql进行查询 雅典娜。 使用s3选择:使用aws控制台导航到您的一个拼花地板 文件,右键单击并选择,然后单击“拼花地板可能已经存在” 默认设置并查看您得到了什么。 如果1。或2。如果你的定义有效,那么很可能你的定义在光谱中不正确。相反,只需使用在配置单元元存储中创建的定义,如下所示

create external schema some_schema from data catalog
database 'the_name_you_gave_the_hive_db'
iam_role 'whatever'
create external database if not exists;

然后,您可以只使用新定义的红移光谱模式,无需进一步定义。

除了Jon Scott所说的,如果使用分区创建外部表,除非运行ALTER table来添加分区,否则不会显示任何数据

创建表并添加后续分区后需要运行的是

ALTER TABLE s3_external_schema.SUPPLIER_PARQ_1 ADD PARTITION ('...')
LOCATION 's3://<My Bucket>/<File partition>/'

要检查外部表查询的错误消息,应使用SVL\U S3LOG table。

除了Jon Scott所说的,如果使用分区创建外部表,除非运行ALTER table以添加分区,否则不会显示任何数据

创建表并添加后续分区后需要运行的是

ALTER TABLE s3_external_schema.SUPPLIER_PARQ_1 ADD PARTITION ('...')
LOCATION 's3://<My Bucket>/<File partition>/'
要检查外部表查询的错误消息,应使用SVL_S3LOG表