-
计算机的任务就是计算+存储,为什么需要大数据技术?
数据在体量、速度和难度上在现有体系下已经不能处理。
-
数据管理技术沿革:先有文件系统
-
程序与数据之间由文件系统提供的存取方式进行转换,使应用程序和数据之间有了一定的独立性,程序员可以不必过多地考虑物理细节,将精力集中于算法。
-
文件系统实现了文件内的结构性,即一个文件内的数据是按照记录进行组织的,这样的数据是有结构的,但是多个文件之间是相互独立的,无法建立全局的结构化数据管理模式。
-
文件系统存储数据时的缺点:
-
数据共享性差,结构比较死板,会造成一定的数据冗余,如果一个操作由多个文件进行记录可能会导致数据不一致的问题。
-
每个文件相互孤立,如果要跨越一个文件访问其他文件内容,这是比较困难的,文件之间缺乏联系。
-
并发问题,如果多个人同事访问一个文件,可能会造成冲突。
-
文件的存在不能反映现实世界事物之间的联系
-
-
-
数据库(关系型数据库)
-
由于文件系统存在的缺点,导致后来数据库的出现。
-
数据库技术经过几十年发展,出现了索引、缓存、视图等查询优化技术,基本上把数据的访问,数据的操作,数据的管理等各方面的性能优化到了极致。
-
生活中的各种活动都离不开关系型数据库,可以说关系型数据库是现在信息社会无可替代的基础设施之一。
-
早期数据库主要用来记录行为操作,比如超市购物系统、银行业务等短平快类型的业务。
-
OLTP(连击事务处理)数据库是用来记录一系列操作行为的数据库,比如多次银行取款行为。OLTP事务中主要记录小的事务或者小的查询为主。
-
OLTP涉及到一系列复杂的技术,比如ACID的原理,锁协议,多版本并发控制,索引等等。
-
-
从记录到分析
-
在传统关系型数据库中进行统计操作需要很多的条件变量和聚合条件,繁重的读操作和内存中数据的运算操作的运算量会很大,对整个数据库系统造成很重的负担。
-
解决统计操作的办法是复制一份数据库的表作为分析表,在分析表内可以进行一些与计算操作。
-
由于分析操作越来越复杂,传统数据库已经无法满足需要,所以OLAP(练级分析处理)出现了。
-
OLAP专门用于处理复杂的分析操作,同时OLAP侧重于高层人员的决策分析提供支持。
-
OLAP可以为用户提供多维度(多维度就是指用户的分析角度,比如对于数据分析中的时间周期,产品类别,分销渠道等角度)的分析模型,多维分析模型建立好后分析师就可以从预定义好的分析维度(也就是分析角度)获取和查看甚至深入挖掘这些数据,同时OLAP也能动态的在多个维度之间切换,便于分析人员综合多个维度进行分析。
-
通常将对OLTP中数据的抽取、转化、预计算到OLAP的过程称为ETL。
-
OLTP通常服务于实时需求的用户。
-
OLAP通常服务与对历史数据进行分析的用户。
-
-
关系数据库给我们带来了什么
-
给了数据组织的组织方式
-
数据库范式:1NF,2NF
-
关系数据模型
-
行存、列存
-
-
可以组织任务的执行命令
-
基于集合的运算:SQL Query
-
事务处理:ACID
-
-
给出了命令优化的方式
-
存储过程
-
试图、索引
-
并发控制
-
-
-
关系数据库的局限
-
存储过程(对大流量数据存储速度存在瓶颈)
-
需要将数据转化成关系表
-
存数据之前要先建模
-
表的格式约束(数据类型)比较严格
-
-
计算
-
SQL的表达性有限(复杂商业逻辑)
-
模糊查询和近似查询效率不高(搜索引擎)
-
对非结构化数据(文档)的支持不足
-
-
架构
-
关系实物模型很难扩展
-
顶配单机性能存在天花板
-
-
-
大数据技术
大数据技术是为了解决关系型数据库对于海量复杂结构的数据的建模、处理时候遇到的问题而出现的技术。