从数据到大数据,数据技术工具的演变
编辑导语:大数据近些年来是一个十分火热的话题,关于大数据的文章也是数不胜数。本文作者通过梳理自己看过的大数据相关的资料和书籍,为我们介绍了从“小数据”演化为“大数据”的过程是怎样的?并且分享了一些数据技术以及工具。 对于大数据,叮当一直都很感兴趣,最近正好在看数据相关的书和资料,就把这些东西梳理了一下。本文将用4张逻辑图为主线,简单介绍一个产品从“小数据”演化为“大数据”的过程,及可能用到的工具。 本文核心逻辑: 一、一个简陋版互联技术架构 假设我们要搭建一个小网站,在不使用成熟SaaS产品的前提下,我们的产品里面最少要有以下两个部分: 1. 客户端 可以是APP,小程序,甚至是一个Web网站,作为入口给我们的用户访问。 2. 服务端 服务端包括应用服务器和数据库,应用服务器用来部署应用端程序,处理前端请求,并进行服务响应;数据库用来存储数据,服务器通过专门与数据库交互的程序对数据库进行读写操作(如:SQL)。 1. 我们是如何与技术系统交互的? 假设一个场景:张三打开了一个小网站,打开后出现了登录界面,张三输入自己的账号和密码之后点击“登录”,这时客户端会发送给服务端一个请求,查询一下数据库里有没有张三的账号信息。 如果数据库有的话张三就能登录成功,可以使用小网站了;如果数据库没有张三的账号信息,可能就会引导张三先进行注册,注册成功后数据库中的用户表中就会新增一条张三的信息,张三就能愉快的使用小网站了。 我们通过客户端入口与这个系统交互,我们通过操作客户端界面,对服务端进行请求拉取服务器&数据库中的信息,给予我们反馈。 2. 服务器与数据库有什么区别? 一般我们常称为“服务器”的全称叫“应用服务器”,数据库全称叫“数据库服务器”,它们都是服务器,只是由于应用环境的不同,需要的性能不同做了区分。 数据库服务器的处理器性能要求比较高,因为其要进行频繁的操作,内存要求大,加快数据存取速度,应用服务器相对而言要求低一些。 3. 常用数据库有哪些? 常用数据库主要有“关系型数据库”和“非关系型数据库”: 1)关系型数据库 折射现实中的实体关系,将现实中的实体关系拆分维度,通过关系模型表达出来(表及表与表之间的关系),常用的有MySQL(开源数据库)、SQL Server(微软家的)、Oracle(甲骨文家的,有完善的数据管理功能可以实现数据仓库操作)。 2)非关系型数据库 一种相对松散且可以不按严格结构规范进行存储的数据库,一边叫NoSQL(常用的有mongoDB、 CouchDB,在MongoDB中使用键值对的方式表示和存储数据,键值类似关系型数据库表中的字段名对应的值,在MngoDB中,使用JSON格式的数据进行数据表示和存储)。 二、随着用户增长技术架构的升级 小网站的用户逐渐越来越多,小网站变成了大网站,单个服务器的负载很快就到了极限,这时就需要增加多台服务器,组成服务器组,同时引入负载均衡服务器,对流量进行动态分配。 由于数据是互联网产品的核心资产,为了保证系统数据的安全性,还需要增加数据备份服务器,多台数据库服务器同时运行,这样哪怕一个数据库出问题了,也不会影响业务正常运转。 三、数据仓库的诞生 随着产品用户量越来越大,市场竞争也更加激烈,迫切需要更加准确的战略决策信息,数据库中的数据虽然对于产品的运营非常有用,但由于结构复杂,数据脏乱,难以理解,缺少历史,大规模查询等问题对商业决策和目标制定的作用甚微。 在更好的发挥数据价值,1990数据仓库之父比尔·恩门(Bill Inmon)提出了“数据仓库”的概念,构建一种对历史数据进行存储和分析的数据系统,支撑企业的商业分析与战略决策。 1. 数据仓库的实现原理是什么? 数据仓库的数据来源通常是历史业务数据(订单数据、商品数据、用户数据、操作日志、行为数据……),这些数据统一汇总存储至企业数据仓库,通过对仓库里的综合数据进行有目的的分析支撑业务决策。 2. 数据库与数据仓库有什么区别? 数据库是对实时数据进行存储和事务性处理的系统,而数据仓库则是为了分析而设计。 3. 数据仓库与大数据仓库有什么区别? 数据仓库与大数据仓库的区别:大数据=海量数据+处理技术+平台工具+场景应用,数据仓库是一个数据开发过程,其区别主要体现在:商业价值、处理对象、生产工具三个方面。 1)商业价值 都是业务驱动的,有明确的业务场景需求,通过海量数据分析为业务提供决策依据,“传统数仓”出现更早,场景单一保守(报表,BI);而大数据技术更成熟成本更低,应用场景更多(用户画像、推荐、风控、搜索……) 2)处理对象 都是对数据进行获取、加工、管理、治理、应用处理,但大数据处理数据类型更多样化,传统数仓基本只擅长处理结构化和半结构化的数据。 3)生产工具 “传统数仓”一般采购国外知名厂商成熟方案,价格昂贵可拓展性差,“大数据”则有成套的开源技术。 建设方法:大数据技术沿用了“传统数仓的数据建设理论,但由于在处理技术上新增了非结构化数据,生产工具上新增了流式计算(比实时计算要稍微迟钝些,但比离线计算又实时的多)。 四、大数据技术架构 1. 什么是大数据? 一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模(一般以TB为起始单位)、快速的数据流转、多样的数据类型和价值密度低四大特征——麦肯锡全球研究 根据“海量的数据规模”、“快速的数据流转”、“多样的数据类型”、“价值密度低”去看,符合这些特点的大都是平台型公司,有海量用户产生内容。 Facebook基础设施工程副总裁杰·帕里克(Jay Parikh)曾透露,Facebook每天处理的数据量多达500TB(1TB=1000GB)。 2. 什么是分布式计算? 看完上面,你可能会想,像Facebook每天500TB的数据量要用什么样的技术才能处理呢? 这就要引入“分布式计算”了,既然单个数据库的计算能力有限,那我们就把大量的数据分割成多个小块,由多台计算机分工完成,然后将结果汇总,这些执行分布式计算的计算机叫做集群。 (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |