Ontraport 如何使用 亚马逊云科技 Glue 将数据处理成本降低80%

这篇文章是与来自Ontraport的以利亚·鲍尔合作撰写的。

客户正在在 亚马逊云科技 云中实施数据和分析工作负载以优化成本。在 亚马逊云科技 中实现数据处理工作负载时,您可以选择使用 A mazon EMR 等技术 或 亚马逊云科技 Glue 等无服务器技术。 这两个选项都最大限度地减少了无差别的繁重工作,例如管理服务器、执行升级和部署安全补丁,并允许您专注于重要的事情:实现核心业务目标。这两种方法之间的差异可以在使您的组织更具生产力和创新性的同时节省资金和资源方面发挥关键作用。

像 Amazon EMR 这样的服务侧重于为您提供灵活性,使用您习惯的框架大规模支持数据处理工作负载。 例如,使用亚马逊 EMR,您可以从 A pache Spark 、Apache Hiv e 和 Pre sto 等多个开源数据处理框架中进行选择 ,并通过自定义诸如 亚马逊弹性计算云 (亚马逊 EC2) 上的集群实例类型或使用在亚马逊弹性 Kubernetes 服务 (亚马 逊 EKS) 上运行的容器化环境来微调工作负载。 此选项最适合从 Apache Hadoop 或 Spark 等大数据环境迁移工作负载,或者由熟悉 Amazon EMR 支持的开源 框架 的团队使用。

亚马逊云科技 Glu e 这样的无服务器服务可以 最大限度地减少对服务器的考虑,并专注于提供额外的生产力和数据运营工具来加速数据管道开发。亚马逊云科技 Glue 是一项无服务器数据集成服务,可帮助分析用户通过低代码或无代码方法发现、准备、移动和整合来自多个来源的数据。当组织资源有限且需要以有限的专业知识大规模构建数据处理工作负载时,此选项最适合,从而使他们能够加快开发并降低总拥有成本 ( TCO )。

在这篇文章中,我们将展示我们的亚马逊云科技客户Ontraport如何评估使用亚马逊云科技 Glue和Amazon EMR来降低总拥有成本,以及他们如何在只有一名全职开发人员的情况下将存储成本降低92%,将处理成本降低80%。

Ontraport 的工作负载和解决方案

Ontraport 是一项CRM和自动化服务,可将企业的营销、销售和运营集中在一个地方,使企业能够更快地发展并为客户创造更多价值。

日志处理和分析对于 Ontraport 至关重要。它使他们能够为客户提供更好的服务和见解,例如电子邮件活动优化。例如,仅电子邮件日志就记录了 Ontraport 每天代表客户发送的 1500-2,000 万封邮件中每条 3-4 个事件。通过分析与谷歌和微软等提供商的电子邮件交易,Ontraport的交付团队可以优化拥有大量联系人列表的客户的广告系列的打开率。

一些重要的日志贡献者是 Web 服务器和 CDN 事件、电子邮件交易记录以及 Ontraport 专有应用程序中的自定义事件日志。以下是他们每日日志贡献的详细示例:

Cloudflare request logs 75 million records
CloudFront request logs 2 million records
Nginx/Apache logs 20 million records
Email logs 50 million records
General server logs 50 million records
Ontraport app logs 6 million records

Ontraport的解决方案使用 亚马逊Kinesis 亚马逊Kinesis Data Firehose来提取日志数据并将最新记录写入亚马逊 OpenSearch Servic e数据库,分析师和管理人员可以从中分析最近3个月的数据。 自定义应用程序日志记录与Ontraport CRM的互动,因此客户支持团队可以审计或恢复客户帐户。最初,所有日志都保留到了 2018 年。留存率按年龄划分为多个级别:

  • 不到 1 周 — OpenSearch 热门存储空间
  • 在 1 周到 3 个月之间 — OpenSearch 冷库
  • 3 个月以上 — 提取、转换和加载 (ETL) 在 亚马逊简单存储服务 (Amazon S3) 中处理,可通过 亚马 逊 Athena 获得

下图显示了他们的日志处理和分析数据管道的架构。

评估最佳解决方案

为了优化他们在 Amazon S3 中的历史记录的存储和分析,Ontraport 实施了 ETL 流程,将 TSV 和 JSON 文件转换和压缩为 Parquet 文件,并按小时进行分区。压缩和转换帮助Ontraport将其S3存储成本降低了92%。

在第 1 阶段,Ontraport 使用亚马逊 EMR 实施了 ETL 工作负载。考虑到他们的数据规模(数千亿行),而且只有一个开发人员,Ontraport 首次尝试开发 Apache Spark 应用程序需要一个具有 r5.12xlarge 核心和任务节点的 16 节点 EMR 集群。该配置允许开发人员处理 1 年的数据,并使用 Spark ETL 应用程序的粗略版本最大限度地减少内存不足问题。

