Pra*_*kar 5 amazon-s3 amazon-web-services amazon-redshift amazon-redshift-spectrum
目前,我正在使用Amazon Redshift和Amazon S3来存储数据。现在,我想使用Spectrum来提高性能,但对如何正确使用它感到困惑。
如果我正在使用SQL工作台,那么我可以从中创建外部架构,还是需要从AWS控制台或Athena创建外部架构?
我需要特定地区的雅典娜吗?没有雅典娜,可以使用频谱吗?
现在,如果我尝试通过SQL工作台创建外部架构,则会引发错误“未启用CREATE EXTERNAL SCHEMA”。如何启用此功能?
如果有人使用过频谱,请提供帮助,并让我知道使用频谱的详细步骤。
Redshift Spectrum需要包含表定义的外部数据目录。该数据目录包含对S3中文件的引用,而不是Redshift中的外部表定义。可以在Elastic MapReduce中将该数据目录定义为Hive目录(如果您已经有EMR部署,则定义为好),或者在Athena中(如果您没有EMR或不想参与管理Hadoop,则定义为好)。如果需要,Redshift可以完全管理Athena路线。
在我看来,您的问题是四件事之一。要么:
CREATE EXTERNAL DATABASE IF NOT EXISTS在CREATE EXTERNAL SCHEMA语句中使用参数。要允许Redshift管理Athena,您需要将IAM策略附加到Redshift群集,以使其可以完全控制Athena,并对包含数据的S3存储桶具有读取权限。
设置好之后,您就可以像以前一样创建外部架构,以确保CREATE EXTERNAL DATABASE IF NOT EXISTS也传递参数。如果您没有预先存在的配置,这可以确保在Athena中创建外部数据库:http : //docs.aws.amazon.com/redshift/latest/dg/c-getting-started-using-spectrum -create-external-table.html
最后,运行您的CREATE EXTERNAL TABLE语句,该语句将在Athena数据目录中透明地创建表元数据:http : //docs.aws.amazon.com/redshift/latest/dg/c-spectrum-external-tables.html
| 归档时间: |
|
| 查看次数: |
1785 次 |
| 最近记录: |