数据处理如何做到高性能低成本?

区块链大本营 区块链大本营     2022-10-23     344

关键词:

从关系型数据库、大数据、数据仓库、数据湖,到如今的湖仓一体,数据处理技术在探索、迭代中不断升级,其背后展现出的算力挑战也被学术界与产业界共同关注。未来,数据处理的最优解是什么?如何提升算力?本文从历史发展与未来趋势两个维度分析。

作者 | 田玮靖       

出品 | 《新程序员》编辑部

2003年,杨磊正使用C语言和汇编语言在通信行业默默耕耘。

这一年,他加入华为,专注操作系统内核、分布式系统的研发。华为是中国较早拥抱开源、引进开源软件的企业,在华为工作期间,杨磊深度遨游于Linux社区,彼时的Power PC是做通信设备、嵌入式平台的主流处理器,杨磊便基于Power PC for Linux做开源贡献。而追根溯源,他的开源思想启蒙和大部分人一样来自The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary(1999年出版,中文译著《大教堂与集市》),这本被称为开源运动的“圣经”。“读这本书以及后来的《Unix编程艺术》,对编程爱好者来说是一种心灵的净化”,杨磊谈道。

“我认为开源是一种文化、一种氛围,它和云原生一样,建立了对等的合作生态,而非一种技术方式”。开源讲究去中心化,避免了所谓的强权与垄断。纵观中国开源发展历程,在互联网诞生后,开源的能力被更加放大了,诞生了更多开源软件、开源社区、开源组织。

杨磊:北京滴普科技有限公司联合创始人、FastData产品线总裁,中国信息协会大数据分会常务理事。资深技术专家,在操作系统、分布式软件体系、编译等领域有突出贡献,曾任大型集团企业超大规模分布式架构的核心架构师,曾在华为深耕13年。

《新程序员》:杨磊从通信行业转入了数据行业,他使用的主要技术语言从C换成了Python,也从关注技术如何能够领先升级为思考技术如何落地商业化。唯一没变的是对开源文化的热爱。Coding结合开源,或为开源社区做贡献,与开源社区合作,在杨磊职业生涯中一直占据重要位置。他要求团队成员高度重视并拥抱开源,构建个人的开源影响力,在开源社区的活跃度和贡献度,也会被纳入个人职级晋升的考核中。

而一旦开源被加入管理体系,因管理成分驱动而行,就难免“被”KPI。正如许多企业为了塑造品牌影响力,对下传递开源要求,最终却变成了组织的行动目标和考核目标。或许是因为杨磊的职业生涯中有过这样的经历,作为开源爱好者,他更看重与开源社区共同成长的一面。单靠产品获取成功,力量太过薄弱,“业界成功企业中没开源的非常少”;单靠技术实力,早晚也会被赶超,大约20年前,很多企业拥有专利,技术门槛极高,如今许多技术不超半年便会被突围。

也正因受开源文化影响,杨磊后来创业,走上了去中心化、技术融合的道路。

  《新程序员》004期刊上线👆48位一线大咖倾情分享👆

数据平台的三个发展阶段

《新程序员》:从1997年接触编程,并专注于底层技术领域的杨磊,见证了数据平台发展的整个历程。

2003年,距Google成立已经过去五年。五年间,其搜索引擎的网页抓取、索引、查询等需求量大增,数据量也成倍攀升,Google亟需扩展存储容量、优化搜索算法。

随后三年,Google相继研发出分布式文件系统GFS(Google File System)、分布式计算框架MapReduce、分布式数据存储系统Bigtable,以解决上述问题,并以论文形式对外分享了这三项技术。三篇论文影响深远,直接催生了Hadoop这个大数据系统,基于Hadoop,又衍生出Spark、HBase、Hive、ZooKeeper、CDH等大数据时代的产品。

在杨磊看来,如果将数据平台的发展分为三个阶段,那么,大数据是第一阶段。其背后展现了彼时关系型数据库对数据处理能力不足的问题,分布式与大数据的出现使该问题得以解决。然而,该时代的产品主要处理批数据,无法处理实时数据,这对于当时的企业或政府而言当然不构成问题。可功能强大的Hadoop也存在使用难度大、运维成本高、组件繁杂、难以定位问题等缺陷,这令许多企业望而却步。

此时,以Snowflake、Greenplum等平台或产品为主导的MPP(大规模并行处理)架构数据仓库浮出水面,迎来了数据平台发展的第二阶段。无奈数据仓库只支持结构化数据。作为另一种数据存储方式的数据湖虽然可以存储半结构化、非结构化的数据,但只具备存储能力,不具备分析能力,从而无法形成数据资产化。

