从数据到大数据,数据技术&工具的演变数据仓库数据源分布式计算hadoop

假设我们要搭建一个小网站,在不使用成熟SaaS产品的前提下,我们的产品里面最少要有以下两个部分:

1.客户端

可以是APP,小程序,甚至是一个Web网站,作为入口给我们的用户访问。

2.服务端

服务端包括应用服务器和数据库,应用服务器用来部署应用端程序,处理前端请求,并进行服务响应;数据库用来存储数据,服务器通过专门与数据库交互的程序对数据库进行读写操作(如:SQL)。

1.我们是如何与技术系统交互的?

我们通过客户端入口与这个系统交互,我们通过操作客户端界面,对服务端进行请求拉取服务器&数据库中的信息,给予我们反馈。

2.服务器与数据库有什么区别?

一般我们常称为“服务器”的全称叫“应用服务器”,数据库全称叫“数据库服务器”,它们都是服务器,只是由于应用环境的不同,需要的性能不同做了区分。

数据库服务器的处理器性能要求比较高,因为其要进行频繁的操作,内存要求大,加快数据存取速度,应用服务器相对而言要求低一些。

3.常用数据库有哪些?

常用数据库主要有“关系型数据库”和“非关系型数据库”:

1)关系型数据库

折射现实中的实体关系,将现实中的实体关系拆分维度,通过关系模型表达出来(表及表与表之间的关系),常用的有MySQL(开源数据库)、SQLServer(微软家的)、Oracle(甲骨文家的,有完善的数据管理功能可以实现数据仓库操作)。

2)非关系型数据库

一种相对松散且可以不按严格结构规范进行存储的数据库,一边叫NoSQL(常用的有mongoDB、CouchDB,在MongoDB中使用键值对的方式表示和存储数据,键值类似关系型数据库表中的字段名对应的值,在MngoDB中,使用JSON格式的数据进行数据表示和存储)。

二、随着用户增长技术架构的升级

小网站的用户逐渐越来越多,小网站变成了大网站,单个服务器的负载很快就到了极限,这时就需要增加多台服务器,组成服务器组,同时引入负载均衡服务器,对流量进行动态分配。

由于数据是互联网产品的核心资产,为了保证系统数据的安全性,还需要增加数据备份服务器,多台数据库服务器同时运行,这样哪怕一个数据库出问题了,也不会影响业务正常运转。

三、数据仓库的诞生

随着产品用户量越来越大,市场竞争也更加激烈,迫切需要更加准确的战略决策信息,数据库中的数据虽然对于产品的运营非常有用,但由于结构复杂,数据脏乱,难以理解,缺少历史,大规模查询等问题对商业决策和目标制定的作用甚微。

在更好的发挥数据价值,1990数据仓库之父比尔·恩门(BillInmon)提出了“数据仓库”的概念,构建一种对历史数据进行存储和分析的数据系统,支撑企业的商业分析与战略决策。

1.数据仓库的实现原理是什么?

2.数据库与数据仓库有什么区别?

数据库是对实时数据进行存储和事务性处理的系统,而数据仓库则是为了分析而设计。

3.数据仓库与大数据仓库有什么区别?

数据仓库与大数据仓库的区别:大数据=海量数据+处理技术+平台工具+场景应用,数据仓库是一个数据开发过程,其区别主要体现在:商业价值、处理对象、生产工具三个方面。

1)商业价值

都是业务驱动的,有明确的业务场景需求,通过海量数据分析为业务提供决策依据,“传统数仓”出现更早,场景单一保守(报表,BI);而大数据技术更成熟成本更低,应用场景更多(用户画像、推荐、风控、搜索……)

2)处理对象

都是对数据进行获取、加工、管理、治理、应用处理,但大数据处理数据类型更多样化,传统数仓基本只擅长处理结构化和半结构化的数据。

3)生产工具

“传统数仓”一般采购国外知名厂商成熟方案,价格昂贵可拓展性差,“大数据”则有成套的开源技术。

