写点什么

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

评论

发布
暂无评论

PoseiSwap 更新第二期空投,持有 Zepoch 节点数量将决定空投回报

BlockChain先知

谈谈我这两年的前端开发经验

树上有只程序猿

智能电视APP鲜时光,如何应用AB测试打造极致的用户观看体验?

字节跳动数据平台

WIZMAP-大规模 embedding 向量的可视化交互工具

Zilliz

机器学习 深度学习 Embedding 交互式可视化工具

拥抱抑郁,制心一处,一切美好是深度投入的产物

B Impact

2023-07-06:RabbitMQ中的AMQP是什么?

福大大架构师每日一题

Rabbit 福大大架构师每日一题

代码随想录训练营 Day09 - 字符串(下)

jjn0703

PoseiSwap 更新第二期空投,持有 Zepoch 节点数量将决定空投回报

鳄鱼视界

在现场!2023世界人工智能大会

新云力量

人工智能 AI 人工智能大会

Rainbond开源

EquatorCoco

开源 rainbond

活动开启 | 以梦筑码 · 不负韶华 开发者故事征集令,讲出你的故事,有机会参加HDC.Together 2023

HarmonyOS开发者

HarmonyOS

提升UE5写实效果的项目设置

3DCAT实时渲染

虚幻引擎5 UE5

PoseiSwap 更新第二期空投,持有 Zepoch 节点数量将决定空投回报

股市老人

区块链生态架构 | 社区征文

TiAmo

区块链 Baas 年中技术盘点

INFINI Labs 产品更新 | Easysearch 新增 kNN 搜索功能、Console 支持 LDAP 认证登录等

极限实验室

console Gateway 产品更新 easysearch 极限科技

Kubernetes网络模型Overlay和Underlay

虚实的星空

PoseiSwap 更新第二期空投,持有 Zepoch 节点数量将决定空投回报

威廉META

企业内容管理升级 3.0:构建生态协同,助力合规成长

风来兮

软件 电子档案 OCR 合规 #人工智能

源码解读之FutureTask如何实现最大等待时间

EquatorCoco

源码 前端 前端工具

国产化适配再进一步,融云完成欧拉、TDSQL、优炫等多方适配

融云 RongCloud

开源 运维 信创 融云 适配

人脸识别技术在医疗行业的应用

来自四九城儿

深入解析Redis的LRU与LFU算法实现

vivo互联网技术

redis LRU LFU

如何优化Flutter的性能?

没有用户名丶

为什么多数企业的数字化转型都失败了?

优秀

数字化转型 企业数字化 企业数字化 PaaS 平台

5个祖传的Python自动化办公项目,治愈你的抑郁

程序员晚枫

Python 微信 自动化 机器人 办公

3DCAT实时云渲染助力VR虚拟现实迈向成熟

3DCAT实时渲染

实时渲染

手把手教学构建证券知识图谱/知识库(含码源):网页获取信息、设计图谱、Cypher查询、Neo4j关系可视化展示

汀丶人工智能

人工智能 自然语言处理 nlp 知识图谱

中国大模型的落地DNA,写在这个双螺旋结构里

脑极体

AI

PoseiSwap 更新第二期空投,持有 Zepoch 节点数量将决定空投回报

西柚子

知识图谱之《海贼王-ONEPICE》领域图谱项目实战(含码源):数据采集、知识存储、知识抽取、知识计算、知识应用、图谱可视化、问答系统(KBQA)等

汀丶人工智能

自然语言处理 知识图谱 信息抽取

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