大数据从入门到放弃——浅谈数据架构的前世今生

文章目录

    • 1. 背景
    • 2. 数据的定义及分类
      • 2.1 数据的定义
      • 2.2 数据的分类
      • 2.3 数据和信息的区别
    • 3. 数据的作用
    • 4. 数据的那些美好时代
      • 4.1 人脑时代
      • 4.2 文件时代
      • 4.3 数据库时代
      • 4.3.1 大服务器时代
      • 4.3.2 读写分离时代
      • 4.4 数据库的分布式时代
      • 4.5 云端时代
    • 5. 数据的未来

1. 背景

  随着云时代的发展,大数据的使用变得越来越便捷,数据也变得越来越重要,你可以说一个企业暂时没有从数据中挖掘出价值,但是一个企业绝对不可能离开数据工作,大数据对于很多的人而言,终究像是一位神秘女神,一睹她芳泽的人把她传的神乎其神,导致最终的听者都觉得她无所不能,特别在最近很火的AI生成ChatGPT的带领下,仿佛数据已经是IT技术界的虚空黑洞,不仅可能吞噬一切,而且所有解释不了的东西,最终都可以从中得到答案,尽管博主也觉得ChatGPT 的充满潜力和希望,但是博主今天还是更想跟大家聊聊数据本身的发展规律,用一段走进咖啡厅到出来的时间,一起了解下数据发展的全貌。

大数据从入门到放弃——浅谈数据架构的前世今生_第1张图片

图1.1 走进数据的世界

  写这篇文章的另一个夙愿呢,也是因为偶尔也有隔壁圈的朋友让我写一篇关于介绍数据的文章,一开始我也会觉得,行业内大佬众多,我怎么有资格去写这类的文章呢?但回头再想想,大佬们都忙于“了却Data天下事,赢得生前身后名!”,怎么有时间写这些小事呢?第二个点呢,当看到自己使用的第一代数仓供应商都从中国退市了,数据技术也更新好几代了,突然感觉,自己也成了行业的老人,那就倚老卖老一回吧。

2. 数据的定义及分类

2.1 数据的定义

  数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材,数据可以是连续的值,比如声音、图像,称为模拟数据;也可以是离散的,如符号、文字,称为数字数据,在计算机系统中,数据以二进制信息单元0、1的形式表示。
                                                        ————概念来源百度百科

  非常拗口是么?其实理解下来,就是某时某刻某地点发生某事,记录下的这段内容叫做数据,这段内容可以是文本,也可以是音频/视频;那这段内容到了计算机的世界呢,最底层就是一段段01的二进制编码,这种串的长度和01的不同,都代表了不同的数据。

  • 01、00、10
  • 001、010、100、011、110、111
    ……

大数据从入门到放弃——浅谈数据架构的前世今生_第2张图片

图2.1 0/1的神奇世界

2.2 数据的分类

  为不同的目的,数据使用者可能会把数据分成不同的分类,但是从数据的表现形式上一般分为最常见的结构化数据、遵循某一规律的半结构化数据、毫无规律的非结构化数据

大数据从入门到放弃——浅谈数据架构的前世今生_第3张图片

图2.2 数据表现形式的分类
  • 结构化数据 : 有行(第一维度),有列(第二维度),也叫二维表或关系模型(划重点,后面会考……),首行一般带一个表头,每一列的数据性质上是一样的,每一行的数据列数都相同,最典型的代表就是表格、Excel……
    大数据从入门到放弃——浅谈数据架构的前世今生_第4张图片
图2.3 结构化数据
  • 半结构化数据 :需要你有“找一找”的能力,看看数据的规律,一般是键值对(类似:行者—武松,花和尚—鲁智深),或者是遵循某一规律一条长串字符,典型的代表就是json串,xml文件,日志,摩斯密码,你写给你初中/高中女朋友的火星文情书……
//一个XML文档的例子:a person named'Rowyet Lau'
<name>
  <first>Rowyet</first>
  <second>Lau</second>
</name>



//一个JSON文档的例子:a person named'Rowyet Lau'
{
  "frstname":Rowyet"
  "secondname":"Lau"
}