建设方法:大数据技术沿用了“传统数仓的数据建设理论,但由于在处理技术上新增了非结构化数据,生产工具上新增了流式计算(比实时计算要稍微迟钝些,但比离线计算又实时的多)。

四、大数据技术架构1.什么是大数据?一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模(一般以TB为起始单位)、快速的数据流转、多样的数据类型和价值密度低四大特征——麦肯锡全球研究

根据“海量的数据规模”、“快速的数据流转”、“多样的数据类型”、“价值密度低”去看,符合这些特点的大都是平台型公司,有海量用户产生内容。

Facebook基础设施工程副总裁杰·帕里克(JayParikh)曾透露,Facebook每天处理的数据量多达500TB(1TB=1000GB)。

2.什么是分布式计算?

看完上面,你可能会想,像Facebook每天500TB的数据量要用什么样的技术才能处理呢?

这就要引入“分布式计算”了,既然单个数据库的计算能力有限,那我们就把大量的数据分割成多个小块,由多台计算机分工完成,然后将结果汇总,这些执行分布式计算的计算机叫做集群。

如果还不理解的话我们举个栗子:假期要结束了张三还有有10份作业没写,他找了5个同学,每个同学写2份,最后汇总给张三。

大数据时代存储计算的经典模型,Apache基金会名下的Hadhoop系统,核心就是采用的分布式计算架构,也是Yahoo、IBM、Facebook、亚马逊、阿里巴巴、华为、百度、腾讯等公司,都采用技术架构(下方逻辑图中黄框部分都是Hadoop生态的成员)。

3.大数据架构与模块主要有哪些?

大数据架构主要可以分为:数据采集,数据存储,计算查询,数据服务,数据应用5个环节。

1)数据采集

通过采集工具把结构化数据进行采集、分发、校验、清洗转换;非结构化数据通过爬取,分词,信息抽取,文本分类,存入数据仓库中。

2)数据存储

一般分3层,最底层的式ODS(操作数据)层,直接存放业务系统抽取过来的数据,将不同业务系统中的数据汇聚在一起;中间是DW(数据仓库)层,存放按照主题建立的各种数据模型;最上层是DM(数据集市)层,基于DW层上的基础数据整合汇总成分析某一个主题域的报表数据。

3)计算查询

根据具体的需求选择对应的解决方案:离线、非实时、静态数据的可以用批处理方案;非离线、实时、动态数据、低延迟的场景可用流处理方案。

4)数据服务

通过API把数仓中海量的数据高效便捷的开放出去支撑业务,发挥数据价值。

5)数据应用

基于数据仓库中结构清晰的数据高效的构建BI系统支撑业务决策;根据海量的数据构建以标签树为核心的用户画像系统,为个性化推荐、搜索等业务模块提供支撑。

4.大数据采集模块

一般应用于公司日志平台,将数据缓存在某个地方,供后续的计算流程进行使用针对不同数据源(APP,服务器,日志,业务表,各种API接口,数据文件……)有各自的采集方式。

目前市面上针对日志采集的有Flume、Logstash、Kafka……

1)Flume

是一款Cloudera开发的实时采集日志引擎,主打高并发、高速度、分布式海量日志采集,支持在日志系统中定制各类数据发送,支持对数据简单处理并写给各种数据接受方,主要特点:

侧重数据传输,有内部机制确保不会丢数据,用于重要日志场景;由java开发,没有丰富的插件,主要靠二次开发;配置繁琐,对外暴露监控端口有数据。最初定位是把数据传入HDFS中,跟侧重于数据传输和安全,需要更多二次开发配置。

2)Logstash

是Elastic旗下的一个开源数据收集引擎,可动态的统一不同的数据源的数据至目的地,搭配ElasticSearch进行分析,Kibana进行页面展示,主要特点:

内部没有一个persistqueue(存留队列),异常情况可能会丢失部分数据;由ruby编写,需要ruby环境,插件很多;配置简单,偏重数据前期处理,分析方便侧重对日志数据进行预处理为后续解析做铺垫,搭配ELK技术栈使用简单。

