2003年一个黑色的机柜悄悄运进了美国一家零售商的机房。几天后那家公司的负责人打来电话声音里带着难掩的激动原本需要整整一夜才能跑完的分析报表在这台机器上不到一小时就完成了——而且价格还不到原系统的一半。这台机器的制造者是一家名不见经传的马萨诸塞州创业公司——Netezza。如果说数据库一体机的历史是一部波澜壮阔的商业战争史那么这场战争的主战场在很长一段时间里就叫做“数据仓库”。在这片江山上Teradata曾是无可争议的王者而Netezza的出现则改变了竞争格局它所掀起的波澜将在此后十年间彻底重塑数据仓库市场。01.聚数成仓数据仓库概念的诞生在深入讲述Netezza之前我们必须先回溯数据仓库这一概念的诞生因为正是这个概念的出现定义了整个战场。1988年IBM爱尔兰研究中心的两位研究员——巴里·德夫林Barry Devlin和保罗·墨菲Paul Murphy——发表了一篇题为An Architecture for a Business and Information System商业与信息系统的体系架构的论文刊载于《IBM系统期刊》IBM Systems Journal。在这篇论文中他们首次正式提出了“商业数据仓库”Business Data Warehouse简称BDW的概念将其定义为用于商业报告的包含所有信息的单一逻辑仓库。然而这个概念在IBM内部几乎石沉大海——毕竟那是一个主机和专有软件大行其道的年代IBM的营收来自销售服务器和DB2、IMS数据库而不是来自帮助用户打通数据孤岛。德夫林和墨菲的论文发表时IBM的几位高管只是礼貌地点了点头随即将其束之高阁。多年后德夫林在回忆这段往事时不无苦涩地说“我们早就把答案写出来了只是没人想看。”IBM对数据仓库这一新生概念的漠视恰恰为日后大量创业公司打开了机会之窗。图1 比尔·恩门1991年独立顾问比尔·恩门Bill Inmon见图1出版了划时代的著作《构建数据仓库》Building the Data Warehouse为数据仓库下了一个被广泛接受的定义“数据仓库是一个面向主题的、集成的、时变的、非易失性的数据集合用以支持管理决策。”——Bill Inmon《Building the Data Warehouse》1991年这本书的出版标志着数据仓库正式从学术概念走向工程实践。比尔·恩门也因此获得了“数据仓库之父”的称号。然而学术界的故事并未就此平静。就在恩门的书出版后不久另一位数据仓库大师拉尔夫·金博尔Ralph Kimball于1996年出版了《数据仓库工具书》提出了截然不同的“维度建模”Dimensional Modeling方法论。恩门主张从企业全局出发、自上而下地构建高度规范化的企业数据仓库金博尔则主张以部门需求为核心、自下而上地构建数据集市Data Mart。两派论战持续近三十年在业界引发无数争论至今没有定论——但这场争论本身反而让“数据仓库”这个概念深入人心。随着数据仓库的概念成型Teradata的历史价值才真正得以彰显。02.因仓而起Netezza为数仓一体机正名事实上Teradata在1979年创立时数据仓库这个词还不存在。但其创始人杰克·谢默Jack Shemer和菲利普·尼奇斯Philip Neches在加州理工学院附近的一间小办公室里构想的系统天然契合了日后数据仓库对大规模并行分析的需求。Teradata首台样机DBC/1012于1984年以百万美元高价交付给美国富国银行——用户愿意买单因为它能做到其他任何系统都做不到的事同时处理来自数百个终端的复杂分析查询而不崩溃。到1990年代Teradata已成为数据仓库领域无可争议的霸主为沃尔玛、美国银行、联邦快递等巨头构建了动辄数十乃至数百TB规模的系统。然而绝对的领先地位有时也是骄傲的温床。图2 Netezza的Logo虽然Teradata一直聚焦于大数据量的处理也是事实上数据仓库领域的领导者但是“数据仓库一体机Data Warehouse Appliance”之名却是Netezza如图2所示缔造的。图3 福斯特·欣肖Netezza的诞生源于一次意外的顿悟。1990年代末福斯特·欣肖Foster Hinshaw见图3还是一名四处奔走的Y2K独立顾问毕业于康奈尔大学电气工程系并拥有哈佛MBA学位。在为史泰博等波士顿大客户解决数据库问题的过程中他一次次地目睹同样的场景企业把钱砸在最快的服务器上分析查询却依然慢如蜗牛——因为瓶颈根本不在CPU而在硬盘到CPU之间那条拥堵不堪的数据公路。1999年12月30日他在特拉华州注册了一家名为“智能数据引擎Intelligent Data Engines, Inc.”的公司立志把这条公路彻底打通。2000年吉特·萨克塞纳Jit Saxena加入公司于同年11月更名为Netezza。萨克塞纳是印度裔美国移民1945年生于印度比纳Bina父亲是一位乡村医生。在印度理工学院孟买分校IIT Bombay学完电气工程后他飘洋过海来到美国密歇根州立大学取得硕士学位又在波士顿大学拿到MBA。1983年他创立Applix1994年带领公司登陆纳斯达克成为新英格兰地区最早上市的印度裔美国人创业公司之一。当他第一次听欣肖讲那个“把计算放在数据旁边”的疯狂想法时其他所有潜在CEO人选都摇头离开只有萨克塞纳说“我懂你说的我们一起做。”Netezza这个名称来源于乌尔都语1Urdu意为“结果”Results。这是一对教科书式的互补搭档欣肖沉默寡言脑子里装的全是硬件逻辑和磁盘I/O萨克塞纳能说会道开口必谈市场痛点和投资人关系。欣肖可以在白板上画出整套FPGA数据过滤管道但让他去见投资人会让双方都如坐针毡萨克塞纳则能在风险投资人面前把一块芯片讲成一场革命却对电路原理一窍不通。公司A轮融资从Charles River Ventures和Matrix Partners拿到了800万美元在马萨诸塞州弗雷明汉一个普通工业园区里磕磕绊绊地造出原型机。萨克塞纳随后拉来了前Sun Microsystems首席执行官埃德·赞德2Ed Zander——他在Data General时代的旧友——加入董事会此举立刻让整个行业重新审视这家名不见经传的创业公司。除了赞德萨克塞纳还利用他在波士顿科技圈的人脉组建了一个阵容强大的董事会。这种“老友记”式的创业模式是Netezza早期能够迅速获得大客户如沃尔玛、亚马逊等早期测试客户信任的关键原因。1乌尔都语是巴基斯坦的国语也是印度的23种官方语言之一属于印欧语系印度-伊朗语族印度语支。乌尔都一词源自波斯语原意为“军营”或“营地”。2埃德·赞德Ed Zander是硅谷和科技界的“摇滚明星”级高管。他曾任Sun Microsystems的总裁兼首席运营官COO并在2004年至2008年期间担任摩托罗拉Motorola的董事长兼CEO。Data General是70-80年代波士顿“128号公路”科技走廊的传奇公司曾是DEC的最大竞争对手。吉特当时是Data General的软件开发副总裁。埃德·赞德当时也在Data General担任营销方面的高级职位。正是这段在同一家公司的“战友”情谊为后来的联手埋下了伏笔。在2000年前后互联网泡沫正在破碎但数据却以前所未有的速度膨胀。电商记录每一次点击电信公司记录每一通电话超市扫描每一件商品。各家企业拥有了前所未有的数据却发现自己站在数据的汪洋中望洋兴叹——分析报表要跑一整夜等结果出来商机早已错过。“数据爆炸”但“分析极慢”成了那个时代所有首席信息官最头疼的难题。常规的数据流处理逻辑是从硬盘读取大量数据通过总线传输到CPU在内存中进行复杂的运算。在这个流程中硬盘读取速度慢总线传输带宽窄这就成为了著名的“I/O瓶颈”。欣肖认为不应该把数据搬运到计算单元CPU而应该让计算直接发生在数据存放的地方。为此他们利用了FPGA3Field-Programmable Gate Array现场可编程门阵列如图4所示芯片在数据从硬盘读出的那一瞬间就直接在硬件层过滤掉不需要的信息。图4 Netezza的FPGA工作原理3FPGA即现场可编程门阵列是一种可在出厂后由用户编程配置的集成电路。与通用CPU不同FPGA可通过硬件逻辑实现特定算法在执行特定任务时具有极高的并行度和能效比。Netezza将FPGA用于数据过滤——在数据从磁盘读出的瞬间FPGA以硬件速度执行行级过滤只将匹配条件的数据传递给CPU处理。这种“近数据计算”架构大幅减少了数据搬运有效缓解了I/O瓶颈是Netezza性能优势的核心技术。Netezza的诞生是数据仓库Data Warehousing历史上的一场“革命”。它并没有走当时主流的“软件优化”路线而是通过软硬件一体化的思路硬生生地在被Oracle和Teradata垄断的市场中撕开了一道口子。Netezza的灵感来源于Britton-Lee。Netezza用的FPGA芯片本质上就是20年后更先进、更便宜的“Britton-Lee硬件加速器”所以Netezza被认为是IDMIntelligent Database Machine的现代复兴。更值得一提的是Britton-Lee“不能独立计算”的基因也被Netezza继承并改良了Netezza内部专门设了一个“Host”服务器前端机如图5所示。后端的FPGA和S-Blades依然只负责“暴力扫描数据”它们还是没法处理复杂的财务逻辑或网页展示。Netezza的前端机就像是当年的“主机”负责接待用户并解析SQL然后再把指令发给后端的“数据库机器”。Netezza的核心架构被称为AMPPAsymmetric Massively Parallel Processing非对称大规模并行处理分为两个层次前端层Host服务器运行Linux SMP系统的主机负责接收SQL查询、编译成执行计划、分发任务以及最终汇总来自后端的结果。Host服务器本身不参与数据扫描它是整个系统的“大脑”和“调度员”。这种设计让人想起Britton-Lee的IDM系统——同样有一台专门的“主机”处理复杂的业务逻辑和用户交互后端的加速器只负责数据处理。Netezza内部将这台Host称为“前端机”它的作用是当年大型机主机角色的精神传承接待用户、解析SQL再把指令发给后端的“数据库机器”。后端层S-Blade片段处理刀片每一块S-Blade即图5中的SPU是一个完整的数据处理单元包含一个多核Intel / PowerPC CPU、专有的FPGA芯片以及若干硬盘。FPGA在数据从硬盘读出的瞬间执行过滤将不需要的数据直接丢弃CPU只处理被FPGA放行的少量数据。数十乃至数百块S-Blade并行工作数据被均匀分布在所有S-Blade上。2009年Netezza从PowerPC转向Intel CPU并采用了IBM刀片服务器平台性能进一步提升。图5 Netezza一体机架构图Netezza最经典的机型叫做TwinFin4外观呈现为一个黑色的服务器机柜内部密布着S-Blade和散热系统机柜背面整齐排列着数以百计的电缆接口有一种工业美感。据早期工程师回忆TwinFin在满载工作时会发出一种稳定的低频嗡嗡声工程师们亲切地称之为“数据引擎的心跳”成为Netezza品牌的标志性记忆。整个系统的查询处理能力与S-Blade的数量完全线性相关——添加更多的S-Blade性能就等比例提升没有任何单点瓶颈这种优雅的线性扩展性在当时的市场上极为罕见。4TwinFin是Netezza最经典的一体机机型。TwinFin的名称寓意“双鳍”象征其前后端分离的AMPP架构。该机型的查询处理能力与S-Blade数量呈线性关系添加更多S-Blade即可等比例提升性能没有任何单点瓶颈。2002年秋Netezza推出了首款正式商用产品NPS 8000系列起步价62.2万美元。Netezza当时的营销口号是“比竞争对手便宜10倍”。当时要处理同等规模的数据购买Teradata的硬件或者在高端服务器上运行Oracle的总成本通常在500万至1000万美元之间。2003年改进版Performance Server正式发售其后端的数据库是基于PostgreSQL 7.2改进的配合Netezza的AMPP硬件架构综合性能令业界震惊。当时它的处理速度比传统商业数据库快10到100倍。早期客户的测试结果令人震惊Epsilon公司一家营销数据分析公司在测试后报告Netezza的查询速度比其之前使用的IBM系统快20倍而成本仅为IBM系统的一半TJX公司The TJX Companies美国最大的折扣零售商之一表示原本需要整整一夜才能跑完的分析作业在Netezza上不到一小时就能完成。这些数字对Teradata的用户来说简直像是一个来自未来的故事。2003年Netezza在发布首款产品的同时还做了一件意义深远的事他们在当年的VLDB国际会议上发表了一篇工业报告首次在学术界和工业界的双重舞台上正式提出了Data Warehouse Appliance数据仓库一体机这一概念并将其定义为“将存储、处理和数据库管理系统集成在单一系统中的闭环设备A closed system integrating storage, processing, and DBMS in a single unit”。这是一个历史性的命名时刻。Netezza用这篇论文为整个行业树起了一面旗帜。从此“数据仓库一体机”成为一个真正意义上的产品品类。Netezza虽然是挑战者但它同时也是这个品类的命名者和定义者——这在商业竞争史上是极为罕见的成就。2004年Netezza已拥有15家客户交付了35套系统并在年底实现盈利。公司的目标市场规模2003年仅数据仓库系统一项的全球支出就达到155亿美元。一时间大量正在因为Teradata的高价和响应迟缓而苦恼的企业将目光转向了这家来自马萨诸塞州的小公司。03.无需调优Netezza靠简易颠覆传统Netezza的崛起让Teradata坐不住了。Teradata首席技术官斯蒂芬·布罗布斯特Stephen Brobst——前MIT教授、数据仓库领域公认的权威——在2003年前后公开开炮嘲讽Netezza不过是把已倒闭的超算公司Thinking Machines和Kendall Square Research的旧人马和旧想法重新拼凑了一遍并断言这种设计根本不适合真正的决策支持场景。对此萨克塞纳只淡淡回了一句“他根本没理解我们在做什么。”市场用真金白银给出了裁决。Netezza通过一体机的“开箱即用”模式彻底打破了Teradata的牢固壁垒。Netezza的成功从技术层面来说固然令人叹服但更深层的原因是它将一种全新的商业哲学带入了数据仓库市场——No Tuning无需调优。No Tuning这两个词对于那个时代所有被数据库调优折磨的DBA来说简直像是一道治愈心灵的宣言。在传统的Oracle或Teradata数据库中“调优”是一门深奥的黑魔法。一个优秀的DBA需要为高频查询建立正确的索引否则全表扫描会让系统慢如蜗牛定期收集统计信息以便优化器生成正确的执行计划精心设计分区方案将热数据和冷数据分开存储监控查询计划识别并消除“笛卡尔积”等毁灭性的查询错误以及在系统扩容时处理复杂的数据重分布5Re-hashing操作……5数据重分布Re-hashing是分布式数据库在扩容或数据分布不均时进行的重新数据分布操作。在MPP架构中数据通常按哈希值分布到各节点当增加新节点或数据倾斜严重时需要重新计算哈希值并将数据迁移到正确位置。Re-hashing是分布式数据库运维的复杂操作可能导致长时间停机或性能抖动。Netezza通过均匀分布策略和线性扩展架构避免了Re-hashing需求是其No Tuning理念的重要体现。Netezza的一体机理念让用户可以像家电一样开箱即用不需要像Oracle那样聘请昂贵的数据库管理员DBA进行复杂的调优也不需要像Teradata那样进行复杂的部署和调试。Netezza通过AMPP架构的设计哲学彻底回避了这些问题FPGA的暴力扫描架构意味着不需要索引数据直接推入就能查询均匀分布的并行架构意味着不需要精心设计分区线性扩展的S-Blade意味着扩容不需要Re-hashing。用户只需要把数据载入Netezza然后提交SQL就能得到结果——和传统数据库相比这简直就是两种技术范式的碰撞。Netezza的No Tuning哲学带来了一个意料之外的市场效果它的用户不再主要是技术极客而是业务分析师。在Netezza之前能够操作数据仓库系统的人必须是经验丰富的数据库工程师。但Netezza的简单性和快速性让那些只会写SELECT语句的业务人员也能直接上手。相较而言Teradata的门槛非常之高它像一辆赛车需要专业技师高级DBA长期维护、调优、设计索引。这一变化的商业意义极为深远。当“数据分析”从工程师的专属领地变成业务团队的日常工具时数据分析的需求量就呈现出指数级增长——更多的分析师提出更多的问题更多的问题催生更多的查询更多的查询驱动更多的系统购买。Netezza通过降低使用门槛创造了属于自己的需求。这一逻辑在后来的Tableau、Power BI等商业智能工具中被反复验证。Netezza是最早将这一逻辑应用于数据仓库基础设施层的公司。在商业层面Netezza的发展轨迹同样令人印象深刻2002年1月完成Battery Ventures领投的2500万美元B轮融资2003年7月完成红杉资本Sequoia Capital领投的2000万美元C轮融资——红杉是Google和Apple的早期投资人这次背书让整个行业对Netezza刮目相看。2005年福斯特·欣肖离开Netezza创立了一家名为Dataupia的新公司专注于更大规模的数据存档解决方案。他的离开标志着Netezza从技术驱动向商业驱动的转型完成。2007年7月Netezza以股票代码NZ在纽约证券交易所成功上市完成了吉特·萨克塞纳这位连续创业者人生中的又一次资本市场征程。2008年联合创始人吉特·萨克塞纳宣布退休将CEO一职交给了2006年加入的吉姆·鲍姆Jim Baum。故事并未在此落幕。2010年9月20日IBM宣布以每股27美元、总价约17亿美元的现金全面收购Netezza——距离福斯特·欣肖在特拉华州注册那家小公司恰好整整十年。一个人在工业园区里画出的电路图最终以17亿美元的价格嵌进了世界上最大的科技公司的版图。04.zData中国市场的No Tuning传承者在Netezza所代表的“开箱即用”Appliance哲学在西方市场大获成功的同时中国的数据库市场正在经历一场深刻的变革。2010年代中国企业的数据量和数据分析需求急速增长Oracle、IBM、Teradata的传统产品虽然强大但高昂的价格和对高端DBA的依赖对于大量中型企业来说仍是难以逾越的门槛。就在这一背景下云和恩墨走上了与Netezza相似的历史舞台。云和恩墨成立于2011年核心技术团队包括中国数据库技术圈最早的一批Oracle ACE总监峰值期间有6位。云和恩墨的技术专家在长达20余年的时间里为中国各行业客户处理Oracle数据库的疑难杂症深知Oracle“功能强大但运维复杂、价格昂贵”的双重特性。在这个历史窗口期云和恩墨开始了一条独特的zData一体机产品创新之路。zData的设计思路与Netezza有异曲同工之妙但是更进一步。No Tuning不是真正的“不优化”而是在出厂前深度优化将复杂消弭于用户应用之前自己极繁、而用户极简。云和恩墨的企业基因是数据库优化所以zData不仅能够将数据库所需的计算、存储、网络、监控管理等组件预先集成并优化更能够针对不同品类的数据库设计最佳实践并实现自动化部署。这样用户在zData上线后不需要懂存储架构、不需要进行复杂的数据库规划接通电源、完成简单配置部署即可将现有数据库迁移上去——“开箱即用”这正是Netezza的核心哲学在中国场景下的精准复刻。云和恩墨的一站式数据库环境构建方式为用户带来了极致简化的应用体验如图6所示。图6 云和恩墨一站式数据库环境构建方式与Netezza构建专用硬件不同的是云和恩墨构建的是通用分布式存储软件。这是一条极具挑战的道路。分布式存储是计算机科学中最复杂的领域之一涉及分布式一致性、数据冗余、故障自愈、性能优化等数十个子领域。云和恩墨的工程团队选择了一条有别于Ceph通用分布式文件系统的路线专门针对数据库I/O模式进行优化开发了zStorage——一套去中心化的分布式块存储软件专门为数据库的读写特性量身定制。zStorage采用去中心化架构I/O通过哈希直接寻址无需查询元数据减少交互环节大幅降低时延搭载高速InfiniBand网络带宽达200Gb/s使用NVMe闪存SSD释放闪存潜能。中国移动某省公司的实践是对这套架构最好的验证之一。2018年该省移动的多套系统中就存在数据量快速增加性能衰减严重同时存储无法扩展等问题其中性能问题尤以I/O慢最为突出。面对数百TB的实时计费系统、上百TB的数据仓库带来的巨量I/O压力zData采用了6台高端x86服务器作为支撑三套RAC的计算服务器配合插入多块高I/O闪存卡的15节点存储服务器以裸容量1.2PB、三副本后实际可用存储空间400TB构成具备高计算能力、千万级高IOPS能力、百GB级IO吞吐能力和高可用能力的分布式架构如图7所示全面支撑具有巨量IOPS需求的高并发交易以及海量数据吞吐需求的批处理、数据统计、报表等业务的高效运行。2019年6月zData上线后核心业务的运行速度明显加快——系统整体性能提升超过5倍在真实生产环境中得到了充分验证。图7 zData在某省移动的“6计算节点15存储节点”配置架构05.洞察入微技术的商业化路径回顾Netezza的历史其成功的核心是在技术创新与市场洞察的交汇处找到了一个切入点——在I/O瓶颈最为严重、DBA资源最为稀缺的时代提供了一个“硬件软件服务”深度集成的闭环解决方案。云和恩墨的zData同样是在中国数据库市场的特殊矛盾中找到了自己的切入点在国产化替代的政策背景下在Oracle等外资数据库的高成本与高复杂度面前提供一个“通用、易用、可扩展”的数据库承载平台让企业不必更换数据库应用只需更换底层基础设施即可获得成倍的性能提升和成本节约。更深远的意义在于zData是数据库一体机这一产品品类在“多元数据库时代”的进化形态。Netezza只支持一种数据库基于PostgreSQL的Netezza数据库Oracle Exadata主要为Oracle数据库服务而zData打破了“一体机单一数据库”的桎梏真正实现了让任意数据库在同一套优化硬件上以最优性能运行的愿景——这是过去任何一款数据仓库一体机都未曾实现的目标。往期回顾
数据库一体机简史:谁为数据仓库正名?
2003年一个黑色的机柜悄悄运进了美国一家零售商的机房。几天后那家公司的负责人打来电话声音里带着难掩的激动原本需要整整一夜才能跑完的分析报表在这台机器上不到一小时就完成了——而且价格还不到原系统的一半。这台机器的制造者是一家名不见经传的马萨诸塞州创业公司——Netezza。如果说数据库一体机的历史是一部波澜壮阔的商业战争史那么这场战争的主战场在很长一段时间里就叫做“数据仓库”。在这片江山上Teradata曾是无可争议的王者而Netezza的出现则改变了竞争格局它所掀起的波澜将在此后十年间彻底重塑数据仓库市场。01.聚数成仓数据仓库概念的诞生在深入讲述Netezza之前我们必须先回溯数据仓库这一概念的诞生因为正是这个概念的出现定义了整个战场。1988年IBM爱尔兰研究中心的两位研究员——巴里·德夫林Barry Devlin和保罗·墨菲Paul Murphy——发表了一篇题为An Architecture for a Business and Information System商业与信息系统的体系架构的论文刊载于《IBM系统期刊》IBM Systems Journal。在这篇论文中他们首次正式提出了“商业数据仓库”Business Data Warehouse简称BDW的概念将其定义为用于商业报告的包含所有信息的单一逻辑仓库。然而这个概念在IBM内部几乎石沉大海——毕竟那是一个主机和专有软件大行其道的年代IBM的营收来自销售服务器和DB2、IMS数据库而不是来自帮助用户打通数据孤岛。德夫林和墨菲的论文发表时IBM的几位高管只是礼貌地点了点头随即将其束之高阁。多年后德夫林在回忆这段往事时不无苦涩地说“我们早就把答案写出来了只是没人想看。”IBM对数据仓库这一新生概念的漠视恰恰为日后大量创业公司打开了机会之窗。图1 比尔·恩门1991年独立顾问比尔·恩门Bill Inmon见图1出版了划时代的著作《构建数据仓库》Building the Data Warehouse为数据仓库下了一个被广泛接受的定义“数据仓库是一个面向主题的、集成的、时变的、非易失性的数据集合用以支持管理决策。”——Bill Inmon《Building the Data Warehouse》1991年这本书的出版标志着数据仓库正式从学术概念走向工程实践。比尔·恩门也因此获得了“数据仓库之父”的称号。然而学术界的故事并未就此平静。就在恩门的书出版后不久另一位数据仓库大师拉尔夫·金博尔Ralph Kimball于1996年出版了《数据仓库工具书》提出了截然不同的“维度建模”Dimensional Modeling方法论。恩门主张从企业全局出发、自上而下地构建高度规范化的企业数据仓库金博尔则主张以部门需求为核心、自下而上地构建数据集市Data Mart。两派论战持续近三十年在业界引发无数争论至今没有定论——但这场争论本身反而让“数据仓库”这个概念深入人心。随着数据仓库的概念成型Teradata的历史价值才真正得以彰显。02.因仓而起Netezza为数仓一体机正名事实上Teradata在1979年创立时数据仓库这个词还不存在。但其创始人杰克·谢默Jack Shemer和菲利普·尼奇斯Philip Neches在加州理工学院附近的一间小办公室里构想的系统天然契合了日后数据仓库对大规模并行分析的需求。Teradata首台样机DBC/1012于1984年以百万美元高价交付给美国富国银行——用户愿意买单因为它能做到其他任何系统都做不到的事同时处理来自数百个终端的复杂分析查询而不崩溃。到1990年代Teradata已成为数据仓库领域无可争议的霸主为沃尔玛、美国银行、联邦快递等巨头构建了动辄数十乃至数百TB规模的系统。然而绝对的领先地位有时也是骄傲的温床。图2 Netezza的Logo虽然Teradata一直聚焦于大数据量的处理也是事实上数据仓库领域的领导者但是“数据仓库一体机Data Warehouse Appliance”之名却是Netezza如图2所示缔造的。图3 福斯特·欣肖Netezza的诞生源于一次意外的顿悟。1990年代末福斯特·欣肖Foster Hinshaw见图3还是一名四处奔走的Y2K独立顾问毕业于康奈尔大学电气工程系并拥有哈佛MBA学位。在为史泰博等波士顿大客户解决数据库问题的过程中他一次次地目睹同样的场景企业把钱砸在最快的服务器上分析查询却依然慢如蜗牛——因为瓶颈根本不在CPU而在硬盘到CPU之间那条拥堵不堪的数据公路。1999年12月30日他在特拉华州注册了一家名为“智能数据引擎Intelligent Data Engines, Inc.”的公司立志把这条公路彻底打通。2000年吉特·萨克塞纳Jit Saxena加入公司于同年11月更名为Netezza。萨克塞纳是印度裔美国移民1945年生于印度比纳Bina父亲是一位乡村医生。在印度理工学院孟买分校IIT Bombay学完电气工程后他飘洋过海来到美国密歇根州立大学取得硕士学位又在波士顿大学拿到MBA。1983年他创立Applix1994年带领公司登陆纳斯达克成为新英格兰地区最早上市的印度裔美国人创业公司之一。当他第一次听欣肖讲那个“把计算放在数据旁边”的疯狂想法时其他所有潜在CEO人选都摇头离开只有萨克塞纳说“我懂你说的我们一起做。”Netezza这个名称来源于乌尔都语1Urdu意为“结果”Results。这是一对教科书式的互补搭档欣肖沉默寡言脑子里装的全是硬件逻辑和磁盘I/O萨克塞纳能说会道开口必谈市场痛点和投资人关系。欣肖可以在白板上画出整套FPGA数据过滤管道但让他去见投资人会让双方都如坐针毡萨克塞纳则能在风险投资人面前把一块芯片讲成一场革命却对电路原理一窍不通。公司A轮融资从Charles River Ventures和Matrix Partners拿到了800万美元在马萨诸塞州弗雷明汉一个普通工业园区里磕磕绊绊地造出原型机。萨克塞纳随后拉来了前Sun Microsystems首席执行官埃德·赞德2Ed Zander——他在Data General时代的旧友——加入董事会此举立刻让整个行业重新审视这家名不见经传的创业公司。除了赞德萨克塞纳还利用他在波士顿科技圈的人脉组建了一个阵容强大的董事会。这种“老友记”式的创业模式是Netezza早期能够迅速获得大客户如沃尔玛、亚马逊等早期测试客户信任的关键原因。1乌尔都语是巴基斯坦的国语也是印度的23种官方语言之一属于印欧语系印度-伊朗语族印度语支。乌尔都一词源自波斯语原意为“军营”或“营地”。2埃德·赞德Ed Zander是硅谷和科技界的“摇滚明星”级高管。他曾任Sun Microsystems的总裁兼首席运营官COO并在2004年至2008年期间担任摩托罗拉Motorola的董事长兼CEO。Data General是70-80年代波士顿“128号公路”科技走廊的传奇公司曾是DEC的最大竞争对手。吉特当时是Data General的软件开发副总裁。埃德·赞德当时也在Data General担任营销方面的高级职位。正是这段在同一家公司的“战友”情谊为后来的联手埋下了伏笔。在2000年前后互联网泡沫正在破碎但数据却以前所未有的速度膨胀。电商记录每一次点击电信公司记录每一通电话超市扫描每一件商品。各家企业拥有了前所未有的数据却发现自己站在数据的汪洋中望洋兴叹——分析报表要跑一整夜等结果出来商机早已错过。“数据爆炸”但“分析极慢”成了那个时代所有首席信息官最头疼的难题。常规的数据流处理逻辑是从硬盘读取大量数据通过总线传输到CPU在内存中进行复杂的运算。在这个流程中硬盘读取速度慢总线传输带宽窄这就成为了著名的“I/O瓶颈”。欣肖认为不应该把数据搬运到计算单元CPU而应该让计算直接发生在数据存放的地方。为此他们利用了FPGA3Field-Programmable Gate Array现场可编程门阵列如图4所示芯片在数据从硬盘读出的那一瞬间就直接在硬件层过滤掉不需要的信息。图4 Netezza的FPGA工作原理3FPGA即现场可编程门阵列是一种可在出厂后由用户编程配置的集成电路。与通用CPU不同FPGA可通过硬件逻辑实现特定算法在执行特定任务时具有极高的并行度和能效比。Netezza将FPGA用于数据过滤——在数据从磁盘读出的瞬间FPGA以硬件速度执行行级过滤只将匹配条件的数据传递给CPU处理。这种“近数据计算”架构大幅减少了数据搬运有效缓解了I/O瓶颈是Netezza性能优势的核心技术。Netezza的诞生是数据仓库Data Warehousing历史上的一场“革命”。它并没有走当时主流的“软件优化”路线而是通过软硬件一体化的思路硬生生地在被Oracle和Teradata垄断的市场中撕开了一道口子。Netezza的灵感来源于Britton-Lee。Netezza用的FPGA芯片本质上就是20年后更先进、更便宜的“Britton-Lee硬件加速器”所以Netezza被认为是IDMIntelligent Database Machine的现代复兴。更值得一提的是Britton-Lee“不能独立计算”的基因也被Netezza继承并改良了Netezza内部专门设了一个“Host”服务器前端机如图5所示。后端的FPGA和S-Blades依然只负责“暴力扫描数据”它们还是没法处理复杂的财务逻辑或网页展示。Netezza的前端机就像是当年的“主机”负责接待用户并解析SQL然后再把指令发给后端的“数据库机器”。Netezza的核心架构被称为AMPPAsymmetric Massively Parallel Processing非对称大规模并行处理分为两个层次前端层Host服务器运行Linux SMP系统的主机负责接收SQL查询、编译成执行计划、分发任务以及最终汇总来自后端的结果。Host服务器本身不参与数据扫描它是整个系统的“大脑”和“调度员”。这种设计让人想起Britton-Lee的IDM系统——同样有一台专门的“主机”处理复杂的业务逻辑和用户交互后端的加速器只负责数据处理。Netezza内部将这台Host称为“前端机”它的作用是当年大型机主机角色的精神传承接待用户、解析SQL再把指令发给后端的“数据库机器”。后端层S-Blade片段处理刀片每一块S-Blade即图5中的SPU是一个完整的数据处理单元包含一个多核Intel / PowerPC CPU、专有的FPGA芯片以及若干硬盘。FPGA在数据从硬盘读出的瞬间执行过滤将不需要的数据直接丢弃CPU只处理被FPGA放行的少量数据。数十乃至数百块S-Blade并行工作数据被均匀分布在所有S-Blade上。2009年Netezza从PowerPC转向Intel CPU并采用了IBM刀片服务器平台性能进一步提升。图5 Netezza一体机架构图Netezza最经典的机型叫做TwinFin4外观呈现为一个黑色的服务器机柜内部密布着S-Blade和散热系统机柜背面整齐排列着数以百计的电缆接口有一种工业美感。据早期工程师回忆TwinFin在满载工作时会发出一种稳定的低频嗡嗡声工程师们亲切地称之为“数据引擎的心跳”成为Netezza品牌的标志性记忆。整个系统的查询处理能力与S-Blade的数量完全线性相关——添加更多的S-Blade性能就等比例提升没有任何单点瓶颈这种优雅的线性扩展性在当时的市场上极为罕见。4TwinFin是Netezza最经典的一体机机型。TwinFin的名称寓意“双鳍”象征其前后端分离的AMPP架构。该机型的查询处理能力与S-Blade数量呈线性关系添加更多S-Blade即可等比例提升性能没有任何单点瓶颈。2002年秋Netezza推出了首款正式商用产品NPS 8000系列起步价62.2万美元。Netezza当时的营销口号是“比竞争对手便宜10倍”。当时要处理同等规模的数据购买Teradata的硬件或者在高端服务器上运行Oracle的总成本通常在500万至1000万美元之间。2003年改进版Performance Server正式发售其后端的数据库是基于PostgreSQL 7.2改进的配合Netezza的AMPP硬件架构综合性能令业界震惊。当时它的处理速度比传统商业数据库快10到100倍。早期客户的测试结果令人震惊Epsilon公司一家营销数据分析公司在测试后报告Netezza的查询速度比其之前使用的IBM系统快20倍而成本仅为IBM系统的一半TJX公司The TJX Companies美国最大的折扣零售商之一表示原本需要整整一夜才能跑完的分析作业在Netezza上不到一小时就能完成。这些数字对Teradata的用户来说简直像是一个来自未来的故事。2003年Netezza在发布首款产品的同时还做了一件意义深远的事他们在当年的VLDB国际会议上发表了一篇工业报告首次在学术界和工业界的双重舞台上正式提出了Data Warehouse Appliance数据仓库一体机这一概念并将其定义为“将存储、处理和数据库管理系统集成在单一系统中的闭环设备A closed system integrating storage, processing, and DBMS in a single unit”。这是一个历史性的命名时刻。Netezza用这篇论文为整个行业树起了一面旗帜。从此“数据仓库一体机”成为一个真正意义上的产品品类。Netezza虽然是挑战者但它同时也是这个品类的命名者和定义者——这在商业竞争史上是极为罕见的成就。2004年Netezza已拥有15家客户交付了35套系统并在年底实现盈利。公司的目标市场规模2003年仅数据仓库系统一项的全球支出就达到155亿美元。一时间大量正在因为Teradata的高价和响应迟缓而苦恼的企业将目光转向了这家来自马萨诸塞州的小公司。03.无需调优Netezza靠简易颠覆传统Netezza的崛起让Teradata坐不住了。Teradata首席技术官斯蒂芬·布罗布斯特Stephen Brobst——前MIT教授、数据仓库领域公认的权威——在2003年前后公开开炮嘲讽Netezza不过是把已倒闭的超算公司Thinking Machines和Kendall Square Research的旧人马和旧想法重新拼凑了一遍并断言这种设计根本不适合真正的决策支持场景。对此萨克塞纳只淡淡回了一句“他根本没理解我们在做什么。”市场用真金白银给出了裁决。Netezza通过一体机的“开箱即用”模式彻底打破了Teradata的牢固壁垒。Netezza的成功从技术层面来说固然令人叹服但更深层的原因是它将一种全新的商业哲学带入了数据仓库市场——No Tuning无需调优。No Tuning这两个词对于那个时代所有被数据库调优折磨的DBA来说简直像是一道治愈心灵的宣言。在传统的Oracle或Teradata数据库中“调优”是一门深奥的黑魔法。一个优秀的DBA需要为高频查询建立正确的索引否则全表扫描会让系统慢如蜗牛定期收集统计信息以便优化器生成正确的执行计划精心设计分区方案将热数据和冷数据分开存储监控查询计划识别并消除“笛卡尔积”等毁灭性的查询错误以及在系统扩容时处理复杂的数据重分布5Re-hashing操作……5数据重分布Re-hashing是分布式数据库在扩容或数据分布不均时进行的重新数据分布操作。在MPP架构中数据通常按哈希值分布到各节点当增加新节点或数据倾斜严重时需要重新计算哈希值并将数据迁移到正确位置。Re-hashing是分布式数据库运维的复杂操作可能导致长时间停机或性能抖动。Netezza通过均匀分布策略和线性扩展架构避免了Re-hashing需求是其No Tuning理念的重要体现。Netezza的一体机理念让用户可以像家电一样开箱即用不需要像Oracle那样聘请昂贵的数据库管理员DBA进行复杂的调优也不需要像Teradata那样进行复杂的部署和调试。Netezza通过AMPP架构的设计哲学彻底回避了这些问题FPGA的暴力扫描架构意味着不需要索引数据直接推入就能查询均匀分布的并行架构意味着不需要精心设计分区线性扩展的S-Blade意味着扩容不需要Re-hashing。用户只需要把数据载入Netezza然后提交SQL就能得到结果——和传统数据库相比这简直就是两种技术范式的碰撞。Netezza的No Tuning哲学带来了一个意料之外的市场效果它的用户不再主要是技术极客而是业务分析师。在Netezza之前能够操作数据仓库系统的人必须是经验丰富的数据库工程师。但Netezza的简单性和快速性让那些只会写SELECT语句的业务人员也能直接上手。相较而言Teradata的门槛非常之高它像一辆赛车需要专业技师高级DBA长期维护、调优、设计索引。这一变化的商业意义极为深远。当“数据分析”从工程师的专属领地变成业务团队的日常工具时数据分析的需求量就呈现出指数级增长——更多的分析师提出更多的问题更多的问题催生更多的查询更多的查询驱动更多的系统购买。Netezza通过降低使用门槛创造了属于自己的需求。这一逻辑在后来的Tableau、Power BI等商业智能工具中被反复验证。Netezza是最早将这一逻辑应用于数据仓库基础设施层的公司。在商业层面Netezza的发展轨迹同样令人印象深刻2002年1月完成Battery Ventures领投的2500万美元B轮融资2003年7月完成红杉资本Sequoia Capital领投的2000万美元C轮融资——红杉是Google和Apple的早期投资人这次背书让整个行业对Netezza刮目相看。2005年福斯特·欣肖离开Netezza创立了一家名为Dataupia的新公司专注于更大规模的数据存档解决方案。他的离开标志着Netezza从技术驱动向商业驱动的转型完成。2007年7月Netezza以股票代码NZ在纽约证券交易所成功上市完成了吉特·萨克塞纳这位连续创业者人生中的又一次资本市场征程。2008年联合创始人吉特·萨克塞纳宣布退休将CEO一职交给了2006年加入的吉姆·鲍姆Jim Baum。故事并未在此落幕。2010年9月20日IBM宣布以每股27美元、总价约17亿美元的现金全面收购Netezza——距离福斯特·欣肖在特拉华州注册那家小公司恰好整整十年。一个人在工业园区里画出的电路图最终以17亿美元的价格嵌进了世界上最大的科技公司的版图。04.zData中国市场的No Tuning传承者在Netezza所代表的“开箱即用”Appliance哲学在西方市场大获成功的同时中国的数据库市场正在经历一场深刻的变革。2010年代中国企业的数据量和数据分析需求急速增长Oracle、IBM、Teradata的传统产品虽然强大但高昂的价格和对高端DBA的依赖对于大量中型企业来说仍是难以逾越的门槛。就在这一背景下云和恩墨走上了与Netezza相似的历史舞台。云和恩墨成立于2011年核心技术团队包括中国数据库技术圈最早的一批Oracle ACE总监峰值期间有6位。云和恩墨的技术专家在长达20余年的时间里为中国各行业客户处理Oracle数据库的疑难杂症深知Oracle“功能强大但运维复杂、价格昂贵”的双重特性。在这个历史窗口期云和恩墨开始了一条独特的zData一体机产品创新之路。zData的设计思路与Netezza有异曲同工之妙但是更进一步。No Tuning不是真正的“不优化”而是在出厂前深度优化将复杂消弭于用户应用之前自己极繁、而用户极简。云和恩墨的企业基因是数据库优化所以zData不仅能够将数据库所需的计算、存储、网络、监控管理等组件预先集成并优化更能够针对不同品类的数据库设计最佳实践并实现自动化部署。这样用户在zData上线后不需要懂存储架构、不需要进行复杂的数据库规划接通电源、完成简单配置部署即可将现有数据库迁移上去——“开箱即用”这正是Netezza的核心哲学在中国场景下的精准复刻。云和恩墨的一站式数据库环境构建方式为用户带来了极致简化的应用体验如图6所示。图6 云和恩墨一站式数据库环境构建方式与Netezza构建专用硬件不同的是云和恩墨构建的是通用分布式存储软件。这是一条极具挑战的道路。分布式存储是计算机科学中最复杂的领域之一涉及分布式一致性、数据冗余、故障自愈、性能优化等数十个子领域。云和恩墨的工程团队选择了一条有别于Ceph通用分布式文件系统的路线专门针对数据库I/O模式进行优化开发了zStorage——一套去中心化的分布式块存储软件专门为数据库的读写特性量身定制。zStorage采用去中心化架构I/O通过哈希直接寻址无需查询元数据减少交互环节大幅降低时延搭载高速InfiniBand网络带宽达200Gb/s使用NVMe闪存SSD释放闪存潜能。中国移动某省公司的实践是对这套架构最好的验证之一。2018年该省移动的多套系统中就存在数据量快速增加性能衰减严重同时存储无法扩展等问题其中性能问题尤以I/O慢最为突出。面对数百TB的实时计费系统、上百TB的数据仓库带来的巨量I/O压力zData采用了6台高端x86服务器作为支撑三套RAC的计算服务器配合插入多块高I/O闪存卡的15节点存储服务器以裸容量1.2PB、三副本后实际可用存储空间400TB构成具备高计算能力、千万级高IOPS能力、百GB级IO吞吐能力和高可用能力的分布式架构如图7所示全面支撑具有巨量IOPS需求的高并发交易以及海量数据吞吐需求的批处理、数据统计、报表等业务的高效运行。2019年6月zData上线后核心业务的运行速度明显加快——系统整体性能提升超过5倍在真实生产环境中得到了充分验证。图7 zData在某省移动的“6计算节点15存储节点”配置架构05.洞察入微技术的商业化路径回顾Netezza的历史其成功的核心是在技术创新与市场洞察的交汇处找到了一个切入点——在I/O瓶颈最为严重、DBA资源最为稀缺的时代提供了一个“硬件软件服务”深度集成的闭环解决方案。云和恩墨的zData同样是在中国数据库市场的特殊矛盾中找到了自己的切入点在国产化替代的政策背景下在Oracle等外资数据库的高成本与高复杂度面前提供一个“通用、易用、可扩展”的数据库承载平台让企业不必更换数据库应用只需更换底层基础设施即可获得成倍的性能提升和成本节约。更深远的意义在于zData是数据库一体机这一产品品类在“多元数据库时代”的进化形态。Netezza只支持一种数据库基于PostgreSQL的Netezza数据库Oracle Exadata主要为Oracle数据库服务而zData打破了“一体机单一数据库”的桎梏真正实现了让任意数据库在同一套优化硬件上以最优性能运行的愿景——这是过去任何一款数据仓库一体机都未曾实现的目标。往期回顾