惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 司徒正美
罗磊的独立博客
Recorded Future
Recorded Future
Cyberwarzone
Cyberwarzone
AWS News Blog
AWS News Blog
S
Securelist
Stack Overflow Blog
Stack Overflow Blog
Latest news
Latest news
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
K
Kaspersky official blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Engineering at Meta
Engineering at Meta
S
Schneier on Security
P
Proofpoint News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
Last Week in AI
Last Week in AI
O
OpenAI News
P
Proofpoint News Feed
V2EX - 技术
V2EX - 技术
Google Online Security Blog
Google Online Security Blog
The Hacker News
The Hacker News
C
Cisco Blogs
V
Vulnerabilities – Threatpost
P
Palo Alto Networks Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy & Cybersecurity Law Blog
博客园 - 三生石上(FineUI控件)
C
CXSECURITY Database RSS Feed - CXSecurity.com
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Security @ Cisco Blogs
宝玉的分享
宝玉的分享
L
LINUX DO - 热门话题
Webroot Blog
Webroot Blog
Project Zero
Project Zero
aimingoo的专栏
aimingoo的专栏
Know Your Adversary
Know Your Adversary
U
Unit 42
Hugging Face - Blog
Hugging Face - Blog
I
Intezer
Recent Commits to openclaw:main
Recent Commits to openclaw:main
T
Troy Hunt's Blog
Google DeepMind News
Google DeepMind News

博客园 - 张逸

响应式编程的实践 高质量代码的特征 剖析大数据平台的数据处理 剖析大数据平台的数据采集 剖析大数据平台的数据源 DDD峰会归来话DDD 贝叶斯定理与直觉 - 张逸 - 博客园 重新审视演进式设计 - 张逸 - 博客园 设计恰如其分的架构 函数式非凡的抽象能力 或许是领域建模的真相 博客新家(agiledon.github.com) 软件系统的稳定性 真实案例引起的对系统健壮性的思考 调整Virtual Box硬盘大小 LA工作第二周体会 LA工作第一周体会 设计匠艺模型 IsDefined的问题
剖析大数据平台的数据存储
张逸 · 2018-01-02 · via 博客园 - 张逸

我在一次社区活动中做过一次分享,演讲题目为《大数据平台架构技术选型与场景运用》。在演讲中,我主要分析了大数据平台架构的生态环境,并主要以数据源、数据采集、数据存储与数据处理四个方面展开分析与讲解,并结合具体的技术选型与需求场景,给出了我个人对大数据平台的理解。本文讲解数据存储部分。

数据作为一种资产,若少了存储,就成了无根之木,失去了后续挖掘的价值。在小数据时代,受存储容量与CPU处理能力限制,在现在看来相当小的数据,在当时其实也可以认为是“大数据”了。正如在蒸汽机时代,创造了时速126英里(203公里)纪录的Mallard蒸汽火车就可以被视为极速火车了。那么,为何在当时没人提出Big Data概念,得到业界关注并催生出一波数据浪潮呢?

Big Data概念是1998年由SGI首席科学家John Masey在USENIX大会上提出的。他当时发表了一篇名为Big Data and the Next Wave of Infrastress的论文,使用了Big Data来描述数据爆炸的现象。但大数据真正得到业界关注,则是其后多年的事情了。其中大数据最重要的发酵素则是2003-2006年Google发布的GFS、MapReduce和BigTable三篇论文。

在我看来,小数据时代的数据量虽然在逐年增加,但是当时突破存储容量的解决办法依旧是垂直伸缩,即通过寻求更大容量的存储介质来解决这个问题。由于互联网业务不够流行,Web 2.0还未开始(更谈不上移动应用与物联网),当时IT系统要处理的数据结构相当单一,都是相对规整的关系型数据(结构数据)。因而在小数据时代,存储世界是关系数据库一统天下的时代。

当存储技术的发展变得步履蹒跚,赶不上数据发展的速度时,分布式存储成为了必然选择,非结构型数据也对存储格式提出了新的要求。层出不穷的数据源也使得数据量产生了井喷似的迅猛增长。

