AmzTrends x TiDB Serverless:通过云原生改造实现全局成本降低 80%

news2024/11/15 15:55:05

本文介绍了厦门笛卡尔数据(AmzTrends)在面临数据存储挑战时,选择将其数据分析服务迁移到 TiDB Serverless 的思路和实践。通过全托管的数据库服务,AmzTrends 实现了全局成本降低 80% 的效果,同时也充分展示了 TiDB Serverless 在简化架构、提升性能和降低成本方面的优势。未来,AmzTrends 计划继续利用 TiDB Serverless 的优势,扩展业务并提升竞争力。

厦门笛卡尔数据是一家专注于跨境电商数据分析的 SaaS 公司,AmzTrends 为亚马逊卖家提供品牌分析(ABA)、商机探测以及广告数据的可视化分析。目前,AmzTrends 主要以 SAAS 和 Chrome、紫鸟浏览器的插件形式为客户提供数据服务,以订阅模式为美国、日本、中国数万计的跨境电商卖家提高数据服务,帮助卖家在选品、运营、广告等运营环节提供专业的数据分析决策价值 。

业务挑战

AmzTrends 的数据主要以大单表的形式进行存储,最大的表数据量超过 22 亿,字段较多且某些字段很长的大宽表,单表中存在结构化与非结构化的数据结构,因此需要建立大量的索引,占用大量存储空间,而且过期数据还需要定期清理,经常使用 BATCH 进行批量操作,一旦遇到异常无法无法事务的一致性,因此数据维护压力巨大。

技术痛点

在业务初期,AmzTrends 选择了在百度云上自建 TiDB 集群,资源按月付费。集群规模包含 1 个 TiDB 节点、1 个 PD 节点(此种部署方式会损害 PD 的高可用性,为了节约成本的部署方式,是官方不推荐的高风险方案)、3 个 TiKV 节点,技术人员通过将亚马逊下载的原始 CSV 格式的数据批量写入到 TiDB 中进行数据分析。此外还单独配置了 3 台服务器部署 Spark,进行全量复杂的数据计算分析。但 Spark SQL 与关系型数据库不同,需要专人运维,复杂的业务架构造成了资源冗余,使得运维成本较高。

由于集群配置不够加上专业运维团队的缺失,弃用了 Spark,大量复杂且数据计算量巨大的任务由 Spark 转到 TiDB 直接运行,集群越来越不稳定,数据安全面临严重挑战。在这种情况下,AmzTrends 不得不寻找对技术要求更低且更安全的运维解决方案。在接触到 TiDB Serverless 后,AmzTrends 认为由于都是 TiDB 产品体系,全托管的一栈式数据库服务 TiDB Serverless 不仅可以充分发挥 TiDB 数据库原有的特性和优势,还可以帮助公司简化架构,提升系统的整体性能和健壮性。所以,AmzTrends 决定将整体应用从百度云部署方案迁入 TIDB Serverless,不仅风险更低且兼容性和性能都能得到有效保证,另外通过数据容量与请求量的成本预估,AmzTrends 发现迁移后成本能比现有的云服务器部署更低,因此有了这样一次充满挑战的数据迁移过程。

为什么选择 TiDB Serverless?

TiDB Serverless 是一种全托管的、自动化的数据库服务(DBaaS),能够快速部署集群,并按实际使用资源量计费。结合自身业务架构特性,AmzTrends 在考虑 TiDB Serverless 时重点关注以下特性:

 轻松扩展基础设施,按实际使用量付费 :商家只有在工作日时间才会使用 AmzTrends 的数据分析服务,而传统的云模式需要为预估的最大流量付费,容易造成闲时资源浪费。TiDB Serverless 可以秒级搭建起数据库环境,用户只需为实际的数据处理和存储付费,这让 AmzTrends 开发团队能够更专注于创新和发展。

 轻松上手,无需手动分片 :以前, AmzTrends 的 20 亿数据需要定期进行清理或者分片,应用 TiDB Serverless 可以帮助用户摆脱数据分片等数据库繁琐的操作任务,相当于只维护一张大表即可,既可以满足更长时间维度的查询需求,又无需反复对数据进行整理操作。

 自动伸缩,成本效益显著 :无论是存储、事务处理还是分析工作负载,AmzTrends 都能在几秒内根据应用需求自动伸缩,避免造成资源冗余浪费,既灵活又经济。

 全面托管,无感运维 :为 AmzTrends 提供最优化的 TiDB 部署方案,免去了服务器配置维护的烦恼。以前一旦出现故障就需要人工进行紧急处理,使用全托管的 TiDB Serverless 后运维人员可以安心入眠。

 熟悉的 SQL 接口,灵活应对业务增长 :TiDB Serverless 保持了开发者熟悉的 MySQL SQL 语言,AmzTrends 无需进行额外的学习即可高效地投入开发工作,同时 TiDB Serverless 具有一个高度灵活扩展的分布式架构,可以随需弹性扩缩容,应对业务的快速增长。

