【问题标题】:How Glue crawler load data in Redshift table?Glue爬虫如何加载Redshift表中的数据?
【发布时间】:2021-08-09 08:05:03
【问题描述】:

我是一名新的 AWS 用户,对其服务感到困惑。在我们公司,我们将数据存储在 S3 中,因此我在 s3 中创建了一个存储桶,并创建了一个 AWS Glue 爬虫来将此表加载到 Redshift 表(我们通常在我们公司做的),我可以在 Redshift 上成功看到。

根据我的研究,Glue 爬虫应该在 Glue 数据目录中创建与我的数据相关的元数据,我可以再次看到这些元数据。这是我的问题:我的爬虫是如何工作的,它是否将 S3 数据加载到 Redshift?我的公司是否应该有一个特殊的配置让我可以将数据加载到 Redshift?

谢谢

【问题讨论】:

    标签: amazon-web-services amazon-s3 web-crawler amazon-redshift aws-glue


    【解决方案1】:

    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 中的外部表定义告诉它如何直接在 S3 中访问数据。这与 Amazon Athena 非常相似,后者可以查询存储在 S3 中的数据,而无需将其加载到数据库中。 (将 Redshift Spectrum 视为 Amazon Redshift 中的 Amazon Athena。)

    因此,使用 Amazon Redshift 查询数据的方法基本上有两种:

    1. 使用COPY command将数据从S3加载到Redshift然后查询,OR
    2. 将数据保存在 S3 中,使用 CREATE EXTERNAL TABLE 告诉 Redshift 在哪里可以找到它(或使用 AWS Glue 数据目录中的现有定义),然后在不将数据加载到 Redshift 本身的情况下查询它。

    【讨论】:

    • 谢谢你,约翰,这很有帮助。但我仍然没有得到我的答案。正如您提到的,AWS Glue 不与 Redshift 交互。那么,如何使用我的公司 AWS 帐户创建一个爬虫,选择我的数据库 redshift 数据库作为目标,然后在运行我的爬虫后,我能够在 redshift 中找到表。
    【解决方案2】:

    在运行爬虫后,我明白了在 Redshift 中查看表格的意思。事实上,我在 Redshift 中创建了一个外部表,而不是将表存储到 Redshift。

    【讨论】:

    • 嗨......你应该接受约翰的回答是正确的。他提供了您需要的信息,对寻求解释的其他用户很有用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 2014-12-11
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多