因此,许多企业选择同时搭建数据仓库和数据湖,数据便出现了冗余。此时,新的湖仓一体(Data Lakehouse)试图解决这个问题,具体方法是将数据仓库构建在数据湖之上。这样一方面降低了存储成本,另一方面也提升了数据处理能力,还额外解决了流批统一的计算问题。这便是数据平台发展的第三阶段。以湖仓一体架构为代表的新一代数据基础设施,基于大数据平台,具备存储与计算分离和多样化计算服务能力,可以应对海量多源异构的实时数据,解决多种技术平台的技术债务,支撑可持续演进的业务体系。

纵观21世纪以来数据平台的发展与变化,不难发现其背后的原动力是应对数据大爆炸之后算力需求不断升级带来的挑战。互联网、开源和云计算更加速了这一过程。同时,技术融合的趋势也日渐明显。

不断升级的数据处理需求

《新程序员》:2016年,杨磊已在操作系统、分布式软件体系、编译等领域深耕多年,决定离开任职十三年的华为去创业。彼时“中台”概念正盛,他似乎看到了用微服务解决传统大烟囱式软件构建存在问题的机会。而当他进入微服务领域后,才发现事情并不简单,由分布式系统产生的庞大数据量引发了数据处理、数据治理的挑战不断升级。杨磊判定,“这很可能是未来的方向”。

当时,数字化转型浪潮正一浪推一浪地往前走,许多传统企业如鱼虾一般在浪潮中翻滚、前行,互联网企业也在想方设法提升数据处理能力、最大化提升数据价值。

杨磊观察到,信息化使业务数据流程化、体系化、自动化,数字化则推动企业基于业务系统和数据内容重新制定业务流程。在此过程中,初期,企业会认识到数据的价值,能够直接感知数据分析和数据挖掘带来的效益;到了中期,当企业盘点并梳理业务数据时,才发觉数据繁杂、质量参差、管理困难,此时各种各样的数据工具摆在企业决策者面前,却难以选择;直到后期,一些企业开始考虑自研数据平台以支撑业务,但往往因为数据基础薄弱,数据人才缺乏,数据价值依赖业务分析,导致耗费大量人力、物力而建成的数据平台,对业务的助力并不理想。

在这之后,一些企业倾向以业务为单元,快速构建数据处理能力,挖掘业务价值,通过业务的反作用力加快数据平台的建设。与此同时,云原生技术的趋势渐热,杨磊分析,这是成本决策的结果。虽然从表面看离业务层较远,使许多企业对云原生的投入犹豫不决,但就企业IT架构而言,云原生位于最底层,也是最重要的一层。具体而言,它的如下显著特征都可以帮助企业降低成本:

  • 以容器化形式部署,企业能够快速地开发、测试、迭代和上线数字化应用,从而降低开发成本;

  • 能够实现系统统一的资源管理和调度,提高运行效率,使分布式系统的运行更平稳,降低系统复杂性和运维成本;

  • 可实现存储与计算分离、弹性扩容与缩容,也简化了多云和混合云部署,降低使用成本。

    在杨磊看来,在此行业大环境下,数字化转型是业务发展趋势,云原生则可以看作技术发展趋势。细分领域内,海量、多源、异构的数据处理挑战背后显现出的是未来企业对算力的需求。机遇、方向都明确了,他便一头扎进数据智能服务领域,决心做基于云原生架构的新一代PB级实时数据产品,帮助企业建立流批一体、湖仓一体的分析型数据库。

图1 集数据存储、发现、转换、集成、治理、领域建模、生命周期和智能化应用为一体的平台架构

一方面,在如今的数字化、智能化浪潮下,企业重点建设以业务系统的数据为基础,集数据存储、发现、转换、集成、治理、领域建模、智能化应用为一体的平台(见图1),将数据价值与业务结合,反哺或催生创新业务。在此系统中,高性能、低成本的湖仓一体是数据底座,异构、多源的数据都将得到统一存储,多种符合数据领域需求的计算负载为数据链路的循环提供了载体。

另一方面,杨磊认为,流批一体、湖仓一体的架构,是技术演进的必然结果。对于企业而言,可以获得更低成本、更高性能,且使用门槛更低的数据基础设施;于开发者而言,经过在开源社区和开源组件方面的多年耕耘,可以持续共享这些组件带来的红利,将更多精力投入数据价值和商业化方向中。

扫码加入《新程序员》读者交流群

交流技术、共同提高

算力需求才是根本问题

《新程序员》:面对与日俱增的算力需求,据杨磊分析,当下乃至未来有两种解决方式。一种是像ClickHouse这样的数据处理软件,可以极大提升单机性能,以加快数据处理的速度。如今已有机构在研究利用GPU替代CPU处理数据,因为GPU的算力天花板更高,数据处理的能力或许会更上一层楼。另一种是弱化数据平台,基于云,接入数据进行处理并实现弹性计算。而软件或架构一旦云化,性能必定受损,也需要考虑网络I/O与时延、数据一致性等问题。

