Glue 爬虫如何在 Redshift table 中加载数据?
How Glue crawler load data in Redshift table?
我是 AWS 的新用户,对其服务感到困惑。在我们公司,我们将数据存储在 S3 中,因此我在 s3 中创建了一个存储桶并创建了一个 AWS Glue 爬虫来将这个 table 加载到 Redshift table(我们通常在我们公司所做的),这我在 Redshift 上成功看到了。
根据我的研究,Glue 爬虫应该在我再次能够看到的 Glue 数据目录中创建与我的数据相关的元数据。这是我的问题:我的爬虫是如何工作的,它是否将 S3 数据加载到 Redshift?我的公司是否应该有一个特殊的配置让我将数据加载到 Redshift?
谢谢
AWS Glue 本身不与 Amazon Redshift 交互。
Load data from Amazon S3 to Amazon Redshift using AWS Glue - AWS Prescriptive Guidance 提供了一个使用 AWS Glue 将数据加载到 Redshift 的示例,但它只是像通用 JDBC 数据库一样连接到它。
您似乎可以 Query external data using Amazon Redshift Spectrum - Amazon Redshift,但这是 Redshift 使用 AWS Glue 数据目录访问存储在 Amazon S3 中的数据。数据未“加载”到 Redshift 中。相反,Redshift 中的外部 Table 定义告诉它如何直接访问 S3 中的数据。这与 Amazon Athena 非常相似,它可以查询存储在 S3 中的数据,而无需将其加载到数据库中。 (将 Redshift Spectrum 视为 Amazon Redshift 中的 Amazon Athena。)
因此,使用 Amazon Redshift 查询数据基本上有两种方法:
- 使用
COPY
command从S3加载数据到Redshift然后查询,OR
- 将数据保存在 S3 中,使用
CREATE EXTERNAL TABLE
告诉 Redshift 在哪里找到它(或使用 AWS Glue 数据目录中的现有定义),然后在不将数据加载到 Redshift 本身的情况下查询它。
我在 运行 爬虫之后看到 Redshift 中的 table 明白了我的意思。事实上,我在 Redshift 中创建了一个外部 table,而不是将 table 存储到 Redshift。
我是 AWS 的新用户,对其服务感到困惑。在我们公司,我们将数据存储在 S3 中,因此我在 s3 中创建了一个存储桶并创建了一个 AWS Glue 爬虫来将这个 table 加载到 Redshift table(我们通常在我们公司所做的),这我在 Redshift 上成功看到了。
根据我的研究,Glue 爬虫应该在我再次能够看到的 Glue 数据目录中创建与我的数据相关的元数据。这是我的问题:我的爬虫是如何工作的,它是否将 S3 数据加载到 Redshift?我的公司是否应该有一个特殊的配置让我将数据加载到 Redshift?
谢谢
AWS Glue 本身不与 Amazon Redshift 交互。
Load data from Amazon S3 to Amazon Redshift using AWS Glue - AWS Prescriptive Guidance 提供了一个使用 AWS Glue 将数据加载到 Redshift 的示例,但它只是像通用 JDBC 数据库一样连接到它。
您似乎可以 Query external data using Amazon Redshift Spectrum - Amazon Redshift,但这是 Redshift 使用 AWS Glue 数据目录访问存储在 Amazon S3 中的数据。数据未“加载”到 Redshift 中。相反,Redshift 中的外部 Table 定义告诉它如何直接访问 S3 中的数据。这与 Amazon Athena 非常相似,它可以查询存储在 S3 中的数据,而无需将其加载到数据库中。 (将 Redshift Spectrum 视为 Amazon Redshift 中的 Amazon Athena。)
因此,使用 Amazon Redshift 查询数据基本上有两种方法:
- 使用
COPY
command从S3加载数据到Redshift然后查询,OR - 将数据保存在 S3 中,使用
CREATE EXTERNAL TABLE
告诉 Redshift 在哪里找到它(或使用 AWS Glue 数据目录中的现有定义),然后在不将数据加载到 Redshift 本身的情况下查询它。
我在 运行 爬虫之后看到 Redshift 中的 table 明白了我的意思。事实上,我在 Redshift 中创建了一个外部 table,而不是将 table 存储到 Redshift。