解决方案

决定迁移后,AmzTrends 采用 TiDB Serverless 替代了云上自建的 TiDB 集群,将数据全量迁移到 TiDB Serverless 中,简化了架构,大大缓解了运维压力,降低总体 IT 成本。

迁移后,AmzTrends 在 PingCAP 官方服务的帮助下也进行了架构简化、优化建表、索引优化,提高了整体数据处理效率,并使 AmzTrends 业务架构演进至云原生模式:

○ 索引优化:通过发现和删除冗余数据索引,节省了 50% 的数据库成本;

○ SQL 查询性能提升:优化索引后,不仅提高了查询速度,也显著减少了成本;

○ 架构简化:自建配置中心和服务注册要求的最小三台云服务器转变为单台云服务器,降低了成本和复杂性;

○ 业务缓存建立:在了解业务的基础上建立了业务缓存,进一步降低了实际查询量,节约成本。

项目收益

全托管一栈式数据库服务库服务

TiDB Serverless 提供全托管的服务模式,充分发挥了 TiDB 数据库的原有特点和优势,简化了 Amztrends 的整体架构,提升了性能和系统健壮性,同时降低了总体成本。

数据架构成本节省 50%

通过云原生改造,Amztrends 在数据架构方面节省了 50% 的成本。( Serverless 采用全分离架构,Amztrends 只需为使用付费,无需浪费闲置资源)

整体服务资源节约 30%

简化架构后,Amztrends 前端服务资源实现了 30% 的资源节约。

全局成本降低 80%

综合上述优化,Amztrends 实现了整体成本降低 80%。

总结

TiDB Serverless 作为全托管一站式的数据库服务,从根本上解决了 Startup 公司基础架构门槛高的难题,即使缺少专业运维人员,也可以拥有简化、健壮的数据基础架构,获得了更高的系统稳定性和可用性。同时,Serverless 的 “Pay as you go”模式提供了更灵活、更优化的资源利用率,AmzTrends 从百度云迁移至 AWS 之后,总体 IT 成本实现了大幅下降。在此基础上,这种灵活的资源使用模式也可以让 AmzTrends 探索更灵活、更具性价比的商业方案,为商业模式提供更多可能性。

AmzTrends PM Steve 表示:“迁移到 TiDB Serverless 后我们不会再去担心数据库的问题,完全放心交给 TiDB Serverless 就好了。用最简单的话来讲,没有问题就是最好的结果。”

未来

未来,Amztrend 计划继续利用 TiDB Serverless 的优势,进一步扩展其业务并探索更多的数据分析和优化机会。公司还计划通过持续的技术改进和优化,维持并提升其在市场上的竞争力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1487258.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【活动】金三银四,前端工程师如何把握求职黄金期

随着春意盎然的气息弥漫大地,程序员群体中也迎来了一年一度的“金三银四”求职热潮。这个时间段对于广大前端工程师而言,不仅象征着生机勃发的新起点,更是他们职业生涯中至关重要的转折点。众多知名公司在这一时期大规模开启招聘通道&#xf…

Java面试题总结200道(二)

26、简述Spring中Bean的生命周期? 在原生的java环境中,一个新的对象的产生是我们用new()的方式产生出来的。在Spring的IOC容器中,将这一部分的工作帮我们完成了(Bean对象的管理)。既然是对象,就存在生命周期,也就是作用…

机器人持续学习基准LIBERO系列9——数据集轨迹查看

0.前置 机器人持续学习基准LIBERO系列1——基本介绍与安装测试机器人持续学习基准LIBERO系列2——路径与基准基本信息机器人持续学习基准LIBERO系列3——相机画面可视化及单步移动更新机器人持续学习基准LIBERO系列4——robosuite最基本demo机器人持续学习基准LIBERO系列5——…

windows下安装npm

windows下安装了多个node.js如何切换npm。 下载nvm 下载nvm地址:https://github.com/coreybutler/nvm-windows/releases 安装nvm 这个是nodejs的安装位置,如果没有nodejs文件夹就新建一个(后来发现他会自动生成一个快捷方式) 设置setting.txt 打开安装…

http 协议深入介绍

一,http 相关概念 (一)关键名词 1,互联网 是网络的网络,是所有类型网络的母集 2,因特网 世界上最大的互联网网络。即因特网概念从属于互联网概念。习惯上,大家把连接在因特网上的计算机都成…

【大厂AI课学习笔记NO.66】TensorFlow

TensorFlow 这个框架,实在是太有名了,最近周红衣都在大力的宣传和讲解。 他说的是对的,人工智能,就是大力出奇迹,就是大量的算力,大量的数据,加上模型的加持,实现的智能感觉。 Goog…

MWC 2024丨Smart Health搭载高通Aware平台—美格发布智能健康看护解决方案,开启健康管理新体验