//一段火星文情书
瀙嗳の(亲爱的)涐嗳伱佷玖ㄋ(我爱你很久了)
  • 非结构化数据 :数据没有固定的格式和规律,就像你的关注的金融曲线,当你以为你把握住了,其实又变化了,典型的代表就是图片、音乐、视频的存储,需要用特定的预览软件才支持查看;

   以下是某一张图片的存储文本样例……

kA≤ô%Í<†y•a<∫+·‘Ëé=?â…u•Z•çúj9r°X|¨}i—jã©sm,flfÉõà⁄«∏«“æ»õˆg¯KrÊ·B§ì˚Ãs‘\ΩˇÏì‡S}-÷Å™\XI"ùÓAê”öÁñ_S°¥qtŸÛ§ŸA˛ì•aqe0v{õw:GS◊ä±m‚n‡≥èt≤ã√XUw|ÏF1ûMfË…ù>ßKi®jˆu⁄5¸∑Odd qú~Õûµ™k˛çÌúG,◊øgéCÛy{@‹ß=Újúû!ªû¨÷≥i“}æëÂG ̵xÔŒ?*≠·ÈıM& €G≤í≥
QØ.c~X3… c“ãXùŒ€≈öæû∫}…∫ªä]Bs2»´ŒŸGøn¢ºUÉWá«1∆ñÂlnÔPvß)∑9Ô‘◊∫xá¡Vöfi¥u]Ü 4à ±Ûʱ1«rp+ŒØ'Ç!öˆ‹˜P¿¨˛Æ{¿s]T?àeY˚:rÙ;ô蟥•yfl_õ˛…˝Ex∆fl&Ô¡˙ú∏Œ“YóÛ5Óz’¿˛ŒX≥¬&OÙ˝Mx«ƒã{y¸©F˝]fl¿Û˙ä˚¯ÎÅ~áÂR©ˇ
Pˇ¸œó¥¸GÚ„8™∫ÇfRqS#l∏+“ãµ´Á–zô€}©‘≈;ˆı®€èÁLªhJÄ*sZ÷guºÁ˝ö…É`f¥‡&;Y8Î≈&fÃÈ*åùj‰Õ÷©…fi≥ab6ÈLjêÛQÓˆ§ä(´((¢ä(¢ä(¢é{P98k[Afi•Ææm£€»úˇjˇÉ<
´xíıT[≤AúôqézW‘æ	¯e§¯f!ÏÃ∑à;Ö¿‘å1„ìé	Í{Ê∞©YCmM©—sflCó¬Õ√ÛŸ^jV^dØ8˘∑ü_Jı/!¥“Eùï®) πı˛èj≥®YŒ˙eΩ‰ÆÓ¶˘UGF¶ù(j±¥ÚÏ– ùó∏˛#äÛß77vv¬

»mùÃ◊÷2››K∂ÈÑÏWÅ˛5ߣœms~•mY¶øî√Ô'ø∑Z¿ÒZoˆíj:$“æöÛeu€>‹Vfiìˆõ€∏€HÖöÌÿ…µ:îPx˙qXîO?â÷°w·’∂⁄∂åg?y§ =±WÙªU‘“‚4.Àí‡ïαpO·Xì˝û;©ÆëB›H€•ë∫Á˚øáJπ£fi^≈5√YñIf)˛(õ®,3√≠flȈˆ®]'*Xé™ÄÚüŒµÌÁ”º3„çCWÇ#,1[Ài8\0˙:∆“!•∆©j<ÃÇ™Ω’N‹Å¯ÒKÆ⁄◊⁄VH$4≠˝ø–ˆ5¥ÌQÔõÀEMË äçUYYf≤L˘ê  v©éë6òˇfπàLJ)<Ö5sBπ∞ö·÷fi;Dûµë¢+Z›œr¨'ç£û%Tî/LZ∂Ìic¢¥ÊEi1 ØW…ÔMöˆfiŒ´c¥a“U˛;¿RÇhØÂó˝ê¬Tw ı†gA≠Xiè†ÃEfi/n /∞ì»˛ßˇ^πÕ^V÷4“o’#"8ïYI$8Û~ü≠l‹¬nÏ¢øY∑G4¢ÿ1?sé∑ˇZßΩª”|=¢I}``π∫K’ÅíBPìÔ”Ù≠P:ã˘÷∑ˇ7õÍ?œ‚*?
Î∂∫löfiôs•ÕzuO.I∂$-œÃ√aœLäáƒ76¶Å¡)MDÃeQèïÜ{gúUÔ
ˡcÇ3®∞î…åü¬ªU^nRÈ˙ûsö}Jãå]§ˆ.Ë>‘u˚襋Àˆ;N¯ˇ?“Ω[BóDsC˝ïÀ'@Ó>f?»Á≠Ãä#Là@¿’Ëû‘5+ïÕæp}œ„_aN˘l~Yâ≈)÷nOSRΫ˛!õÂ˚gëü‡™üëj∑G^nœ^p+´É·n¨SwÿãèsìYzßÑÔt≤D÷…Ÿ8©˙†ñ.6#èYd∂€(?ÑÁΩifiMßxœDXK≠µ›èE'ÔW7%Æ»Aí2†ÚW˚µçq+å∂ŒÍ√åÉW;äw3ùu]û3‚ù'∆>Òt˙éîÚ8ô«ÓY»çàÒ^؇èøà[…˜√Âun∑˘¸Îƒ:åV,∑^!æé÷›πVùˆÁOo†ØÒoÌI‡ˇÖ:ñ®æ
Q¨ÍW,pø‘£î;ôèN≠–gæE|fi"2ß_‘˚z<ôÖÈ∆”ZLÍû3¬
:˜∆+’‡≥Slm„˘áù;ÿÍp◊√_ˇlœxÎOü¡æi4-‡ìq$2f‚Ê?BsÄΩÒÄk√¸uÒ∆>;÷$÷ºe¨K{rÃZ87~ ;28ÆW9˘à«Ù≠mYù∏|≤ù)∫’uì‹ö‚ÚF'a#wfib~f˙ö¨\„öBy¡40\u˝j=KinÅ∑#Æ)π(qIìÍiTù’#ä]çÈF∆Ù´(•ÿfiîmoJíä9Ù¢ÄußSÔN‡–¬ÅCg⁄Ö¸=™Ò°„ÌB˛4&@£"öA`’Ä◊4)¶»	ÈJćPdȯ“'_¬ü'CLèΩ@¶@l”Òä(π4ˇ,„≠=P->¨ó*vˆßÖÕ;e8v†ÚÍE\
7”ņ⁄ÖjWÊê

