Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS胶水ETL作业和AWS EMR之间有什么区别?_Amazon Web Services_Amazon S3_Etl_Amazon Emr_Aws Glue - Fatal编程技术网

Amazon web services AWS胶水ETL作业和AWS EMR之间有什么区别?

Amazon web services AWS胶水ETL作业和AWS EMR之间有什么区别?,amazon-web-services,amazon-s3,etl,amazon-emr,aws-glue,Amazon Web Services,Amazon S3,Etl,Amazon Emr,Aws Glue,如果我必须对存储在S3中作为csv文件的巨大数据集(比如1Tb)执行ETL,那么AWS Glue ETL作业和AWS EMR步骤都可以使用。那么AWS胶水和AWS EMR有什么不同呢。在这种情况下,哪一个是更好的解决方案。Glue允许您直接在PySpark/Python/Scala中提交ETL脚本,而无需管理EMR集群。管理基础设施的所有设置/拆除 还有一些其他托管组件,如爬虫、粘合数据目录等,可以更轻松地处理数据 您可以在您的用例中使用这两种方法,粘合速度会更快,但是您可能没有EMR带来的灵活

如果我必须对存储在S3中作为csv文件的巨大数据集(比如1Tb)执行ETL,那么AWS Glue ETL作业和AWS EMR步骤都可以使用。那么AWS胶水和AWS EMR有什么不同呢。在这种情况下,哪一个是更好的解决方案。

Glue允许您直接在PySpark/Python/Scala中提交ETL脚本,而无需管理EMR集群。管理基础设施的所有设置/拆除

还有一些其他托管组件,如爬虫、粘合数据目录等,可以更轻松地处理数据

您可以在您的用例中使用这两种方法,粘合速度会更快,但是您可能没有EMR带来的灵活性

来自AWS胶水常见问题解答:

AWS Glue在Apache Spark环境之上工作,为数据转换作业提供扩展执行环境。AWS Glue可以推断、演化和监视ETL作业,从而大大简化创建和维护作业的过程

AmazonEMR为您提供了对Hadoop环境的直接访问,为您提供了较低级别的访问和使用Spark以外工具的更大灵活性


来源:

AWS Glue是AWS提供的ETL服务。AWS Glue将在Scala或Python中生成ETL代码,以从源代码中提取数据,转换数据以匹配目标模式,并将其加载到目标模式中

AWS EMR是一项可以处理大量数据的服务,它是一个支持大数据的平台。它支持Hadoop、Spark、Flink、Presto、Hive等。您可以使用上述软件启动EC2,构建一个类似的生态系统


在您的情况下,您需要处理1 TB的数据。现在,如果您想要对相同的数据进行计算,您可以使用EMR,如果您想要对转换后的数据运行分析,请使用Glue。

大多数差异已经列出,因此我将更加关注具体的用例

何时选择aws胶水

  • 数据量很大,但有结构,即它是表结构,并且是已知格式(CSV、拼花、orc、json)
  • 如果您在开发etl作业时需要数据沿袭图,则需要沿袭图。您更喜欢使用本机库开发etl
  • 开发人员不需要调整性能参数,如设置执行器数量、每个执行器内存等
  • 您不希望管理大型集群的开销,而只为您使用的内容付费
  • 何时使用电子病历

  • 数据是巨大的,但是半结构化或非结构化的,您无法从Glue catalog中获得任何好处
  • 您只相信输出,不需要血统
  • 您需要根据作业类型和需求为每个执行器定义更多内存
  • 您可以轻松地管理集群,或者如果您有许多作业可以在集群上并发运行,则可以为您节省资金
  • 对于结构化数据,当您需要更多Hadoop功能(如hive、presto)进行进一步分析时,应该使用EMR

  • 所以这取决于您的用例是什么。两者都是很好的服务。

    Glue在引擎盖下使用EMR。这在ssh到Glue-dev端点的驱动程序中时很明显

    现在,由于Glue是一个受管理的spark环境,或者说是受管理的EMR环境,所以它的灵活性降低了。您可以选择的工作人员类型是有限的。可以在spark代码中使用的语言库数量有限。直到最近,Glue才支持pandas、numpy等软件包。像presto这样的应用程序不能与Glue集成,尽管Athena是单独安装presto的好选择

    然而,主要问题是胶水作业的冷启动时间介于1分钟到15分钟之间


    对于探索性数据分析来说,EMR是一个不错的选择,但对于使用CI/CD的生产环境来说,Glue似乎是更好的选择

    答案的第一部分似乎混淆了服务。AWS数据迁移服务(DMS)用于此目的,而不是AWS Glue。哪个更适合我的用例?比如说我需要做etl,以及一些sql查询?如果不知道您的具体用例,这真的很难说。但是,如果您不想管理自己的集群,也不需要使用特定的定制工具(如Hive),AWS Glue是一项很好的服务。除了运行预定义的或自定义的ETL作业外,还可以使用Glue Crawler从数据中派生模式,并使用Amazon Athena使用SQL查询模式。