使用 Redshift Spectrum 的步骤是什么?
What are the steps to use Redshift Spectrum.?
目前我正在使用 Amazon Redshift 和 Amazon S3 来存储数据。现在我想使用 Spectrum 来提高性能,但不知道如何正确使用它。
如果我使用的是 SQL workbench,我可以从中创建外部模式吗?或者我需要从 AWS 控制台或 Athena 中创建它。?
我需要为特定区域安装 Athena 吗?没有雅典娜可以使用频谱吗?
现在,如果我尝试通过 SQL workbench 创建外部模式,它会抛出一个错误 "CREATE EXTERNAL SCHEMA is not enabled" 如何启用它..?
如果有人用过Spectrum请帮忙告诉我使用spectrum的详细步骤。
Redshift Spectrum 需要包含 table 定义的外部数据目录。正是这个数据目录包含对 S3 中文件的引用,而不是 Redshift 中的外部 table 定义。此数据目录可以在 Elastic MapReduce 中定义为 Hive 目录(如果您有现有的 EMR 部署则很好)或在 Athena 中(如果您没有 EMR 或不想管理 Hadoop 则很好)。如果您愿意,Athena 路由可以完全由 Redshift 管理。
在我看来,您的问题是四件事之一。或者:
- 您的 Redshift 集群不在当前支持 Athena 和 Spectrum 的 AWS 区域中。
- 您的 Redshift 集群版本尚不支持 Spectrum(1.0.1294 或更高版本)。
- 您的 IAM 策略不允许 Redshift 控制 Athena。
- 您没有在
CREATE EXTERNAL SCHEMA
语句中使用 CREATE EXTERNAL DATABASE IF NOT EXISTS
参数。
要允许 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 数据目录中创建 table 元数据:http://docs.aws.amazon.com/redshift/latest/dg/c-spectrum-external-tables.html
目前我正在使用 Amazon Redshift 和 Amazon S3 来存储数据。现在我想使用 Spectrum 来提高性能,但不知道如何正确使用它。
如果我使用的是 SQL workbench,我可以从中创建外部模式吗?或者我需要从 AWS 控制台或 Athena 中创建它。?
我需要为特定区域安装 Athena 吗?没有雅典娜可以使用频谱吗?
现在,如果我尝试通过 SQL workbench 创建外部模式,它会抛出一个错误 "CREATE EXTERNAL SCHEMA is not enabled" 如何启用它..?
如果有人用过Spectrum请帮忙告诉我使用spectrum的详细步骤。
Redshift Spectrum 需要包含 table 定义的外部数据目录。正是这个数据目录包含对 S3 中文件的引用,而不是 Redshift 中的外部 table 定义。此数据目录可以在 Elastic MapReduce 中定义为 Hive 目录(如果您有现有的 EMR 部署则很好)或在 Athena 中(如果您没有 EMR 或不想管理 Hadoop 则很好)。如果您愿意,Athena 路由可以完全由 Redshift 管理。
在我看来,您的问题是四件事之一。或者:
- 您的 Redshift 集群不在当前支持 Athena 和 Spectrum 的 AWS 区域中。
- 您的 Redshift 集群版本尚不支持 Spectrum(1.0.1294 或更高版本)。
- 您的 IAM 策略不允许 Redshift 控制 Athena。
- 您没有在
CREATE EXTERNAL SCHEMA
语句中使用CREATE EXTERNAL DATABASE IF NOT EXISTS
参数。
要允许 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 数据目录中创建 table 元数据:http://docs.aws.amazon.com/redshift/latest/dg/c-spectrum-external-tables.html