2020-05-26 10:58:33
选择数据仓库或数据库可从以下三个角度进行判断:
一、根据核心定位选择工作模式:采用OLTP(在线事务处理),一个包含多个步骤的操作必须作为一个整体完成,要么全部成功,要么全部失败,以保证数据的绝对准确,数据的强一致性是其最高准则。例如从A账户转账100元到B账户,需执行检查A账户余额、从A账户扣减100元、向B账户增加100元这三个步骤,构成一个“事务”,任何一步失败,整个操作都必须撤销。
数据模型:通常采用规范化设计,把数据拆分成多张相互关联的表,最大程度减少重复数据,确保每次写入或更新时,只需改动最少的地方,从而保证速度和准确性。
特点
实时性:处理最新的业务数据状态。
频繁增删改:日常操作以插入、更新、删除为主。
简单查询:查询通常基于索引快速定位单条或少量记录。
高并发:需要同时响应大量用户的短平快请求。
工作模式:核心技术模式是OLAP(在线分析处理),例如分析“过去3年,各个区域的产品销售额趋势,并与市场活动关联”,这种查询需要扫描上亿条记录,进行大规模的分组、排序和聚合计算。
数据模型:通常采用“维度模型”,如星型或雪花模型。有一张或多张核心的事实表(记录发生了什么事,如销售流水),周围连接着一圈维度表(描述事实的背景信息,如时间、产品、客户等),这种结构直竖闷观,特别适合做多维度的分析和钻取。
数据加工:数据仓库里的数据需要从各个业务数据库里搬运和加工过来,包括抽取(从不同源头获取数据)、转换(清洗脏数据、统一标准、处理缺失值等)、加载(将干净、规整的数据导入数据仓库的模型中)。
特点
历史性:存储从历史到现在的完整数据,用于趋势分析。
批量追加:数据以批量方式周期性导入,一旦进入,很少更新。
复杂查询:查询复杂,涉及大量数据的扫描和聚合计算。
低并发:同时进行分析查询的用户数相对较少,但每个查询都消耗大量计算资源。
开发业务应用:如开发一个网站、一个APP、一个管理系统等,这些系统需要记录用户实时产生的操作,如注册、下单、支付、发布内容等。
事务性操作:每次操作涉及的数据量小,要求毫秒级响应,并且必须保证数据的准确和完整。
简单查询模式:主要是通过索引查询某一条或某一小批数据的明细。若核心需求是快速、准确、高并发地处理“现在进行时”的业务,应选择数据库。
制作报表和进行BI分析:需要生成定期的业务报表,制作可视化的数据看板给管理团队看。
回答复杂商业问题:例如“为什么这个季度的A产品销量下滑?”“我们的用户流失主要发生在哪个环节?”
数据来源多样:数据分散在多个业务系统、日志文件或第三方平台,需要整合才能得出全局视图。
查询涉及海量历史数据:分析需要扫描百万、千万甚至上亿条记录进行聚合计算。若核心需求是基于大磨纤碧量历史数据,进行复杂的、聚合性的、为战略决策提供支持的“回顾式”分析,数据仓库更合适。