2月29日,在MWC 2024世界移动通信大会上,全球领先的无线通信模组及解决方案提供商——美格智能正式发布了新一代Cat.1模组SLM336Q,是中低速物联网应用场景的高性价比之选。本次还发布了首款搭载高通Aware™平台的智能看护解决方案MC303&#x…

MATLAB知识点:for-end语句(简称for循环)

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自​第4章:MATLAB程序流程控制 for-end语句&…

探索Hadoop的三种运行模式:单机模式、伪分布式模式和完全分布式模式

目录 前言一、 单机模式二、 伪分布式模式三、 完全分布式模式(重点)3.1 准备工作3.2 配置集群3.2.1 配置core-site.xml 文件3.2.2 配置hdfs-site.xml 文件3.2.3 配置yarn-site.xml 文件3.2.4 配置mapred-site.xml 文件 3.3 启动集群3.3.1 配置workers3.…

HTML+CSS:花式加载

效果演示 实现了一个动态加载文本效果&#xff0c;通过定义变量和应用动画效果来实现文本的动态展示。 Code <div class"container"><h1>loading...</h1> </div>:root {--text-color: orangered; /* 定义文本颜色变量为橙红色 */--inner-st…

[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

RedisTemplate的坑人之处

使用long类型的值存入redis,用int类型无法取出 原因是因为代码中的key传递到内部进行序列化&#xff0c;不同类型的值序列化的结果不一样&#xff0c;就导致最终实际存入redis的key不一样 比如&#xff1a; int x1 假设序列化后是 1(int、Integer) long y1 就是 1(long,Long) …

吴恩达deeplearning.ai:学习曲线决定下一步怎么做

以下内容有任何不理解可以翻看我之前的博客哦&#xff1a;吴恩达deeplearning.ai专栏 学习曲线是一种图形表示方法&#xff0c;用于展示模型在训练过程中的学习表现&#xff0c;即模型的训练集和验证集上的性能如何随着训练时间的增加而变化。可以帮助我们了解模型的学习进度。…

【大厂AI课学习笔记NO.65】机器学习框架和深度学习框架

笔记思维脑图已上传&#xff0c;访问我的主页可下载。 https://download.csdn.net/download/giszz/88868909 广义上&#xff0c;机器学习框架包含了深度学习框架。 本质上&#xff0c;机器学习框架涵盖分类、回归、聚类、异常检测和数据准备等各种学习方法。 深度学习框架涵…

足球青训俱乐部|基于Springboot的足球青训俱乐部管理系统设计与实现(源码+数据库+文档)

足球青训俱乐部管理系统目录 目录 基于Springboot的足球青训俱乐部管理系统设计与实现 一、前言 二、系统设计 1、系统架构设计 三、系统功能设计 1、管理员登录界面 2、公告信息管理界面 3、学员管理界面 4、商品信息管理界面 5、课程安排管理界面 四、数据库设计…

【MATLAB源码-第155期】基于matlab的OFDM系统多径信道LS,LMMSE,SVD三种估计算法的比较误码率对比仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 OFDM&#xff08;Orthogonal Frequency Division Multiplexing&#xff0c;正交频分复用&#xff09;是一种高效的无线信号传输技术&#xff0c;广泛应用于现代通信系统&#xff0c;如Wi-Fi、LTE和5G。OFDM通过将宽带信道划分…

程序环境和预处理(2)

文章目录 3.2.7 命名约定 3.3 #undef3.4 命令行定义3.5 条件编译3.6 文件包含3.6.1 头文件被包含的方式3.6.2 嵌套文件包含 4. 其他预处理指令 3.2.7 命名约定 一般来讲函数和宏的使用语法很相似&#xff0c;所以语言本身没法帮我们区分二者&#xff0c;那我们平时的一个习惯是…

一篇文章了解和使用Map和Set(HashMap/TreeMap/HashSet/TreeSet)

[本节目标] *掌握HashMap/TreeMap/HashSet/TreeSet的使用 *掌握了解HashSet和HashSet背后的哈希原理和简单的实现 1. 搜索树 1.1 概念 二叉搜索树又称二叉排序树,它或者是一颗空树,或者是具有以下性质的二叉树: 1.若它的左子树不为空&#xff0c;则左子树上所有节点的值都…

微信小程序(四十九)拦截器处理登入失败情况

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.拦截器判断处理失败与成功的情况 2.使用拦截器拒绝失败的情况&#xff0c;使网络请求后面的逻辑步骤不会执行 源码&#xff1a; index.wxml <button type"primary" bind:tap"onSubmit"…

c#打印BarTend标签提示:具名数据源没有cuckoo*具名数据(解决)

c#打印BarTend标签提示&#xff1a;具名数据源没有cuckoo*具名数据&#xff08;解决&#xff09; 今天咕咕更新打印模板的时候遇到的问题&#xff0c;就是在模版中配置了字段名&#xff0c;但是启动c#应用&#xff0c;后端发送json数据打印的时候c#报错提示&#xff0c;没有在…