此时,分布式存储与NoSQL的诞生回应了这样的需求,解决了大数据存储的根本难题。

数据存储工具如百花盛开,一时仿佛来到了数据存储的盛世。然而,乱花渐欲迷人眼,我们反而不知道该怎么选择合适的数据存储技术了。正如设计需要结合业务场景,对数据存储的技术决策同样需要结合具体的场景。决定的因素包括:

  • 数据源的类型与数据的采集方式
  • 采集后数据的格式与规模
  • 分析数据的应用场景

如果数据的采集是针对业务历史数据的同步与备份,那么HDFS可能就是最好的存储选择;如果数据的格式为文档型结构,那么诸如MongoDB之类的文档型数据库就可能是我们首要考虑的目标;如果存储的数据是要应对全文本搜索的应用场景,那么ElasticSearch可能才是我们的心头所爱。

倘若存在某种业务场景,使得这几种决定因素互相冲突,例如既需要分布式的文档数据库,又需要支持高性能的统计分析,该怎么应对呢?这就引出了大数据平台数据存储的一个重要特征:

相同的业务数据会以多种不同的表现形式,存储在不同类型的数据库中,形成polyglot-db这种产生数据冗余的生态环境。

没有哪一款存储工具擅长应对所有的数据处理场景。

在对数据存储进行技术决策时,我们需要充分了解各种存储工具的优缺点,然后结合业务场景对其进行选择。就像足球教练那样,要对各个球员的技术特点了如指掌,才能将他们安排在合适的位置上。

在大数据存储领域,HDFS或许就是我们最放心的守门员,全量的历史数据都可以交给他。你几乎不用害怕他会“丢球”,而他守门的技巧是可以横向扩展的,再多再猛烈的射门他都能挡得住。

PostgreSQL是保守型的后场选手,他技术全面,在保持数据一致性方面他能做到近乎完美的万无一失。性格稳重,以符合大多数教练对后防需求的思维方式来踢球。

HBase属于后腰型选手,既能在防守上给PostgreSQL以协助,又不时通过列式存储的技术特点传出让人拍案叫绝的好球。

Redis是中场提速器,他不仅能够加快球队的传球效率为球队提速,而且还以极高的传球命中率著称,偶尔传出的致命一击更能帮助球队攻城拔寨。Redis还是最好的团队成员,可以与各种类型的球员打出漂亮配合,他还不抢风头,只在自己最擅长的领域默默地展现自己的才华。

ElasticSearch或许可以称得上是“中场大师”,因为他能为各种类型的前锋提供传球支持,并能保证球权处理的高效性。他的各种盘球技法(支持各式各样的查询)让人眼花缭乱。兴之所至时,他的盘带与传球真如水银泻地一般,No look pass的传球总是出人意料的精彩。

诸如Parquet、Neo4j、Pilosa之类的数据库都可以称得上是剑走偏锋的前锋球员.他们不善于应对阵地战靠着稳扎稳打通过硬实力硬吃对手,而是像刺客一般伺机而动,对手稍有不慎,迎接他的就是一剑封喉的绝杀。

对于polyglot-db这种解决方案,我们还需要细心处理好数据一致性问题,即当数据源的数据发生变化时,我们如何将这些数据变化反应到各种存储工具中。如果数据是以immutable形式存储,满足数据的一致就变得容易多了。因此在polyglot-db的场景下,我们倾向于数据保持不变。如果业务场景确实不支持,同步就会变得更复杂。在前面讲解数据采集时,我已经给出了不够完美的解决方案,庶几能解决数据同步问题。

数据存储就是数据平台工程师手中的工具百宝箱,你需要熟悉各种工具的利弊,他们擅长处理的场景,然后再将好钢用在刀刃上,以求最大性的发挥工具的潜力。记住,在大数据平台中,不是数据驱动而是业务场景驱动你对数据存储的技术决策