2.3 数据和信息的区别

   数据信息原则上还是不太一样的,有些同学也会觉得,你搁这给我咬文嚼字呢?其实不然,大部分情况下还是认为数据是信息的载体,信息是由数据所构成,数据是信息重要基础,信息是数据的价值体现,人类发展就是在不断利用各类数据形成有用的信息,这也是数据分析师主要的价值所在。
大数据从入门到放弃——浅谈数据架构的前世今生_第5张图片

图2.4 数据与信息

3. 数据的作用

  聊了这么久的数据,那数据有什么作用呢?人们朝九晚五为数据而孜孜不倦工作的又在做些什么呢?其实涉及数据相关的范畴,一般可以把她划分为三个范畴:数据存储数据计算数据应用; 随着互联网数据的大爆炸,大家又喜欢在前面加一个字,这个后文博主再细细道来。
大数据从入门到放弃——浅谈数据架构的前世今生_第6张图片

图3.1 数据的作用
  • 数据存储:把数据看成液体就很好理解,因为有不同的液体类型,从而衍生出了不同的数据文件,就像不同的液体需要不同的存储容器,从而衍生出了不同的文件系统
  • 数据计算:像不同的液体在源材料上也并非完全纯净,所以需要各种过滤,提纯等清洗、转换的操作,数据也一样的,在为了不同数据应用的目的,期间需要对数据进行清洗、转换、数据关联等等操作,我们统一就叫数据的计算。
  • 数据应用:其实把数据用起来,一些常用的数据如数据可视化、报表、数据查询、专家系统、AI算法等等。

  当然围绕数据三大模块,为了让数据更好的服务及工作的需要,也衍生出了一些其他的数据领域,比如,围绕数据存储数据治理,数据建模和设计,主数据、元数据管理、分布式存储等等;围绕数据计算分布式计算数据质量数据血缘等;围绕数据应用数据安全数据工具等等,以及综合了三者的数据平台,数据中台,大数据等等,其实本质都是这三者的思想,列举的每一块都相对专业一些及有各种的方法论和实践,此处因篇幅问题就不在累赘。