3)Kafka

最初是由领英开发,2012年开源由ApacheIncubato孵化出站。以为处理实时数据提供一个统一、高吞吐、低延迟的平台,适合作为企业级基础设施来处理流式数据(本质是:按照分布式事务日志架构的大规模发布/订阅消息队列)。

4)Sqoop

与上面的日志采集工具不同,Sqoop的主要功能是为Hadoop提供了方便的RDBMS(关系型数据库)数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。

5.大数据存储&资源管理模块

在数据量小的时候一般用单机数据库(如:MySQL)但当数据量大到一定程度就必须采用分布式系统了,Apache基金会名下的Hadhoop系统是大数据时代存储计算的经典模型。

1)HDFS

是Hadoop里的分布式文件系统,为HBase和Hive提供了高可靠性的底层存储支持。

2)HBase

是Hadoop数据库,作为基于非关系型数据库运行在HDFS上,具备HDFS缺乏的随机读写能力,比较适合实时分析。

3)Yarn

是一种新的Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

6.大数据计算查询模块

这里首先要介绍一下批处理和流处理的区别:

批计算:离线场景、静态数据、非实时、高延迟(场景:数据分析,离线报表……)流计算:实时场景,动态数据,实时,低延迟(场景:实时推荐,业务监控……)

大数据常用的计算查询引擎主要有:Hive、Spark、Presto、Presto、Kylin、Druid……

1)Hive

是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行,其优点是学习成本低。

2)Spark

Spark是加州大学伯克利分校AMP实验室所开源的专门用于大数据量下的迭代式计算,是为了跟Hadoop配合:

批处理模式下的类HadoopMapReduce的通用并行框架,Spark与MapReduce不同,它将数据处理工作全部在内存中进行,提高计算性能;流处理模式下,Spark主要通过SparkStreaming实现了一种叫做微批(Micro-batch)的概念可以将数据流视作一系列非常小的“批”,借此即可通过批处理引擎的原生语义进行处理;Spark适合多样化工作负载处理任务的场景,在批处理方面适合众数吞吐率而非延迟的工作负载,SparkSQL兼容可以把Hive作为数据源spark作为计算引擎。

3)Presto

由Facebook开源,是一个分布式数据查询框架,原生集成了Hive、Hbase和关系型数据库。但背后的执行模式跟Spark类似,所有的处理都在内存中完成,大部分场景下要比Hive快一个数量级。

4)Kylin

5)Druid

由MetaMarket开源,是一个分布式、面向列式存储的准实时分析数据存储系统,延迟性最细颗粒度可到5分钟。它能够在高并发环境下,保证海量数据查询分析性能,同时又提供海量实时数据的查询、分析与可视化功能。

7.数据可视化模块

1)可视化框架

开源可视化框架:业界比较有名的式Superset和Metabase

2)可视化软件

商用软件主流的主要有:PowerBI、Tableau、FineBI

Tableau:操作简单,可视化,基本所有的功能都可以拖拽实现,但价格贵,且数据清洗功能一般,需要有较好的数据仓库支持;

FineBI:操作简单,与Tableau类似,但数据清洗能力比Tableau要好,付费方式采用按功能模块收费,永久买断;

PowerBI:可以做复杂报表,筛选、计算逻辑清晰,可自定义,但很多功能要用DAX编程序,托拉拽能实现的功能很有限,不易入门。

【参考书籍】

《产品经理必懂的技术那点事》:主要是关于产品经理需要了解的技术知识的科普,无论是为了减少撕*,还是提高自己写需求的专业能力,这本书都值得产品经理一读。

《大数据架构商业之路》:主要是关于大数据技术的介绍,和常用大数据技术的优缺点,可以当作词典使用。

《深入浅出大数据:到底什么是Hadoop?》

《数据人必须了解的大数据中台技术架构》

本文由@小叮当原创发布于人人都是产品经理。未经许可,禁止转载。