不过,目前已有利用公有云接入数据或利用混合云处理数据,从而实现弹性计算的案例。在杨磊看来,他更看好后者,认为未来的数据平台将会利用云的承载方式或计算方式解决更多横向扩展、按需计算的问题。

基于云的数据处理,还有一个核心逻辑与潜在趋势。

核心逻辑即找专业的人干专业的事。例如,在一条生产链路中,原来是总包给一个厂商,而在云时代,每个环节都能找该领域内最专业的厂商。比如数据处理,按照之前的方式,可能统交Oracle解决全链路需求,换作云的方式后,多云连接由F5 Networks承接,数据同步找DataLink,等等,由多项产品以云的方式灵活组合。

潜在趋势则表现为以下三点。 

  • 数据分析加速:随着数据平台建设的不断深入,企业对数据价值及业务决策的支撑需求更为迫切,数据分析师这个群体在传统企业中也迅速壮大,要求数据平台支撑更快、更便捷的数据分析,对数据准备、数据探索、数据实时、数据交互等方面提出了更高的要求。 

  • 开放性:基于现代数据栈全链路的能力,企业级数据平台需要具备开放性。包括离线和在线一体化的数据集成能力、基于分布式存储的湖仓一体能力、集成DataOps 2.0的一站式数据治理和数据开发的能力、统一元数据管理和数据资源管理的能力,以及数据资产管理和运营的能力。其中,DataOps 2.0的核心在于将数据层面的开发、建模、部署、运维一体化,并为数据治理和监控提供基础的元数据、服务引用、调用链路等能力,基于业务的动态数据建模、更丰富且智能的算法内嵌,降低企业使用数据的门槛,使数据链路更简捷、更高效。

  • Data Cloud Service:数据将搭载云技术为企业提供服务,且数据安全性和相关的法律、法规正在不断完善。未来,企业的核心数据仍在私有域,云化可能以一种联邦混合的方式提供数据计算、分析、探索的能力,以更低的成本加速数据变现及其价值体现的过程。如何让数据更安全的在混合云中存储、传输、使用和展示,将是云时代的重要课题。

    数据处理与算力提升的最优解

《新程序员》

21世纪初,大数据技术的应用场景还局限于大型互联网企业或银行,15年过去,高端制造业、头部零售业、生物医药业及新能源行业都能看到大数据技术的身影。互联网的发展、数字化的改革浪潮带来的数据大爆炸,促使企业不得不思考效能更高的数据处理方式。从数据库、数据仓库、数据湖、大数据等技术的一一实践,到集各类所长的湖仓一体,可见技术融合势在必行,开源、云原生等文化理念更是加速了这种趋势。而数据处理背后的终极问题——算力,相信未来通过与“云”结合的方式,也将不断提升。

那么,基于云原生,采用湖仓一体架构的数据处理平台能够完全解决当下及未来的数据处理和算力问题吗?“只能说在现阶段和可预见的几年内,它是一个最优解”,杨磊坦言,“湖仓一体架构的数据处理平台最大的短板就是接受度”。对很多企业来说,如果其数据处理需求并不高,数据仓库就能满足,升级为湖仓一体也是件难事。因此,湖仓一体与云原生作为较新的技术,被大众接受并在复杂场景中发挥其价值,未来或许还需要一定时间。

《新程序员001-004》全面上市

对话世界级大师,报道中国IT行业创新创造

数据处理如何做到高性能低成本?

...数据、数据仓库、数据湖,到如今的湖仓一体,数据处理技术在探索、迭代中不断升级,其背后展现出的算力挑战也被学术界与产业界共同关注。未来,数据处理的最优解是什么?如何提升算力?本文从历... 查看详情

没有电商巨头有钱,又要挑战双十一流量高峰,一次低成本高质量的大促是如何做到的?

今年7月初,易车网数据库负责人田震愈发焦虑。此时,离易车818汽车狂欢节正式开幕只剩一月有余,但数据库压力测试结果并不理想。818汽车狂欢节乃易车网首次大促活动,并且采用台网互动的直播形式,涉... 查看详情

国产arm+fpga+ad低成本高性能数据采集卡方案

前言近年来,随着中国新基建、中国制造2025的持续推进,单ARM处理器越来越难胜任工业现场的功能要求,特别是能源电力、工业控制、智慧医疗等行业通常需要ARM+FPGA架构的处理器平台来实现特定的功能,例如... 查看详情

以低成本方式托管大型表,同时保持性能可扩展?