4. 数据的那些美好时代

  时至今日,有些数据的使用、工具和表现形式早已经被数据的使用者潜移默化的认为这些东东不是理所当然的吗?其实整个数据的发展也犹如滴水穿石——非一日之功,在数据的较早期的时代,今天很多理所当然的东西,当时实现起来是相当复杂的,当然其实很多行业也差不多,就像去应聘计算机操作系统的岗位,面试题可能是“请在无操作系统的计算机上实现一下鼠标向右移动显示屏上指针跟着向右移动”,所以审视过去,展望未来,一起来看看数据发展的里程,也是一趟奇妙的旅行。

   大致而言,博主喜欢把数据的时代分为四个阶段:人脑时代文件时代数据库时代云端时代

大数据从入门到放弃——浅谈数据架构的前世今生_第7张图片

图4.1 数据发展的重要时代

4.1 人脑时代

  这个时代可以追溯到人类的起源了,当然这项数据的技能,也伴随我们至今,最简单最原始也是最方便的记录、使用数据当然是用我们的大脑把需要的数据存下来,然后通过心算或者口算把结果计算出来得到有用的信息供需求方使用。
  数据利用人脑存储最有意思的案例可以回到古埃及时期,那时候古人的智慧就知道了“勾股定理”,即直角三角形的两条直角边上的绳子分别等长打3个结,4个结,那么斜边就是等长打5个结的绳子,就能连接起来。
大数据从入门到放弃——浅谈数据架构的前世今生_第8张图片

图4.2 人脑时代

  人脑时代数据存储、数据计算,数据应用的体现如下:

  • 数据存储: 大脑

  • 数据计算: 大脑

  • 数据应用: 各类古建筑的设计,五行八卦,奇门遁甲的推算……

4.2 文件时代

  人脑毕竟太过于随意和任性,而且毕竟大脑的存储空间有限,当学习的信息越来越多,老的信息和数据,就会被慢慢遗忘,所以可靠性更高的办法就是用文件记录下来,当然博主没有说文件时代的出现是以为完全取代人脑时代意思,只是出现了一种更加靠谱及普遍的数据存储,计算和运用的形式。
   文件时代的代表也可以追古溯今,从旧石器晚期的壁画,到羊皮卷、竹简、造纸术的文本,再到现在的电子文件等等,无不体现了该文件时代的思想。
大数据从入门到放弃——浅谈数据架构的前世今生_第9张图片

图4.3 文件时代

  文件时代数据存储、数据计算,数据应用的体现如下:

  • 数据存储: 石壁、竹简、羊皮、绢、纸、电子文件……

  • 数据计算: 大脑,计算器, 电子文件系统自带的计算引擎

  • 数据应用: 各类数据应用

4.3 数据库时代

   数据的文件时代确实解决了很多数据的问题,但是文件时代也有很多弊端,最典型的就是保证数据的一致性数据检索上有比较明显的瑕疵;

  • 数据的一致性:博主叫上学时报名叫Rowyet,然后这个名字记录上报给了班级文件,政教处文件,图书馆文件,门禁文件等,后来博主改名叫Row,可能只上报给了班级文件,其他地方的文件依然显示博主叫Rowyet
  • 数据检索:数据检索最典型的就是电视上如果是纠察一宗十几年前的大案,那些卷宗的查阅画面,我相信读者们还是很有画面感的。

大数据从入门到放弃——浅谈数据架构的前世今生_第10张图片

图4.4 数据库时代

   当然文件文件还有其他的一些弊端,博主在此就不一一列举了,但是有个很有意思的话题,不知道发现了没有,其实文件时代记录内容的更多的是半结构化的数据,为什么这么说呢?因为关系型数据要求记录的每一条数据一定要有相同的列,每一列一定是相同性质的值;但是语文老师叫我们,一个句式主谓宾定状补……,但是一个句子一定要这些元素都整整齐齐吗?答案显然不是,这也就导致其实现实生活中的大多数据记录,原则上半结构化的形式是更准确的,但是半结构化本身是可以转化成结构化的,无非就是有些没有的值强行用数学里面的空集或者用一个约定的默认值来填充即可,比如很随意的一句话;

