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:008753

评论

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

5分钟搞懂Web3架构

俞凡

架构 web3

无需企业搭建基础设施,华为云弹性公网IP经济实惠又便捷!

与时俱进的时代

华为云弹性负载均衡服务,如何助企业应付流量压力

爱科技的水月

无代码的未来

俞凡

无代码

运维训练营第十课作业

好吃不贵

从各行业的实际运用中,窥见华为云虚拟专用网络VPN的强大性能

清欢科技

java程序员:拜托别再问我Spring原理了!你问的这篇文章都有

钟奕礼

程序员 Java 面试 Java、 java 编程

华为云全球加速GA,为企业跨国办公保驾护航

与时俱进的时代

5分钟搞懂BFF

俞凡

架构 BFF

华为云智能云接入ICA,助力企业轻松上云

与时俱进的时代

华为云连接CC服务助企业联通全球

爱科技的水月

如何实现线上线下良好互通?华为云CC支持一点接入多点通达

爱科技的水月

8年java技术岗面试官总结:2022超强面试大全,抓住2022的小尾巴

钟奕礼

程序员 Java 面试 Java、 java 编程

Github星标80k的阿里大牛强推JDK源码笔记,6到飞起

程序知音

Java 源码 jdk 后端技术

【kubernetes入门到精通】Kubernetes的健康监测机制以及常见ExitCode问题分析「探索篇」

码界西柚

Kubernetes 云原生 服务监控 12月月更

华为云智能云接入ICA,企业数据上云的信赖之选

与时俱进的时代

BAT大厂java程序员面试必问:JVM+Spring+分布式+tomcat+MyBatis

钟奕礼

程序员 Java 面试 Java、 java 编程

安全可靠,弹性灵活--华为虚拟专用网络VPN

清欢科技

Zebec的“Web3.0 TechHive Summit 2022 大会”圆满落幕,回顾与展望

股市老人

PostgreSQL 技术内幕(四)执行引擎之Portal

酷克数据HashData

postgresql

笑对过往、活在当下、期盼未来

阿Q说代码

程序员 flag 年度总结

华为云弹性负载均衡ELB,如何保障服务器不瘫痪?

爱科技的水月

回顾与展望Zebec举办的“Web3.0 TechHive Summit 2022 大会”

BlockChain先知

GitHub屠榜第一的微服务架构深度解析,简直太硬核了

小小怪下士

Java 程序员 微服务

2022年度盘点|聚焦运维服务,云智慧的高光时刻

云智慧AIOps社区

运维 AIOPS 智能运维 云智慧 智能运维AIOps

什么是WebSocket

穿过生命散发芬芳

websocket 12月月更

开启全新身份!华为阅读畅读会员震撼来袭,限时首月9元快来领取

最新动态

出海有“云”!华为云全球加速助力跨国企业提升网络体验

与时俱进的时代

史上最全JVM大全详解!java程序员细节到极致的一次,魔鬼

钟奕礼

程序员 Java 面试 Java、 java 编程

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