作者
digoal
日期
2021-10-14
标签
PostgreSQL , yugabytedb
视频回放: https://www.bilibili.com/video/BV1FL411G7At/
2021年9月20日, 云原生分布式数据库YugabyteDB对外宣布推出云数据库服务, 又一个市值破千亿美元的数据库公司即将诞生?
https://finance.yahoo.com/news/yugabyte-delivers-effortless-distributed-sql-100000027.html
这个问题的答案已经非常明确, 根据IDC的报告, 2020年数据库的云部署形态在中国占比已达52%, 全球占比25%. 预计到2025年全球占比将达到52%, 中国占比73%. 很显然云数据库是未来.
另一方面, mongodb和snowflake的成功也为各个数据库厂商指明了商业化的道路.
- mongodb上市以来的Atlas云服务逐渐成为该公司的核心业务, 据财报披露2022 财年第二季度的总收入为 1.987 亿美元,同比增长 44%。Atlas的订阅收入为 1.914 亿美元,同比增长 44%;服务收入为 740 万美元,同比增长 27%。目前mongodb客户总数超过 29000 家, 毛利率为 69%, 非 GAAP 毛利率为 72%, 市值已超过300亿美元.
- Snowflake2022财年第二季度产品收入2.546亿美元,同比增长103%,市场预期为2.4亿美元;专业服务和其他收入为1757.5万美元。截至2021年7月31日,Snowflake营收留存率为169%。该公司目前拥有4990个客户,其中116个客户过去12个月带来的产品收入超过100万美元。截至2021年7月31日,Snowflake持有的现金及现金等价物为6.99亿美元。
对于数据库厂商来讲, 推出云服务的好处在于它几乎是0成本运作的, IaaS的成本转嫁给了用户. 例如用户是预付费的, 而云服务厂商可以通过购买按量付费的IaaS来部署服务, 甚至可以形成一部分现金流作为金融资本.
即便客户是按量付费或者你也用了预付费形式, 从行业来看DBaaS云服务场所依旧有超过50%的利润空间.
数据库产品要获得商业上的成功, 就目前来看推出云服务是其必由之路.
订阅服务意味着长期的合作, 套用钉钉负责人不穷在混沌大学《ToB产品的自传播》演讲中的一个金句: 当一个企业拥有1万家企业客户的时候, 它就是一瓶茅台, 值得珍藏了. mongodb(29K用户)已经是茅台, snowflake(5K用户)也快了, yugabytedb(拥有900K+集群数)也具有茅台的潜质了.
既然云服务属于商业上的摘果子行为, 说明已经有成熟的果子了. 2017 yugabyte 发布了第一个版本, Yugabyte 早期被设计成一个文档数据库,后来调整技术路线开始主打 SQL 接口。市场决定一切, 谁叫SQL依旧是最流行的数据库方言呢.
yugabyte部分成熟最直接标志如下:
- 900K的集群数部署规模, 说明已经有足够多的实际使用, 是产品运行稳定性的侧面反应.
- 大量的用户案例, 通过这些行业的客户背书, 可以撬动对应行业内的其他用户. 当然是期望撬到Yugabyte云服务的碗里来.
1、主打什么市场
yugabyte最开始主打文档数据库, 但是后来调整为关系数据库战场. 选中了复用PostgreSQL Query层代码, 兼容PostgreSQL协议和SQL语法.
为什么要选中PostgreSQL协议?
- 1、吸收人口红利(这里说的是使用PG方言的人口), 降低触达用户的成本.
- 2、方言趋势向上, 使用PG方言的人口正在越来越多, DB-Engine的数据显示最近7年PostgreSQL每年的增长速度都排在第一或第二.
- 3、还有一点就是PG的开源协议友好. 同时PG的SQL语法是覆盖SQL标准最全面的.
为什么yugabyte选中云原生分布式架构呢?
- 1、云数据库是未来, 据IDC报告, 2020年云部署形态的数据库, 在中国占比已达52%, 全球占比25%. 预计到 2025年 全球占比将达到52%, 中国占比73%.
- 2、规模化协作是未来, 早在几万年前, 人类的祖先智人已经证明了这一点. 在几万年前, 地球上至少有6个人种, 智人并不算最出色的, 脑容量和体格都不如当时的尼安德特人种. 牛津大学历史学博士尤瓦尔·赫拉利在他的著作《人类简史》中详细论述了智人消灭尼安德特人的原因: 在狩猎和采集时代,部落之间的暴力冲突很常见,尤其是在自然灾害导致资源紧张的时期。当尼人和智人相遇必定会爆发暴力冲突,论赤手空拳地单打独斗,体魄强健的尼人一定可以摔断智人的胳膊,但智人不会空手与他们单挑。通过遗址发现和遗传学分析可以确定的是,尼人的部落规模比同时代的智人小得多, 当两个人种相遇,人多势众的智人将会占很大便宜. (与尼安德特人相比,智人的额头部分更大,这里是额叶,也是大脑最后演化的部分,负责语言、社交、情绪和逻辑思维,属于大脑中更高级复杂的能力。) . 人类的文明经历了农耕、手工商、工业、数字信息化时代的变迁, 其核心表现是参与协作的人越来越多, 一个商品(例如iphone)可能涉及到N个国家、N种工种的参与.
机器世界与人类社会是一样的, 都存在分工协作. 如果数据库是机器社会的一个物种, 那么规模化协作能力强的在未来会取代规模化协作能力差的. 所以云原生、分布式数据库是未来的趋势.
- 各个赛道(关系、图、时序、宽列、KV、多模、分析、湖 等)涌现出来的分布式数据库如雨后春笋增加也是最好的证明 (ckdb, yugabyte, polardb, aurora, tidb, citus, polardb-x, tsdb, gdb, milvus ... ... )
主打什么市场?
虽然yugabyte是云原生分布式架构, 但是yugabyte主打的并不是AP也不是HTAP, 就是纯粹的mission-critical TP业务(根据IDC报告2020 OLTP全球市场约占72.3%). 为什么呢?
- 1、HTAP的市场空间还非常小. 根据IDC报告, HTAP市场仅占 3.5%.
- 2、AP的话通常来讲在企业中的在线级别较低, 迁移代价低, 产品可替代性比较强. 正因为这样客户比较容易撬动, 也出现了很多AP的产品, 容易形成红海, 例如hadoop, teradata, gpdb, hashdata, oushu, redshift, adb, dla, hologres, hawq, 等等, 数不胜数. 今天用你明天可能就被别人撬.
2、市场规模有多大
根据IDC报告, 2020年OLTP全球市场约292亿美元. 到2025年OLTP全球市场将达到434亿美元.
3、这些用户有什么痛点
现有最为主流的OLTP产品包括MySQL, PostgreSQL, Oracle, SQLServer在技术以及商务上的缺陷:
- MySQL, PostgreSQL没有很好的水平扩展方案, HA方案, 全球化部署方案.
- Oracle, SQLServer除了贵, 没有很好的全球化部署方案, 实际上水平扩展方案也很一般.
OLTP业务用户的核心诉求主要包括:
- 稳定性, 体现在RT的P99指标
- RTO 尽可能控制在秒级
- RPO=0
- 全球化部署
- 弹性伸缩
- 安全性
- 易用性
- 跨云、混合云部署
4、核心功能有哪些? YugabyteDB靠什么吸引用户?
YugabyteDB 采用分层设计, Query解析与存储层分离, Query解析层支持CQL和SQL两种协议, 分别兼容cassandra和PostgreSQL. 存储层为DocDB, 包含master和T-Server服务, master主要负责表结构、分片映射关系的存储, 分片的自动split, T-Server的心跳和HA等. T-Server则主要用来存储数据(分片).
- https://docs.yugabyte.com/latest/architecture/layered-architecture/
- https://docs.yugabyte.com/latest/architecture/concepts/yb-master/
- https://docs.yugabyte.com/latest/architecture/concepts/yb-tserver/
- 稳定性, 体现在RT的P99指标
- YugabyteDB 采用KV存储数据, 支持hash和range分片, master节点会存储数据结构定义、分片的映射关系等. 同时会根据集群规模、每个分片的大小自动split分片. 最多支持64K个分片. 同时支持分区表功能, 所以理论上64K分片已经足足够用.
- YugabyteDB的P99指标表现也非常优秀. 参考 https://blog.yugabyte.com/yugabytedb-vs-cockroachdb-bringing-truth-to-performance-benchmark-claims-part-2/
- RTO 尽可能控制在秒级
- YugabyteDB 是一个 CP 数据库(一致性和分区容忍性),但实现了非常高的可用性 (HA)。它通过拥有一个活动副本来实现此 HA,该副本准备在当前领导者失败后几秒钟内作为新领导者接管并为请求提供服务。
- 任何一个 tablet-peer leader 的故障会在几秒钟内自动触发一个新的 RAFT 级别leader选举,另一个 YB-TServer 上的另一个 tablet-peer 将取代它作为新的leader。如果 tablet-peer leader 出现故障,不可用窗口大约为几秒钟(假设默认心跳间隔为 500 毫秒)。
- RPO=0
- master服务、每个tablet分片都采用raft协议实现数据多副本, 保障rpo=0.
- 全球化部署
- 支持geo感知的表空间以及客户端驱动. 用户可以定义分区的地理位置, 同时由于client和master感知每个表分区的位置, 可以实现数据的就近访问.
- https://docs.yugabyte.com/latest/explore/multi-region-deployments/row-level-geo-partitioning/#root
- 弹性伸缩
- 加减节点非常方便, master会根据数据和集群规模自动split已有分片.
- 易用性
- 不丢失ACID能力, 兼容两种协议: cassandra 和 PostgreSQL. 存量用户没有学习成本.
- SQL层直接复用了PG 的代码, 所以目标是实现SQL层所有PostgreSQL功能, 目前某些PG存储层的功能还没有支持(例如GiST索引).
- 支持K8S管控服务, 天生具有云原生能力, 既能构建于IaaS之上, 也能在自有硬件环境中部署.
- 支持跨云、混合云部署
5、用户案例有哪些
https://www.yugabyte.com/success-stories/
篇幅原因, 不一一列举, YugabyteDB的客户覆盖如下行业:
- 区块链技术
- 能源
- 金融
- 物联网
- 物流
- 零售&电子商务
- SaaS
- 安全
- 智能设备
- 运营商
打动这些客户的功能包括:
- 全球化部署
- 高性能
- 高可用和弹性伸缩
- 横行扩展
- 混合云部署
- 跨云部署
- 同时兼容CQL和SQL多接口等
6、靠什么来传播
1、开源, 兼容cassandra和PostgreSQL协议几乎没有学习成本.
2、简单易用, 自带K8S套件, 用户几乎没有运维成本.
7、靠什么四两拨千斤
撬动全球开发者参与共同建设, 开发者的参与度非常高, 目前有180多位开发者参与共建. 3000+ issue.
8、有哪些竞争对手, 优势是什么?
YugabyteDB的竞争对手应该来说可以算是MySQL和PG生态的OLTP场景分布式数据库, 包括 citus, postgresql, mysql, spanner, cockroachdb, tidb, pg-xc以及衍生品等.
- https://docs.yugabyte.com/latest/comparisons/#root
下面主要分析一下yugabytedb与tidb、cockroachdb、云产品的差异
YugabyteDB 采用哈希和范围结合的分区方式:可以只有哈希分区、也可以只有范围分区、也可以先按哈希再按范围分区。相比之下,TiDB 和 CockroachDB 都只支持范围分区(cockroachdb也在计划中支持hash分片)。hash分片的优势是写入均衡, 可以利用所有节点的吞吐, 但是范围查询是其弱点需要扫描更多的节点数据. 范围分区则相反, 写入会有热点, 但是基于KEY的范围查询效率更高. (当然了二级索引的范围查询都是无序的, hash和range没有优劣.)
YugabyteDB key-value 的设计很像 Cockroach:每个 cell (一行中的一列数据)对应一个 key-value。而 TiDB 是每个 tuple 打包成一个 key-value。这使得TiDB在查询多列时可能访问更少的BLOCK.但是更新少量列时YugabyteDB和cockroachdb则更占优.
时间戳是分布式事务的关键选型之一。Yugabyte 和 Cockroach 一样选择的是 Hybrid Logical Clock (HLC)。HLC唯一的缺点是不能提供真正意义上的外部一致性,仅仅能保证相关事务之间的“外部一致性”。另一种方案是引入中心授时节点(TSO),也就是 TiDB 使用的方案。TSO 方案要求所有事务必须从 TSO 获取时间戳,实现相对简单,但引入了更多的网络 RPC,而且 TSO 过于关键——短时间的不可用也是极为危险的。
YugabyteDB 和CockroachDB都兼容PostgreSQL, 但是ydb是代码层直接复用, 兼容性更好. cdb只是协议兼容, 语法兼容性较差.
相比于云产品, 用户可以自己部署云原生yugabytedb, 不挑环境, 在IaaS或自有硬件环境都可以部署, 还能利旧. 相当于架空了云厂商的云数据库产品.
9、下一步预测
1、已有客户需求的满足, 优先考虑钱袋深, 有痛点的行业, ROI的考虑.
2、打一枪放一炮. 利用已有客户背书疯狂拓展同行业客户上云.
3、数据迁移、同步、评估类功能. 为存量和上云做好准备.
4、云原生版本和云服务形成呼应, 同时形成一定的差异化.
5、PG的兼容性打磨, 引流更多PG存量用户, 吸收开源红利.
6、产品日新月异, 继续提高品牌和产品壁垒.
- 云原生和分布式是未来毋庸置疑
- 市场决定一切, 产品FLAG要定位清晰, 从0到1 PMF是敲门砖
- 易用性决定了传播能力
- 开源的云原生管控能力应该具备和云服务遥相呼应的能力, 形成卡位
- 1到100需要产品的日新月异, 形成品牌影响力、生态护城河的建立
https://finance.yahoo.com/news/yugabyte-delivers-effortless-distributed-sql-100000027.html
https://3g.163.com/house_x/article/GJ3GM3ON0511CUMI.html
https://www.zhitongcaijing.com/content/detail/544911.html
https://db-engines.com/en/system/YugabyteDB#a32
https://www.yugabyte.com/yugabytedb/
https://www.theregister.com/2021/09/24/yugabytes_doubledecker_dbaas_follows_cochroach/
https://ericfu.me/yugabyte-db-introduction/
https://blog.yugabyte.com/yugabytedb-vs-cockroachdb-bringing-truth-to-performance-benchmark-claims-part-2/
https://docs.yugabyte.com/latest/comparisons/#root