gpt4 book ai didi

amazon-web-services - 亚马逊 EMR 与亚马逊 Redshift

转载 作者:行者123 更新时间:2023-12-05 08:40:03 27 4
gpt4 key购买 nike

对于大多数用例,可以使用 Amazon EMR 对流数据或有界数据(例如来自 Amazon S3)进行 Spark 转换,然后可以使用转换后的数据将数据再次写入 S3。

转换也可以在 Amazon Redshift 中实现,使用将来自 S3 的不同数据加载到不同的 Redshift 表,然后将来自不同 Redshift 表的数据加载到最终表。 (现在使用 Redshift spectrum,我们也可以直接从 S3 中选择和转换数据。)

话虽如此,我发现转换可以在 EMR 和 Redshift 中完成,Redshift 加载和转换的开发时间更短。

那么,EMR 是否应该用于主要涉及流/无界数据的用例?还有哪些其他用例是 EMR 更可取(我知道 Spark 也提供其他核心、sql、ml 库),但只是为了实现转换(涉及连接/缩减器),我看不到其他用例在 EMR 中流式传输,此时也可以在 Redshift 中实现转换。

请提供何时使用 EMR 转换与 Redshift 转换的用例。

最佳答案

首先,我更喜欢使用 Redshift 进行转换:

  • 开发更容易,SQL而不是Spark
  • 维护/监控更容易
  • 假设您可以在“非高峰期”运行,基础设施成本会更低次。

有时 EMR 是更好的选择,我会在这些情况下考虑:

  • 当您想在 S3 上同时拥有原始数据和转换后的数据时,例如A“数据湖”战略
  • 需要进行复杂的转换。有些转变只是不可能使用 Redshift,比如什么时候
    • 管理复杂的大型 json 列
    • 动态数据透视(可变数量的属性)
    • 需要第三方库
  • 数据量太大,需要更大的 redshift 集群来处理转换。

除了 Redshift 和 EMR 之外,还有其他附加选项,也应考虑这些选项。例如

  • 标准 python 或其他脚本语言:
    • 创建可在redshift中运行的动态转换sql
    • 从 csv 处理到 parquet 或类似格式
    • 调度(例如气流)
  • AWS 雅典娜
    • 可以与 s3(例如 parquet)输入和输出一起使用
    • 使用 SQL(因此在开发时间上有一些优势)使用 Presto 语法,在某些情况下比 Redshift SQL 更强大
    • 可以带来显着的成本效益,因为不需要永久性基础设施成本,按使用付费。

还应考虑 AWS Batch 和 AWS lambda。

关于amazon-web-services - 亚马逊 EMR 与亚马逊 Redshift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57174597/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com