// 今天爸爸买票,妈妈买零食,我要去迪士尼。

// 其实就很好转化成3条数据 
[
{ 
     "who": "爸爸" 
    ,"what":"买票"
    ,"when":"明天"
}
,
{ 
     "who": "妈妈" 
    ,"what":"买票"
    ,"when":"明天"
}
,
{ 
     "who": "我" 
    ,"what":"去迪士尼"
}
]

   基于文件时代的这些现状和弊端,也随着计算机和互联网的问世及二者相辅相成的蓬勃发展,科学家们就构想有没有一台计算机可以统一存储这些数据,所有人编辑和查阅这些数据都是利用网络来访问这台计算机,这样大家不就拿到的数据一致了吗?人们终于意识到计算机的计算能力可以远远高于人类,那就把数据检索的任务也交给计算机呗,后来的大家都知道了这台计算机叫服务器,计算机上装的软件它叫数据库
   但是其实很多文件记录的数据,大多数还是比较偏向于半结构化数据,科学大佬们发现以文件数据内容本身的结构及当时的计算机的智能和计算水平,并不能很好的处理,于是就先定义了关系模型,于是拉开的关系型数据库的帷幕;

  1. 系统而严格地提出关系模型的是美国IBM公司的埃德加·弗兰克·科德(Edgar Frank “Ted” Codd)1970年提出关系数据模型“A Relational Model of Data for Large Shared Data Banks”, 《Communication of the ACM》,1970(5页)
  2. 1974 IBM公司 “System R” →SQL语言
  3. 加州大学伯克利分校 “Ingres” →QUEL语言
  4. 1988年,两系统均获得ACM的“软件系统奖”。

图4.5 关系型数据库之父——埃德加·弗兰克·科德(Edgar Frank “Ted” Codd)

   于是关系型数据库开始继续前行,关系型数据库发展的道路上,出现了许多著名的公司和产品,这里博主也列举一二;

  • IBM在关系型数据库上的故事
    1977年,IBM完成System R原型
    1982年,IBM推出第一个关系数据库产品
    IBM产品化步伐缓慢的原因:
       1. IBM重视信誉、重视质量,尽量减少故障。
       2. IBM公司内部有非常成熟的层次数据库产品。

  • Oracle在关系型数据库上的故事
    Oracle前身叫SDL,由Larry Ellison和另外两个编程人员在1977年创建。
    开发自己的拳头产品:关系型数据库产品。
    做事的三个要点
       1. 不做研究,只做产品开发;
       2. 尽快的速度推出产品为第一目标;
       3. 产品能够跨平台运行。
    一个数据库、两个客户、三个操作系统、五个人。

   80年代后,关系数据库管理系统(RDBMS)成为最重要、最流行的数据库管理系统。

  • 典型实验系统
    System R
    University INGRES
  • 典型商用系统
    ORACLE
    SYBASE
    INFORMIX
    DB2
    INGRES
    SQLSERVER

   随着关系型数据库发展的极大成功,加上计算机能力的发展,科学大佬们还是发现了某些特定的场合,一味的追求空集或者约定的默认值去填补达到关系型数据,并不是最佳的解答数据的途径,比如经典的场景就是俄罗斯套娃环节,你甚至都不知道要循环套几次,于是非关系型数据库悠然而生。

非关系型数据库,又被称为NoSQL(Not Only SQL ),意为不仅仅是SQL( Structured QueryLanguage,结构化查询语言),据维基百科介绍,NoSQL最早出现于1998 年,是由Carlo Storzzi最早开发的个轻量、开源、不兼容SQL 功能的关系型数据库,2009 年,在一次分布式开源数据库的讨论会上,再次提出了NoSQL 的概念,此时NoSQL主要是指非关系型、分布式、不提供ACID (数据库事务处理的四个基本要素)的数据库设计模式。同年,在亚特兰大举行的"NoSQL(east)“讨论会上,对NoSQL 最普遍的定义是"非关联型的”,强调Key-Value 存储和文档数据库的优点,而不是单纯地反对RDBMS,至此,NoSQL 开始正式出现在世人面前,典型的非关系型数据库代表有MongoDB、CouchDB、Hbase、Redis等等。

大数据从入门到放弃——浅谈数据架构的前世今生_第11张图片

