数据库、数据仓库、数据湖、数据中台、湖仓一体,到底有什么区别
企业做数据建设时经常会被几个概念绕晕业务系统已经有数据库为什么还要建设数据仓库有了数据仓库为什么又出现数据湖数据中台是不是更高级的数据仓库湖仓一体又是不是把数据湖和数据仓库合并起来其实它们解决的并不是同一个问题。数据库负责支撑业务运行数据仓库负责统一分析数据湖负责保存海量原始数据数据中台负责沉淀可复用的数据能力湖仓一体则试图解决湖与仓之间的数据复制和治理割裂。它们不是简单的新旧替代关系而是分布在数据产生、存储、加工、治理和应用的不同环节。在展开之前给大家分享一份《数据仓库建设解决方案》其中包含数据集成、数仓分层、数据治理和分析应用等内容适合正在规划数据平台或者推进数仓建设的企业参考https://s.fanruan.com/7igmg复制到浏览器一、数据库解决业务数据如何准确记录数据库首先服务的是业务系统。客户下单订单系统要记录商品、数量、价格和支付状态仓库出库库存系统要更新库存数量财务记账财务系统要保存凭证、科目和余额设备报工MES要记录产量、工时和设备状态。这些业务动作产生的数据通常都会进入数据库。因此数据库最关注的是数据能否准确写入多个用户同时操作时是否会冲突一笔业务能否完整提交或者回滚查询响应是否足够快系统能否稳定运行。数据库的表结构一般围绕具体业务流程设计。例如订单系统会设置订单表、订单明细表、支付表和物流表。这样的结构适合完成下单、修改、取消和查询却不一定适合直接分析过去三年的客户利润变化。因为客户利润分析可能需要同时关联订单、发货、退款、成本、费用和回款数据而这些数据往往分散在不同系统中。如果管理分析长期直接查询业务数据库会出现两个问题第一分析逻辑复杂每次都要重新关联大量业务表第二大规模查询可能占用业务系统资源影响正常交易。数据库可以提供分析所需的原始数据但它的首要职责仍然是保证业务正常运行。当ERP、CRM、MES、电商平台和财务系统各自使用不同数据库时企业首先要解决的不是做一张更漂亮的看板而是建立稳定的数据接入链路。FineDataLink可以连接不同数据库、接口和文件根据数据变化频率选择全量、增量或者实时同步将分散数据汇集到统一平台为后续数仓加工提供可靠入口。二、数据仓库把业务记录加工成分析数据数据库解决的是“业务如何发生”数据仓库解决的是“业务发生之后如何统一分析”。企业的数据虽然很多但原始数据并不等于可分析的数据。例如同一个“销售收入”销售部门可能按签约金额统计运营部门可能按发货金额统计财务部门则按会计准则确认收入。三个数字都有来源却回答了不同问题。如果企业没有统一的数据仓库各部门就会分别从业务系统取数、清洗和计算。同一个指标可能出现多个版本会议最后变成核对数字而不是分析问题。数据仓库通常需要完成四项工作。1.统一业务对象同一个客户在CRM、ERP和财务系统中可能使用不同名称和编码。数据仓库需要建立统一的客户、商品、供应商、组织和地区维度让不同系统中的数据能够正确关联。否则数据即使全部汇集到一起也只是堆在一起无法形成完整业务链路。2.统一业务口径收入按下单、支付、发货还是财务确认统计是否含税退款在当期扣除还是追溯调整内部交易是否剔除这些问题必须在数仓建设阶段明确而不能让每个使用者自行理解。数据仓库真正统一的不只是数据格式更是业务规则。3.保存历史变化业务数据库通常更关注当前状态。例如客户目前属于华东区但管理者可能还想知道该客户去年属于哪个区域。商品现在已经调价但分析过去订单时仍然需要保留当时价格。数据仓库不仅要记录“现在是什么”还要保留“过去发生过什么”。4.沉淀公共数据模型数据仓库通常会建设ODS、DWD、DWS和ADS等层次。ODS负责保存接入的数据DWD形成标准化业务明细DWS沉淀公共汇总和主题数据ADS则服务具体报表、看板和业务应用。数仓分层不是为了增加表的数量而是为了把原始接入、公共加工和场景应用分开避免同一个指标在不同报表中被重复计算。数仓建设的难点往往不在某一条公式而在任务之间存在复杂依赖。订单、退款和成本数据没有更新完成毛利任务就不能提前运行。FineDataLink可以将清洗、转换、关联和汇总任务组织成完整链路并对上下游依赖、运行时间和异常状态进行统一管理让数仓不仅能够建成还能够长期稳定运行。三、数据湖先保存原始数据再寻找使用价值传统数据库和数据仓库更擅长处理结构清晰的表格数据。但企业现在产生的数据已经不只是订单、客户和库存表还包括App浏览和点击日志设备传感器数据图片、音频和视频合同、报告和其他文档JSON、XML等半结构化数据算法训练需要的原始样本。这些数据规模大、格式多而且在采集时未必已经明确最终用途。如果要求每一类数据进入平台前都必须完成严格建模建设周期和加工成本会非常高部分原始信息也可能在提前转换时丢失。数据湖采用的是另一种思路先以较低成本保存原始数据后续再根据分析、算法或者业务需求进行加工和使用。因此数据湖通常更适合日志分析、物联网、机器学习和探索性分析。但“先保存”不等于“随便保存”。如果企业只是不断把文件和日志放进存储平台却没有建立数据目录、元数据、权限、质量和生命周期管理数据湖就会逐渐变成“数据沼泽”。到最后平台里虽然有海量数据却没人能够回答数据来自哪个系统字段和文件代表什么哪个版本可以使用数据是否完整、及时谁拥有访问权限数据应该保存多长时间。所以数据湖降低的是原始数据的存储门槛而不是数据治理要求。对于需要同时接入数据库、接口、文件和消息数据的企业可以借助FineDataLink统一管理数据进入湖或仓的过程明确不同链路的来源、更新方式和运行结果。相比各项目分别编写采集脚本统一的数据集成入口更有利于控制数据延迟、重复采集和链路失效问题。四、数据中台把数据沉淀成可复用的公共能力数据中台不是一种新的数据库也不是把数据仓库扩大之后换一个名称。它更接近一种企业级的数据建设和运营方式。数据仓库重点解决数据如何整合和分析数据中台则继续向前一步关注已经治理的数据怎样被不同部门和业务场景重复使用。例如营销部门需要客户画像销售部门需要客户分层客服部门需要客户服务记录风险部门需要客户风险标签。如果每个部门都单独建设一套客户数据就会出现同一个客户存在多个身份标签名称相同计算规则却不同部门之间的数据无法互认同样的数据加工被重复开发数据更新后下游应用无法同步变化。数据中台需要将客户身份、交易行为、服务记录、价值等级和风险标签统一沉淀再以数据集、指标、标签或者接口的形式提供给不同部门。因此数据中台通常不只包含数据仓库还需要建立数据标准数据质量主数据管理元数据和数据目录公共指标体系标签体系数据权限和安全数据资产管理数据服务和运营机制。判断数据中台有没有价值不能只看建设了多少张表、多少个模型而要看这些能力是否真正被业务复用。如果数据仍然需要每次临时取数、手工加工和线下发送那么平台规模再大也没有形成真正的数据中台能力。当公共数据已经完成加工和治理后FineDataLink还可以把结果交付给BI工具、业务系统或者其他应用。数据不再只停留在数仓内部而是能够按照统一规则进入营销、运营、财务和供应链等业务流程形成从数据接入到服务输出的完整链路。五、湖仓一体减少数据湖与数据仓库的重复建设数据湖和数据仓库各有优势。数据湖擅长保存海量、多类型的原始数据数据仓库擅长管理结构化数据并支撑稳定分析。传统架构中两者往往相互独立。原始日志先进入数据湖经过加工后再复制到数据仓库算法团队使用湖中的数据经营分析和BI报表则使用仓中的数据。当数据规模不断扩大后这种架构容易产生五类问题。第一数据重复存储。同一份数据可能同时存在于湖、仓和多个应用层中不仅增加存储成本也增加版本管理难度。第二数据链路过长。数据需要在不同平台之间反复移动任何一个环节延迟最终分析结果都会受到影响。第三数据版本不一致。算法团队、分析团队和业务部门可能使用不同时间、不同规则加工的数据导致模型结果与经营报表无法对应。第四治理规则相互割裂。湖和仓分别维护元数据、权限和质量规则企业需要重复建设治理能力。第五计算资源难以协同。数据存储在一个平台计算却在另一个平台完成频繁搬运数据会降低效率。湖仓一体希望在统一或者高度协同的数据底座上同时提供湖和仓的能力包括保存结构化和非结构化数据支持批处理、实时计算和交互分析同时服务BI分析和机器学习统一元数据、权限和数据治理减少湖与仓之间的数据复制。但湖仓一体并不是简单地把数据湖和数据仓库放在一起也不是完全取消湖与仓的逻辑分工。它真正要解决的是同一份数据如何被不同计算和应用场景共同使用同时保持统一版本和统一治理。对于数据规模有限、主要需求仍然是固定报表和经营分析的企业优先把数据库、数据集成和数据仓库建设扎实往往比直接追求湖仓一体更有价值。结语数据库、数据仓库、数据湖、数据中台和湖仓一体没有绝对意义上的高低之分。数据库承载业务数据仓库支撑分析数据湖保留原始数据数据中台沉淀公共能力湖仓一体解决湖与仓之间的重复和割裂。企业真正需要判断的不是哪个概念更新而是当前的问题到底发生在哪个环节数据是否能够稳定接入业务对象和指标口径是否统一历史数据能否正确追溯公共数据能力是否得到复用不同平台之间是否出现严重的数据复制和治理冲突好的数据架构不是把所有热门概念全部放进架构图而是在合理成本下让数据从产生、接入、加工、治理到应用形成一条稳定、清晰并且能够持续创造价值的链路。

相关新闻