THE END
1.大数据区别于传统数据的特征有。A.海量数据存储 B.数据增长迅速 C.表现形式多样化D.具有极高的信息价值https://www.shangxueba.com/ask/20472304.html
2.向量数据库与大数据的区别星环科技为您提供向量数据库与大数据的区别相关内容,帮助您快速了解向量数据库与大数据的区别。如果想了解更多向量数据库与大数据的区别资讯,请访问星环科技官网(www.transwarp.cn)查看更多丰富向量数据库与大数据的区别内容。https://www.transwarp.cn/keyword-detail/61695-1
3.大数据技术原理与应用期末复习知识点全总结(林子雨版(三)大数据的3个发展阶段 第一阶段:萌芽期 时间:20世纪90年代至21世纪初 内容:随着数据挖掘理论和数据库技术的逐步成熟,一批商业智能工具和知识管理技术开始被应用,如数据仓库、专家系统、知识管理系统等 第二阶段:成熟期 时间:21世纪前10年 内容:Web2.0应用迅猛发展,非结构化数据大量产生,传统处理方法难以应对,带...https://developer.aliyun.com/article/1418435
4.传统数仓和大数据数仓的区别是什么?大数据计算引擎:MapReduce、Spark、Tez,替代传统数仓的数据库执行引擎; OLAP引擎:Kylin/druid,(Molap,需预计算)、Presto/Impala,(Rolap,无需预计算),替代BO、Brio、MSTR等各种BI工具。 2、实时计算 就是因为有实时数据处理,所以才会有离线数据处理。相对应的也就有实时数仓和离线数仓。实时数仓最开始是在日志数据分...https://www.niaogebiji.com/article-71814-1.html
5.flink双流join一y样3. interval join也是利用state存储数据再处理,区别在于state中的数据有失效机制,依靠数据触发数据清理; 4. 目前Stream join的结果是数据的笛卡尔积; 5. 日常使用中的一些问题,数据延迟、window序列化相关。 二. 双流join与传统数据库表join的区别https://www.cnblogs.com/jj1106/archive/2004/01/13/13276893.html
1.大数据分析与应用:挖掘数据宝藏的艺术一、大数据的概念与特点 大数据,指的是无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。它具有以下几个显著特点: 数据量大:大数据的规模通常非常庞大,可能达到 TB、PB 甚至 EB 级别。 数据类型多样:包括结构化数据(如数据库中的表格数据)、半结构化数据(如 XML、JSON 格式的数据)和非结构化数...https://blog.csdn.net/zzxcffcvvv/article/details/143457588
2.大数据库和表格有什么区别腾讯云开发者社区导读:我们知道,在java中jvm虚拟机会自动去调用gc(垃圾回收器)去回收堆中没有被引用的对象,至于什么...https://cloud.tencent.com/developer/ask/2150159
3.大数据:从海量数据中挖掘巨大价值,挑战与机遇并存近日,一部国产剧《纸牌屋》引起了大家的关注。据说,《纸牌屋》成功的关键因素是根据数据推断出来的:喜欢BBC剧集的用户、大卫·芬奇的表演风格、凯文·史密斯·佩西的表演刻画。最终事实证明,基于大数据分析得出的结论是非常可靠的。 《纸牌屋》在美国和其他40多个国家引起了观剧热潮,并取得了巨大成功。 http://www.bjhwtx.com/h-nd-345433.html
4.大数据与传统数据的区别,来认识下吧(干货)大数据与传统数据相比的主要特点可以概括为:数据量“大”、数据类型“复杂”、数据价值“无限”等。 大数据与传统的数据技术的差别: 1、数据规模大:传统数据技术主要是利用现有存在关系性数据库中的数据,对这些数据进行分析、处理,找到一些关联,并利用数据关联性创造价值。这些数据的规模相对较小,可以利用数据库的分析...https://developer.51cto.com/art/201911/606581.htm
5.大数据与新闻范文11篇(全文)“大数据”是指基于互联网而保存下来的远远超出传统数据库的海量存储信息。新闻报道可利用科学的方法对大数据信息进行分析, 对新闻进行准确的判断, 进而深化新闻报道的内容, 甚至可以对未来进行一些科学的预测。利用大数据信息还可以根据用户定制对其推送指定的新闻信息, 使得新闻具有交互性。然而, 我国大数据在新闻报道方面...https://www.99xueshu.com/w/ikey70qi0sjn.html
6.传统数据和大数据的区别有哪些?巴西当地时间1月25日,全球最大铁矿石生产商巴西淡水河谷公司位于巴西米纳斯吉拉斯州的一处铁矿废料矿坑堤坝发生决堤事故,公司预期减产4000万吨,其中包括1100万吨球团矿。国内黑色系大涨,1月30日,大连商品交易所铁矿石期货主力合约1905涨停,收报589元/吨,涨幅达5.94%。中国铁矿石港口现货市场价格也一路上涨,...https://www.shuashuati.com/ti/b2c475b9902d4893aad360ac67f6cd60.html?fm=bd6cae0f68953908f31e8cfdf700728b6a
7.成都市教育科学研究院一方面,我们天天在呼吁深化教育改革、创新人才培养模式;另一方面,教师依旧是老样子,也许“一块黑板一支笔,一人从头讲到底”的传统“填鸭式”教学方式不多见了,但是把“黑板”换成“白板”,把多媒体作为“机灌工具”的新的“填鸭式”教学方式更值得我们警觉!不改革教学内容、不创新教学方法,所谓的人才培养模式改革是...https://www.cdjky.com/contents/202/14608.html
8.传统数据和大数据的区别极客教程传统数据和大数据的区别 传统数据: 传统数据是结构化数据,主要由所有类型的企业维护,从非常小的企业到大的组织。在传统的数据库系统中,一个集中的数据库架构用来存储和维护文件中的固定格式或字段的数据。为了管理和访问数据,使用了结构化查询语言(SQL)。 大数据: 可以认为大数据是传统数据的高级版本。大数据处理过于...https://geek-docs.com/bigdata/big-data-ask-answer/the-difference-between-traditional-data-and-big-data.html
9.大数据相关常见面试题与答案整理面试技巧IT职场规划7)转储方面有sqoop,可以将hdfs中的数据转换存储到mysql,oracle等传统数据库, 这就构成了一整套大数据分析的整个流程 2、Hadoop 集群可以运行的 3 个模式分别是什么, 都有哪些注意点? 单机模式、伪分布式模式、全分布式模式; 3、Hadoop 的核心配置文件? https://www.jb51.net/it/698342.html
10.传统数据存储管理系统和大数据存储管理系统区别数据存储管理是利用计算机硬件和软件技术对数据进行有效的收集、存储、处理、应用的过程。数据存储管理的目的是充分有效地发挥数据的作用。目前,数据存储管理系统可分类为:传统数据存储管理系统、大数据存储管理系统。 一、传统数据存储管理系统 目前,应用较广泛的传统数据存储管理系统包括两种:普通文件系统、关系型数据库。https://m.elecfans.com/article/2027839.html
11.客户关系管理的论文(精选13篇)“执迷于精确性是信息缺乏时代和模拟时代的产物,只有5%的数据是结构化且能适用于传统数据库的...只有接受不精确性,我们才能打开一扇从未涉足的世界的窗户”[1]。在商业认证服务供应商的客户关系管理上,要求尽可能地为能触及的中小企业提供认证服务,这一管理工作包括了前期的宣传造势、中期的拜访客户和产品推介、后期...https://www.ruiwen.com/lunwen/1127667.html
12.大数据时代国家数据主权问题研究数字图书馆摘要:人类业已进入大数据时代,大数据的广博性、关联性和战略性引发世人的关注。与此同时,由于国家独享“绝对主权”时代的终结,传统理念已无法适应国家管控海量数据传送和集聚的现象,数据主权随之应运而生。本文通过对已有数据主权概念的辨别分析,厘清数据权、个人数据权利、信息主权、网络主权与国家数据主权的关系,从国家视...https://www.enaea.edu.cn/sztsg/wenhuakejisuyang/waijiao/120753.html