】以低成本方式托管大型表,同时保持性能可扩展?【英文标题】:Lowcostwaytohostalargetableyetkeeptheperformancescalable?【发布时间】:2012-11-2921:14:30【问题描述】:我有一个存储时间序列数据的不断增长的表,现在有5亿条条目,每天... 查看详情

升级全新网络方案,给你低成本高性能的裸金属体验

摘要:对政企、金融客户来说,裸金属服务器相比于云服务器,更能满足他们对性能和稳定性的要求。但裸金属服务器的网络实现,却存在成本高、灵活性差、成熟度不足等问题。为解决这些问题,华为云Stack... 查看详情

媒体观点|没有电商巨头有钱,又要挑战双十一流量高峰,一次低成本高质量的大促是如何做到的?

今年7月初,易车网数据库负责人田震愈发焦虑。此时,离易车818汽车狂欢节正式开幕只剩一月有余,但数据库压力测试结果并不理想。818汽车狂欢节乃易车网首次大促活动,并且采用台网互动的直播形式,涉... 查看详情

如何借力alluxio推动大数据产品性能提升与成本优化?

内容简介随着数字化不断发展,各行各业数据呈现海量增长的趋势。存算分离将存储系统和计算框架拆分为独立的模块,Alluxio作为如今主流云数据编排软件之一,为计算型应用(如ApacheSpark、Presto)和存储系... 查看详情

云图说|云数据库gaussdb如何做到卓越性能

...文分享自华为云社区《【云图说】第275期云数据库GaussDB如何做到卓越性能》,作者:阅识风云。对于数据库来说,性能一直被视为最关键的部分。GaussDB作为华为自主创新研发的分布式关系型数据库,那么华为云数据库GaussDB在提... 查看详情

什么是负载均衡

...都会造成直接的商业损失。所有这些都对应用服务提出了高性能和高可靠性的需求。但是,相对于网络技术的发展,服务器处理速度和内存访问速度的增长却远远低于网络带宽和应用服务的增长,网络带宽增长的同时带来的用户... 查看详情

高性能mysql如何做到高扩展性

吞吐量:单位时间内处理的请求数TPS:每秒处理的事务数QPS:每秒处理的查询次数三个方法论1.SharedEverthing针对单个系统,完全共享CPU,Memory,磁盘系统,这样并行处理能力最差,比如SQLServer2.SharedNothing不存在共享资源&... 查看详情

stm32如何定义16位的数组

...,格式如下:  constu16XXX[]=;  STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M内核。  所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名... 查看详情

如何区分 C++ 中的高性能和低性能内核/线程?

】如何区分C++中的高性能和低性能内核/线程?【英文标题】:HowcanIdistinguishbetweenhigh-andlow-performancecores/threadsinC++?【发布时间】:2021-09-2708:23:16【问题描述】:在谈论多线程时,通常似乎线程被视为平等-与主线程相同,但在其旁... 查看详情

如何合理的使用redis内存

...相比于磁盘来说,还是比较昂贵,在成本与性能中我们该如何去权衡,那在使用Redis时,如何做到保证良好的性能并更节省内存呢?内存模型模型简介Redis的数据存储,主要涉及到内存分配器(默认jemalloc),简单动态字符串(SDS... 查看详情

通用的数据自动分析方法低代码低成本分析数据

数据分析自动化​数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求最大化地开发数据的功能,发挥数据的作用。随着信息化的发展,数据分析需求越来越大,正深入各行各... 查看详情

如何实现嵌入式处理器的低功耗?其工作原理是啥?

...强对电池管理,而且能够增强管理性能。以此来协调有关高性能和自身功耗之间相关矛盾问题解决,能达到有效节能目的从最大程度上降低有关供电电压使用,利用这种事实和发展能够保证高质量发展和未来长期有效突破。并且... 查看详情

glm国产大模型训练加速:性能最高提升3倍,显存节省1/3,低成本上手(代码片段)

作者|BBuf、谢子鹏、冯文2017年,Google提出了Transformer架构,随后BERT、GPT、T5等预训练模型不断涌现,并在各项任务中都不断刷新SOTA纪录。去年,清华提出了GLM模型(https://github.com/THUDM/GLM),不同... 查看详情

如何在低规格系统上的大表上提高 MySQL 性能?

】如何在低规格系统上的大表上提高MySQL性能?【英文标题】:HowcanIimproveMySQLperformanceonalrgetableonlowspecsystem?【发布时间】:2015-03-1908:06:50【问题描述】:我有一个RaspberryPi,我一直在使用它来记录从一堆1-Wire传感器收集的家庭温... 查看详情

分布式系统

...低成本PC,兼备自动容错,自动负载均衡等机制。高性能:秒,毫秒,亚秒级别。易用: 查看详情