图4.6 非关系型数据结果解决俄罗斯套娃问题

   当然根据数据库不同的特性,某些特定的数据库也会称为内存数据库时序数据库等等,这里就不一一展开讨论了。

4.3.1 大服务器时代

   这个时代的其实各行各业都会出现,就像当年汽车行业追求汽车的最快速度一样,为谁家的汽车跑的直线速度最快而努力奋斗着,其实数据库也一样,各大厂商都为自己的数据库高并发,高吞吐,高响应而自豪,于是各种数据库的服务器性能不断随之提升,伴随着CPU、内存的发展,数据库服务器的能力也水涨船高,但是在类似中国这样地大物博的国度,再大的数据库,还是扛不住某些特殊事情的高峰值访问,如电商的双11,节假日的火车票等等,依然对数据的服务器是巨大的挑战。

4.3.2 读写分离时代

   尽管大服务器性能够强,但是挑战依然在,这个时候就好比一匹马拉不动货物,人们除了培育出更加强壮的马,其实往往会多用几匹马来拉货,那更强壮的马就好比大服务器已经有了,且达到极限了,就必须多几匹马了,于是就有了数据库的从库技术,利用从库从主库里面不断同步数据,数据编辑的业务统统往主库进行,而数据检索,数据查询的业务统统在从库进行,从而实现数据库的读写分析,达到数据的负载均衡来针对特殊的数据高峰访问期。
大数据从入门到放弃——浅谈数据架构的前世今生_第12张图片

图4.7 数据库读写分离

   时至今日,读写分离的方案又有了新的进展,其实结合读写的业务仔细看来,大家发现数据写入最大的核心是为了要遵循数据库的事物,其实就是保证数据在编辑后存回到数据库不会紊乱,比如总共有200张票,购买了199张,那么最后有5个人再购买这张票,就只能按照先后顺序告诉他们其实只有一个人的购票请求成功了,其他人的请求全部得反馈已经没有票了,这一套操作也称之为联机事务处理(OLTP,On-Line Transaction Processing);而数据库的读呢?其实就是为了更好的检索查询数据,其实并没有这种保证数据库事物的复杂操作,更多的是数据检索后再数据分析得到想要的数据结果给到数据应用,因此这一套操作又称为联机分析处理(OLAP,Online Analytical Processing)

大数据从入门到放弃——浅谈数据架构的前世今生_第13张图片

图4.8 OLAP和OLTP

   渐渐大家也意识到OLTPOLAP其实是可以分开处理的,期间其实就是差了一个数据的订阅罢了,说白了就是需要有方式把数据从OLTP同步OLAP数据库,就完成了这一壮举,实现这个方式的方法论离线批处理的叫数据的ETL(抽取[extract]、转换[transform]、加载[load]),具体代表工具有informatica、talend、kettle、datax、seatunnel等;实现这个方式的方法论实时流处理的方法论叫CDC(change data capture),即变化数据捕捉。是数据库进行备份的一种方式,具体代表工具有canal、maxwell、flink cdc、debezium等;

大数据从入门到放弃——浅谈数据架构的前世今生_第14张图片

图4.9 常用的CDC

   一定要OLTPOLAP分开吗?其实准确来说也是要看数据量和你的目的,如果你的数据应用项目数据量并不大,当然是怎么省钱怎么来啦,但是一旦数据量到了一定的瓶颈,那就得认真看看两者的区别了,既然OLTP数据库放在了遵循数据库事物的数据库里面,OLAP应该放在什么数据库合适呢?这就要揭开下一节,数据库的分布式时代。

