一、数据库
1,定义:
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
2,特点:
(1)数据结构化
让数据彼此之间产生联系,发生关系。数据结构化是数据库系统与文件系统的根本区别。在文件系统中,独立文件内部的数据一般是有结构的,但文件之间不存在联系,因此从数据的整体来说是没有结构的。
数据库系统虽然也常常分成许多单独的数据文件,并且文件内部也具有完整的数据结构,但是它更注意同一数据库中各数据文件之间的相互联系。
(2)数据的共享性高,冗余度低,易扩充
数据是面向整体的,所以数据可以被多个用户、多个 应用程序共享使用,可以大大减少数据冗余,节约 存储空间,避免数据之间的不相容性与不一致性。
(3)数据独立性高
数据独立性包括数据的物理独立性和逻辑独立性
物理独立性是指数据在 磁盘上的数据库中如何存储是由DBMS管理的, 用户程序不需要了解, 应用程序要处理的只是数据的 逻辑结构,这样一来当数据的物理 存储结构改变时,用户的程序不用改变。
逻辑独立性是指用户的 应用程序与数据库的 逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了, 用户程序也可以不改变。
(4)数据由 DBMS统一管理和控制
DBMS必须提供以下几方面的数据控制功能:
数据的安全性保护(security)、数据的完整性检查(integrity)、数据库的并发访问控制(concurrency)、数据库的故障恢复(recovery)
二、数据仓库
1,定义:
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
2,特点:
(1)面向主题的
操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织的。主题是与传统数据库的面向应用相对应的,是一个抽象概念,是在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽象。每一个主题对应一个宏观的分析领域。数据仓库排除对于决策无用的数据,提供特定主题的简明视图。
(2)集成的
数据仓库是一个仓库,他不直接产生数据,二是集成各个系统数据,并进行统一化的存储、设计。数据仓库所提供的各种信息,肯定要准确的数据,但由于数据仓库流程通常分为多个步骤,包括数据清洗,装载,查询,展现等等,复杂的架构会更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据失真,客户看到错误的信息就可能导致分析出错误的决策,造成损失,而不是效益。
(3)稳定的
业务系统中的数据总是处于不断变化的状态,即数据为最新的状态。相对于业务系统的不断变化,数据仓库具有稳定性,是指数据在进入数据仓库后,数据一般用于查询,很少会对数据进行修改,常见的操作也只是进行定期的加载和刷新。
(4)反映历史变化的
数据仓库包含各种粒度的历史数据。数据仓库中的数据可能与某个特定日期、星期、月份、季度或者年份有关。数据仓库的目的是通过分析企业过去一段时间业务的经营状况,挖掘其中隐藏的模式。虽然数据仓库的用户不能修改数据,但并不是说数据仓库的数据是永远不变的。分析的结果只能反映过去的情况,当业务变化后,挖掘出的模式会失去时效性。因此数据仓库的数据需要更新,以适应决策的需要。从这个角度讲,数据仓库建设是一个项目,更是一个过程。
三、数据湖
1,定义:
数据湖是比传统大数据平台更为完善的大数据处理基础支撑设施,完善在数据湖是更贴近客户业务的技术存在。所有数据湖所包括的、且超出大数据平台存在的特性,例如元数据、数据资产目录、权限管理、数据生命周期管理、数据集成和数据开发、数据治理和质量管理等,无一不是为了更好的贴近业务,更好的方便客户使用。数据湖所强调的一些基本的技术特性,例如弹性、存储计算独立扩展、统一的存储引擎、多模式计算引擎等等,也是为了满足业务需求,并且给业务方提供最具性价比的TCO。
2,特点:
(1)保真性
数据湖中对于业务系统中的数据都会存储一份“一模一样”的完整拷贝。数据湖中必须要保存一份原始数据,无论是数据格式、数据模式、数据内容都不应该被修改。在这方面,数据湖强调的是对于业务数据“原汁原味”的保存。同时,数据湖应该能够存储任意类型/格式的数据。
(2)灵活性
保持数据最为原始的状态,一旦需要时,可以根据需求对数据进行加工处理。数据湖更加适合创新型企业、业务高速变化发展的企业。同时,数据湖的用户也相应的要求更高,数据科学家、业务分析师(配合一定的可视化工具)是数据湖的目标客户。
(3)可管理
数据要求“保真性”和“灵活性”,数据湖中会存在两类数据:原始数据和处理后的数据。数据湖中的数据会不断的积累、演化。因此,对于数据管理能力也会要求很高,应该包含以下数据管理能力:数据源、数据连接、数据格式、数据schema(库/表/列/行)。同时,数据湖是单个企业/组织中统一的数据存放场所,因此,还需要具有一定的权限管理能力。
(4)可追溯
数据湖是一个组织/企业中全量数据的存储场所,需要对数据的全生命周期进行管理,包括数据的定义、接入、存储、处理、分析、应用的全过程。一个强大的数据湖实现,需要能做到对其间的任意一条数据的接入、存储、处理、消费过程是可追溯的,能够清楚的重现数据完整的产生过程和流动过程。。
(5)丰富的计算引擎
从批处理、流式计算、交互式分析到机器学习,各类计算引擎都属于数据湖应该囊括的范畴。一般情况下,数据的加载、转换、处理会使用批处理计算引擎;需要实时计算的部分,会使用流式计算引擎;对于一些探索式的分析场景,可能又需要引入交互式分析引擎。随着大数据技术与人工智能技术的结合越来越紧密,各类机器学习/深度学习算法也被不断引入,例如TensorFlow/PyTorch框架已经支持从HDFS/S3/OSS上读取样本数据进行训练。
(6)多模态的存储引擎
,数据湖本身应该内置多模态的存储引擎,以满足不同的应用对于数据访问需求(综合考虑响应时间/并发/访问频次/成本等因素)。但是,在实际的使用过程中,数据湖中的数据通常并不会被高频次的访问,而且相关的应用也多在进行探索式的数据应用,为了达到可接受的性价比,数据湖建设通常会选择相对便宜的存储引擎(如S3/OSS/HDFS/OBS),并且在需要时与外置存储引擎协同工作,满足多样化的应用需求。