为了帮助优化工作负载,Ontraport 向 亚马逊云科技 寻求优化建议。有大量选项可以优化 Amazon EMR 中的工作负载,例如根据工作负载配置文件调整 亚马逊弹性计算云 (Amazon EC2) 实例类型的大小、修改 Spark YARN 内存配置以及重写 Spark 代码的某些部分。考虑到资源限制(只有一名全职开发人员),亚马逊云科技 团队建议使用 亚马逊云科技 Glue Studio 探索类似的逻辑。

使用 亚马逊云科技 Glue 处理此工作负载的一些初步好处包括:

  • 亚马逊云科技 Glue 具有爬虫的概念,它提供了一种无代码方法来对数据源进行编目并识别来自多个数据源(在本例中为 Amazon S3)的架构。
  • 亚马逊云科技 Glue 提供内置数据处理功能,在 Spark 之上使用抽象方法,减少了开发高效数据处理代码所需的开销。例如,亚马逊云科技 Glue 支持与 Spark DataF rame 对应的 Dynamic Frame 类 ,该类在处理半结构化数据集时提供了额外的灵活性,并且可以快速转换为 Spark DataFrame。动态帧可以直接从爬网表生成,也可以直接从 Amazon S3 中的文件生成。 参见以下示例代码:
    
    dyf = gluecontext.create_dynamic_Frame.from_Options(connection_type = 's3',connection_options = {'paths': [s3://]},格式 = 'json'
  • 它最大限度地减少了 Ontraport 调整实例类型大小和自动扩展配置的需求。
  • 使用 亚马逊云科技 Glue Studio 交互式会话可以让 Ontraport 在检测历史日志架构演变时根据需要快速迭代。

Ontraport 必须处理 100 太字节的日志数据。使用初始配置处理每太字节的成本约为 500 美元。使用亚马逊云科技 Glue后,该成本降至每太字节约100美元。通过使用亚马逊云科技 Glue和亚马逊云科技 Glue Studio,Ontraport处理任务的成本降低了80%。

深入研究 亚马逊云科技 Glue 工作负载

Ontraport 的第一个 亚马逊云科技 Glue 应用程序是 PySpark 工作负载,它从亚马逊 S3 中的 TSV 和 JSON 文件中提取数据,对时间戳字段执行基本转换,并转换几个字段的数据类型。最后,它将输出数据作为压缩的 Parquet 文件写入到精选的 S3 存储桶中,大小约为 1 GB,并以 1 小时的间隔进行分区,以优化使用 Athena 的查询。

通过配置有 10 名 G.2x 类型工作人员的 亚马逊云科技 Glue 任务,Ontraport 能够在不到 60 分钟的时间内处理大约 5 亿条记录。在处理 100 亿条记录时,他们能够将作业配置增加到最多 100 名员工,启用自动扩展,从而在 1 小时内完成作业。

下一步是什么?

早在2018年,Ontraport就能够处理日志。该团队正在更新处理代码以适应架构演变场景(例如新字段),并对一些组件进行了参数化以完全自动化批处理。他们还希望微调预配置 亚马逊云科技 Glue 工作人员的数量,以获得最佳的性价比。

结论

在这篇文章中,我们向您展示了 Ontraport 如何使用 亚马逊云科技 Glue 在只有一名全职开发人员的情况下帮助减少开发开销并简化 ETL 工作负载的开发工作。尽管像 Amazon EMR 这样的服务提供了极大的灵活性和优化,但 亚马逊云科技 Glue 的易用性和简化通常为中小型企业提供更快的成本优化和创新途径。有关 亚马逊云科技 Glue 的更多信息,请查看 亚马逊云科技 Glue 入门


作者简介

Elijah Ball 在 Ontraport 担任系统管理员 已有 12 年了。他目前正在努力将Ontraport的生产工作负载转移到亚马逊云科技,并为Ontraport制定数据分析策略。

巴勃罗·雷东多 是亚马逊网络服务的首席解决方案架构师。他是一位数据爱好者,拥有超过 16 年的金融科技和医疗保健行业经验,并且是 亚马逊云科技 分析技术领域社区 (TFC) 的成员。Pablo 一直领导 亚马逊云科技 Gain Insights 计划,以帮助 亚马逊云科技 客户从其数据分析计划中获得更好的见解和切实的商业价值。

Vikram Honmurgi 是亚马逊网络服务的客户解决方案经理。Vikram 拥有超过 15 年的软件交付经验,热衷于为客户提供帮助,加速他们的云之旅,实现顺畅迁移,并确保我们的客户充分利用迁移到 亚马逊云科技 云的全部潜力和可持续业务优势。