2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Zendesk 从 DynamoDB 迁移到 MySQL 和 S3,节省了 80% 多的成本

作者:Rafal Gancarz

  • 2024-01-27
    北京
  • 本文字数:1151 字

    阅读完需:约 4 分钟

大小:576.96K时长:03:16
Zendesk从DynamoDB迁移到MySQL和S3,节省了80%多的成本

Zendesk 通过将 DynamoDB 迁移到使用 MySQL 和 S3 的分层存储解决方案,将数据存储成本降低了80%以上。该公司考虑了不同的存储技术,并决定将关系型数据库和对象存储结合起来,在降低成本的同时,取得可查询性和可伸缩性之间的平衡。

 

Zendesk 使用DynamoDB存储为事件流数据创建了持久性解决方案。最初的设计很有效,但运营成本越来越高。团队切换到了一个预置的计费模型,将成本降低了 50%,但是随着客户群的增长,以及需要使用Global Secondary Indexes(GSI)来支持新的查询模式,该架构运转所需的成本变得不可持续。



原来使用 DynamoDB 的架构(图片来源:Zendesk工程博客

 

由于 Zendesk 在 AWS 上运行其平台,该团队一直在寻找能够满足其功能和技术要求,同时又能降低成本的替代存储解决方案。他们考虑了S3Hudi(Zendesk 使用的数据湖)、ElasticSearchMySQL,但因为复杂性和 24 小时延迟而放弃了 Hudi,而 ElasticSearch 的成本与使用 DynamoDB 相似。最后,团队决定使用 MySQL 来缓冲来自Apache Kafka的日志及存储元数据,并使用 S3 来存储原始数据,每个文件 10000 条记录。

 

摄取流(ingestion flow)将 Kafka 消费的日志数据存储到 MySQL 的缓冲表中。每隔一小时,后台作业就会以每个文件 10000 条日志为单位,将缓冲表中的新记录批量上传到 S3 中,并为每个 S3 文件插入一条元数据记录。另有一个作业每隔一小时会从缓冲表中删除超过 4 小时的日志。



使用 MySQL(AuroraDB))和 S3 的新架构(图片来源:Zendesk工程博客

 

为了处理查询,新解决方案需要在 MySQL 元数据表中进行查找,然后对查找返回的文件并行执行一组S3-Select查询。由于数据布局针对时间顺序检索进行了优化,所以团队在执行更复杂的查询时遇到了问题。

 

Zendesk 集团技术主管Shane Hender解释了在新架构中进行灵活查询所面临的挑战:

在完成了上述所有工作后,当客户端希望通过时间戳以外的任何字段筛选结果时,我们遇到了性能问题。例如,如果客户端需要特定 user-id 的日志,那么在最坏的情况下,为了查找相关日志,我们必须扫描给定时间范围内的所有 S3 数据,这使得我们很难确定哪些查询可以并行执行。

 

工程师们曾考虑通过在 S3 中复制数据来处理筛选多个字段的情况,但考虑到字段组合的数量比较大,这种方法并不可行。最终,他们找到了Bloom Filters,并进一步将其与Count-Min Sketch数据结构相结合,提供了一种支持多字段筛选查询的有效方法。改进后的解决方案需要一个额外的表来存储序列化数据结构,用于确定所要查询的 S3 文件。

 

迁移完成后,Zendesk 将存储成本降低到不到 DynamoDB 配置成本的 20%,其中 MySQL (AuroraDB)占 90%以上,S3 和 S3-Select 占不到 10%。新的解决方案提供了大约 200 到 500 毫秒的查询延迟,不过峰值有时会达到几秒,团队正设法进一步优化。

 

原文链接:

https://www.infoq.com/news/2023/12/zendesk-dynamodb-mysql-s3-cost/

2024-01-27 08:008749

评论

发布
暂无评论
发现更多内容

zookeeper的数据同步是如何完成的?

卢卡多多

zookeeper 28天写作 12月日更

下周上海见!超越商业,创业邦100未来独角兽峰会议程抢先看

创业邦

想象与实践的过程

Nydia

Linux之ls命令

入门小站

Linux

JavaScript 中8 个最佳电子邮件库

devpoint

JavaScript nodejs 12月日更 email pop3

Volatile 原理(二)

悟空聊架构

volatile 28天写作 可见性 悟空聊架构 12月日更

当诗人遇到熟读2600亿中文参数的大模型

白洞计划

Eureka基础

李子捌

微服务 28天写作 12月日更

.NET内存管理必备知识

喵叔

28天写作 12月日更

Spring AOP(二) 修饰者模式和JDK Proxy

程序员历小冰

spring Java、 28天写作 spring aop 12月日更

[Pulsar] Batch message的确认

Zike Yang

Apache Pulsar 12月日更

【Promise 源码学习】第十六篇 - 了解 co 库

Brave

源码 Promise 12月日更

工业4.0时代:低代码的兴起,或将掀起制造业格局的变革

优秀

低代码 工业4.0

数据库大赛50强之「华东师范大学」:恰同学少年,代码激扬!

OceanBase 数据库

数据库 学习 开源 oceanbase

记录-最骄傲的事(3)

将军-技术演讲力教练

什么是网络安全?网络安全威胁存在哪些?

喀拉峻

网络安全

hmily学习笔记

风翱

12月日更 Hmily

你不得不掌握的前端提交规范(git cz)

你好bk

JavaScript 前端 代码注释 代码规范 12月日更

深度揭秘技术创新:全球首个知识增强千亿大模型是怎样炼成的?

百度大脑

人工智能

睁眼、耸肩、觉醒:人形机器人的吊诡与最终幻想

脑极体

iKuai与DNSPod合作,搞了一个大动作!

网络安全 DNS DNS劫持

40 K8S之Calico网络插件

穿过生命散发芬芳

k8s 28天写作 12月日更

9.《重学 JAVA》-- 控制语句(一)

杨鹏Geek

Java 25 周年 28天写作 12月日更

中小型研发团队的一种考核思路

wood

团队管理 28天写作 研发考核

Helm 快速入门

xcbeyond

Helm 28天写作 12月日更

在线将JS/JavaScript-Object转JSON工具

入门小站

工具

架构实战营第 4 期 -- 模块二作业

烈火干柴烛灭田边残月

架构实战营

盘点2021:一年读完的50本书

石云升

书单 年终总结 28天写作 12月日更 盘点2021

Hoo虎符研究院 | 币海寻珠——2021年区块链投融大事记

区块链前沿News

区块链 虎符 Hoo虎符 Hoo 虎符交易所

我们一起,盘点 2021 十大技术领域的全部精彩

InfoQ写作社区官方

大数据 云原生 编程语言 话题讨论 2021年度技术盘点与展望

「如何从0到1实现一个基于vite的前端基础库👾」

速冻鱼

前端 Node 签约计划第二季 12月日更

Zendesk从DynamoDB迁移到MySQL和S3,节省了80%多的成本_云端开发_InfoQ精选文章