4.4 数据库的分布式时代

   面对数据大爆炸(本质是随着计算机、网络、数字化的发展,人们搬到互联网上的数据增多了,而非这个世界的数据瞬间增多了多少)的袭来,面对这样一个大数据的时代OLTPOLAP的矛盾也愈演愈烈,OLTP还可以通过拆库拆表的形式应付,但是OLAP数据的分析还是要回归到全域的数据,这种矛盾优先在国际化的一些互联网公司出现,于是谷歌在2003到2006年间发表了三篇论文,《MapReduce: Simplified Data Processing on Large Clusters》《Bigtable: A Distributed Storage System for Structured Data》《The Google File System》介绍了Google如何对大规模数据进行存储和分析,这三篇论文开启了工业界的大数据时代,也使数据库的分布式架构得到空前的发展。
   什么是数据的分布式架构呢?其实本质的思想和上文说到的一匹马拉不动货物,人们除了培育出更加强壮的马,其实往往会多用几匹马来拉货是一样的,说白了就是有一套架构,让原来的单机版有数据库,以集群的模式对外服务,目前业内比较主流的分布式架构主要MPP架构主从架构

  • MPP(Massively Parallel Processing)架构 :类似春秋战国的分封制,各大诸侯内部自带处理政务的一套班子。周天子名义上把大家组成了一个国家;MPP各个节点自带计算能力的CPU和内存,各个节点又组成了一个数据库集群,能够通过将工作负载分散到多个节点上来提高数据处理性能,与传统的共享架构不同,MPP采用非共享架构(Share Nothing),将单机数据库节点组成集群,每个节点拥有独立的磁盘和内存系统,通过专用网络或商业通用网络连接彼此、协同计算,从而提供整体数据处理服务,在设计上,MPP架构优先考虑一致性(Consistency),其次考虑可用性(Availability),同时尽量做到分区容错性(Partition Tolerance),大数据组件里面Teradata、Impala、ClickHouse、Druid、Doris等都是MPP架构。
    大数据从入门到放弃——浅谈数据架构的前世今生_第15张图片
图4.10 MPP架构
  • 主从(Master-Slave)架构:类似秦朝之后的中央集权制度,有个中枢大脑掌管一切,但是中枢大脑只负责协调和分配资源这些统筹兼顾的事情,真实的任务是在中枢大脑的统筹兼顾下在各个子节点上完成的,主从(master/slave)架构也是通常包含一个主节点和多个从节点。主节点统筹兼顾资源和调度,主节点也记录元数据,即文件块位置、权限、大小、其实地址等等,从节点存储文件真实数据块,从节点也负责数据的计算,把计算结构上报给主节点,再返回给请求的客户端,大数据组件里面hadoop、hive、spark、flink等都是主从架构。

大数据从入门到放弃——浅谈数据架构的前世今生_第16张图片

图4.12 主从架构

   当然除了主架构层面,为了更好的实现OLAP,专家大佬们也打起了文件存储格式的注意,首先是文件格式的优化,从我们常用的txt、csv、excel文本类型等,结合文件格式和压缩方式做成压缩率更高,读取时解压率更快的先进文件格式和压缩格式,同时还发现,原有的OLTP为了满足数据库事务来响应数据编辑,用的都是行存储,但是大多数OLAP都是为了对某几列维度上卷、下钻、多维分析,及上文讲到每一列的数据性质是一样的,列存储显然在压缩时因为数据性质相同的原因,压缩比率大大提高,因此大多数OLAP又采用了列存储的文件。
大数据从入门到放弃——浅谈数据架构的前世今生_第17张图片

图4.13 行存储与列存储

   结合列存储和高压缩率,高解压率的特性,产生了很多优秀的大数据文件格式和压缩格式,如parquet文件+snappy压缩、orc文件+gzip压缩等,对于大数据文件的深究,都可以有兴趣可以参考博主的另一篇文章RC ORC Parquet之大数据文件存储格式的一哥之争。
大数据从入门到放弃——浅谈数据架构的前世今生_第18张图片

图4.14 大数据文件性能参考

   伴随着分布式的先进思想,各大企业纷纷开启对自己数据库的改革,八仙过海——各显神通,在使用功能层面,确实使得各大数据库的能力得到了空前的发展。但是为什么有些大数据组件成功了,有些却失败了呢?可能的原因有很多吧,其实比较大的一个原因之一,博主认为是因为,为什么这么说呢,这得从hadoop的问世说起。

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算 [1] 。

   其实不难发现,很多商业数据库单机版本已经很贵了,再升级成集群,功能上自然是解决了,但是实际带来的费用账单呢,自然也是是也成倍的提升了;有些读者可能会觉得瞧不起钱,公司这点钱花不起吗?果真如此吗?从古至今这都是一个有趣的话题,杨广下江南花费太高公司垮了,自己也成了昏君;乾隆下江南公司有钱没垮,成了千古佳话;现代的操作系统也体现了这个思想,window在国内经久不衰的流传的真正手段是啥?Linux的CentOS被Oracle收购后免费的稳定版本不再对外开放马上没什么用户了,这其中的奥妙相信读者自然知晓,大数据的数据库架构也是这个道理,这就导致近几年以来,大公司要么自建自己的大数据集群,要么从原来的商业数据库迁移到更廉价的大数据框架里面来。
   当然也有另一个话题,也有科学大佬尝试把OLTPOLAP整合到一个数据库工具里面,目前方法论上有很多,但是实际落地的实现,本质还是给原始的数据库新增了适应OLAP的文件格式和数据库引擎,此套操作,国内有些数据库厂家也取得不错的成绩。

