近两年,大量资本涌入数据库市场,加剧了数据库市场的竞争。几乎所有投资者都看好数据库上云的趋势。在云数据库、云原生数据库兴起的同时,云数仓成为新赛道,开始走入大众视野。不过,在分析什么是云数据仓库以及为什么如此受欢迎之前,我们需要先了解一下数据仓库的定义。什么是数据仓库?数据仓库和商业智能是一回事吗?数据库通常分为关系数据库(SQL)或非关系数据库(NoSQL),以及联机事务处理(OLTP)和事务性、联机分析处理(OLAP)、混合业务处理(HTAP)。另外,除了这些常见的数据库类型,专有数据库也对业务提升有很大的提升,但是随着数据库技术的发展,专有数据库已经成为“数据孤岛”的代名词。后来,一些聪明的公司开始尝试汇集不同数据源的数据。这些以原始格式存储数据的方法称为数据湖;而将通用格式的数据或经过处理和集成的数据归类为数据仓库。不同的数据仓库以不同的方式获取数据。比如有的直接从运营环境获取数据,有的则从企业级数据仓库获取数据。这些满足不同场景需求的数据仓库也称为数据集市。换句话说,数据集市是数据仓库的子集。数据仓库本质上是一种分析型数据库,通常是关系型数据库,由两个或多个数据源创建,通常能够存储PB以上规模的历史数据,然后依靠大量的计算和内存资源运行复杂的查询操作,最后生成数据报表。此外,数据仓库是商业智能(BI)系统和机器学习的唯一直接数据来源。为什么数据仓库特别重要?企业之所以使用数据仓库,是因为在OLTP中,索引的创建和使用受数量和数据类型的限制,当数值接近峰值或数据类型不符合规范时,会变慢down用户数据分析和查询速度。但如果数据放在数据仓库中,用户可以根据需要自定义主题,进行数据分析查询;同时,使用数据仓库中的数据不会影响OLTP数据库的写入性能。最重要的是,构建数据仓库不仅可以提高数据处理速度,还可以分析多源数据。例如:一个业务员,在使用OLTP支持的相关应用时,只能用来处理具体的事务,而不会看到销售地点的天气,但是业务员想要有天气预报功能,他应该怎么做做?如果把所有和Weather相关的数据都加入到数据仓库中,销售人员就可以使用数据模型来判断当地的天气状况。数据仓库和数据湖之间的关系是什么?数据仓库之所以不同于数据湖,除了数据存储格式的不同,数据的“读取方式”也不同。数据湖是读取模式,大量数据以易读的格式存储;而数据仓库是“写模式”,可以支持多种数据类型的存储,在处理索引查询和各种数据关系时更加方便、快捷。这种“读取模式”适用于从多个聚合根(不同上下文)读取数据,避免数据丢失,但缺点是很多数据会变成死数据,应用无法使用。占用大量存储资源。“写入模式”适用于具有特定用途的数据,所使用的数据必须与其他来源的数据适当关联。但有时由于数据格式错误而被丢弃,导致有价值的数据得不到使用。主流的数据仓库架构有哪些?通常,数据仓库架构分为三层,包括:源数据、数据仓库和数据应用。源数据层包括来自销售、营销和其他业务线的运营数据,还可能包括社交媒体和外部数据,例如人口统计和统计数据。临时数据库是指从数据源中取出的数据,属于临时存储区,为下一步的数据处理做准备。例如:如果源是非结构化的,例如社交媒体文本,则需要通过质量检查并删除质量差的数据。数据仓库层,也称为明细层,所有数据都是一致的、准确的、干净的数据,对源数据进行清洗,去除杂质。数据应用层是直接从前端应用读取的数据源,是指直接根据报表生成或根据主体需求计算的数据。数据仓库对数据的获取,以及在仓库中实现的转换和流动,可以认为是ETL(extract,transformandload)过程,即数据已经清洗,通过ETL工具对数据进行抽取,任何需要进行映射和转换,并将数据加载到数据存储层。ELT(extract,load,andtransform)工具是指先存储数据,再进行转换。使用ELT工具的好处是数据跳过了传统的暂存层,直接进入数据湖。什么是云数据仓库?与本地数据仓库相比有什么区别?随着云计算的深入,企业应用云计算成为主流趋势,而数据库云计算成为企业应用云计算的最后一步。众所周知,云数据库的概念是指在虚拟计算环境中优化或部署的数据库,可以实现按需付费、按需扩展、高可用、存储等优点一体化。云数据仓库和云数据库的定义非常相似,这也意味着数据仓库可以部署在本地、云端或混合环境中。从以往的实践来看,数据仓库部署在本地,但本地数据中心和服务器的可扩展性较差,因此数据仓库云化成为主流趋势。但是,云数据仓库也有一个挑战,就是将所有PB级的数据迁移到云端,这涉及到计算、存储、内存等成本。此外,如何快速上云也是一个挑战。当然,随着市场的不断发展,这些问题都不再是问题,现在已经有超大规模云服务商提供大容量、基于磁盘的数据传输服务。最后,是选择本地数仓、云数仓,还是数据湖或数据集市,需要根据企业具体的数据量和增长率来决定。建议用户先用少量数据进行测试,或者将部分数据托管在云端,等待所有应用和流程运行顺畅,再将成熟的架构扩展到核心关键业务。
