虽然我是做报表和BI的,但是报表和BI的效果要好,数据底层很重要,数据架构也很重要,这就不可避免地会涉及到数据仓库。
先放几张图吧:
想要建立实时数据仓库,你肯定得知道:
。
想要知道实时数据仓库怎么做,我们首先得知道,为什么要用实时数据仓库,也就是说我们得明白公司也好,企业也罢,他们要求我们做实时数据仓库的价值何在?
目前的数据仓库大都是T+1离线分析数据,即运营人员今天看昨天的数据报表,当客户为店铺或者商品做活动并且想看当前的活动效果就只能等到明天来查看数据。而阿里每年的双11,几分钟完成上亿的交易量,他们更想知道的是双11这个活动带来的实际效益,当前最新的订单量、销售额等。
数据仓库是对企业各类数据的汇总和规范化,能够屏蔽各业务系统之间的差异,提供统一的数据出口。通常情况下,数据仓库都要包括贴源层、明细层、汇总层和集市层或者贴源层、模型层、集市层等几个层次,并最终通过接口等方式提供数据给下游应用文系统使用。
其中,贴源层是对源系统数据的直接复制,不做加工处理,往往通过卸数或者数据同步的方式实现,其他层次是基于贴源层数据跑批和逐步汇总抽象得来。
目前,大多还是离线数据仓库,往往是T+1延迟,即T+1日凌晨卸载源系统T日日终的数据,然后跑批,将数据入模型入集市,并最终提供给下游应用系统,可以基于大数据平台,也可以基于Teradata等传统数据仓库来做。
而所谓实时数据仓库就是能够提供实时的数据接口,延迟在支撑实时查询、实时报表等业务场景。要做到实时,一个是保障源系统数据入ODS的实时性,即构建实时ODS,往往通过OGG/CDC等数据同步方案实现,实时监控源系统数据库变化日志并实时同步至数据仓库。二是要确保数据模型和集市的效率,这时候TD等传统数据仓库就不太合适了,要在大数据平台上建模和跑批。
现在完全实时的数据仓库还是比较困难的,一般还是离线数仓和实时ODS混搭,属于离线的就按日跑批,需要实时的就实时同步,这样能够提升效率,简化业务模型。
想要做实时数据仓库,必须得了解数仓的构成以及如何选择对应的数仓组件。
源数据(data)、数据抽取转换加载(etl)、联机查询分析(olap)是数仓构成的三大内容。下面一一解释:
DATA
源数据,包括各部门各业务库中的数据或者系统访问日志,或者其他形式存储的外部数据等等。可以使用maxwell或者flume来进行数据采集,具体根据数据源的存储形式来决定,比如如果是日志形式,可以使用flume;如果是mysql存储可以使用maxwell。
ETL
上面所说的数据采集便是ETL中的一个步骤,即"E"(Extract,数据抽取)这个步骤。一般采集的数据会先放进kafka中,然后通过Spark Streaming或者Flink或者Storm等流式数据处理框架进行简单数据处理(T:Transform)后加载(L:Load)到olap系统中。
所谓的实时数据仓库首先要保障仓库的数字化和信息化,信息时代,仓库管理一定要跟上企业发展要求,用现代化技术管理仓库,让仓库产品数据一目了然。
我们先来分析一下企业仓库需要分析展现的实时数据:企业产品什么时间入库?入库数量是多少?产品质量怎么检测并跟进?产品怎么自动上架?上架以后怎么实时找到我们所需要的产品?哪些产品需要优先出库?出库的规则是什么······这些问题都需要我们去管理。
我推荐用【C2P工业云库存软件】实时管理仓库并分析数据。C2P工业云库存自动配置三步入库、三步出库、自动上架功能,满足大部分企业需求,模块方便企业对在线仓库进行现代化管理,通过复式分录智能库存系统追踪每一库存流动,实现全面自动补货,了解仓库情况。C2P工业云把库存、生产、质检三者融为一体,能更好的把控产品质量。工业云软件有专门技术人员1对1进行辅导,企业上手即用,彻底解决库存太乱的难题。
如果你也想体验一下我们的库存管理,可以直接搜索C2P工业云,
或者访问我们的官网 http://openc2p.cn。
想直接体验工业云的功能可以登录 <http://demo.rongbiz.com>