4.5 云端时代

   云端时代,就是一些云厂商把这些所有的IT、大数据工具整合到一起,然后再利用网络对你开放,再按需收费,对于使用者而言,这一些组件封装在云厂商的机房内,你并不知道其中的细节,但是确实解决了你不少的问题,感觉这一切就好比云一样,看不见摸不着又又神秘,但是也使得你可以不用花过多的精力在这些基础设施的建设上,但是账单里面肯定是显示这个成本肯定是要比上一代的商业数据解决方案要省钱的,云时代大家接触比较多的可能是云存储,比如某某网盘,为了趁一把这个云的概念,于是大家把自建的大数据集群叫私有云,把第三方的叫公有云。

图4.15 云端时代

5. 数据的未来

   其实这个问题,博主也不能说看的很远,但是结合ChatGPT的成熟发展和语音功能的迭代,每个企业自己私有化的人工智能管家代替目前的表哥、表姐和查数姑是必然的趋势吧,从而更好的实现数据即资产,数据即服务。
   这里博主也想分享自己的一个小故事,在高校参加数据建模竞赛的培训上,有一道考题是如何使医院的床位数和每天的病人之间有个最优化的配套,设置好各种背景和假设后,所有的同学都在埋头苦干写代码求解,最终老师开始讲解,最后的方案是我们导师用一根粉笔把在黑板上解开了,当时所有小伙伴震惊的问到:"这东西不需要编程计算吗?"导师说:"谁告诉你一定要编程解的?"这个小故事也送给今天的读者们吧,没错,随着数据技术的不断发展,确实会踊跃出很多智能化的工具和解决方案,但是大家也不能忘了我们的初衷和解决问题的本质,所以也建议数据工作者们,除了数据的专业素养以外,也能多掌握一些这个行业的专业背景,因为谁知道呢?或许你有数据能力,你有专业背景,再利用数字化的能力,你真的能改变这个行业,反而不懂业务的数据,确实有些耍流氓的嫌疑吧。
  最后的最后,也摘一段ChatGPT对这个问题的答案,给读者们一个专业且官方的回答吧……

大数据的未来发展趋势可从以下几个方面进行概括:
数据资源化:大数据已经成为企业和社会关注的重要战略资源,成为新的竞争焦点。企业需提前制定大数据营销战略计划,抢占市场先机。
与云计算的深度集成:大数据技术与云计算技术将深度融合,实现数据的快速处理、分析和共享,为企业提供更强大的决策支持。
数据治理和数据安全:随着数据量的不断增大,数据治理将变得越来越重要。同时,数据安全问题也会成为一个越来越重要的问题,随着黑客攻击和数据泄露事件的增加,企业和政府将更加重视数据安全问题。
数据科学和数据联盟的成立:未来,数据科学将成为一个重要的学科领域,更多的研究和创新将围绕数据科学展开。此外,企业和政府将建立更多的数据联盟,共享数据资源,共同推动大数据技术的发展和应用。
应用领域的拓展:大数据技术将在政府、金融、电信、交通、制造等多个行业领域得到广泛应用,助力各行业实现智能化、高效化的发展。
人工智能与大数据的结合:人工智能技术的发展将推动大数据技术在更多领域应用,如智能制造、智能交通、智能医疗等。通过人工智能与大数据的结合,可以更好地挖掘数据中的潜在价值,为社会创造更多的智能应用。
总之,大数据将在未来继续保持快速增长态势,其在各个领域的应用将不断拓展,同时数据治理、数据安全、人工智能等方面也将成为大数据发展的重要驱动力。

你可能感兴趣的:(系统架构,大数据)