首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

中小型公司数仓建设实践指南

引言

在当今数据驱动的商业环境中,数据仓库已成为企业决策支持系统的核心组成部分。对于中小型公司而言,建立高效、灵活且成本可控的数据仓库系统是一个关键挑战。本指南旨在为中小型企业提供从零开始构建数据仓库的全面指导,涵盖数据库选择、调度平台、报表展示等核心组件,特别关注免费和低成本的解决方案,帮助企业在有限预算内实现高效的数据管理与分析。

目前市面上能实现数仓的工具,形形色色,但是完整的流程基本上就是如上图这个架构图了。

数据来源

每个公司都会有自己的业务系统,就是OLTP系统,所有的业务流程都是在业务系统里进行。例如交易系统,库存管理,OA操作,财务管理,等等业务系统。

这些系统经过日常的业务进行会不断地产生数据,这些数据就会存放在关系型数据库里。如果你是IT开发人员那你就会知道,在日常的开发过程中,肯定会涉及到对数据库的增删改查,这些都是开发时的基本操作。

业务过程中产生的这些数据就是数仓的数据来源,也就是数仓的来源活水,如果没有这些来源的话,那数仓也就无从谈起。

ETL工具

数据从业务系统取到数仓和在数仓里面加逻辑加工,就需要用到ETL工具。ETL工具实现的功能,一个是从业务系统把数据取过来存进数仓里,一个是基于数仓里面的数据做进一步的加工成最终业务想的表。加工后的表可以很方便地被业务进行使用,可以直接帮助到业务。

调度工具

ETL程序开发出来后是需要定期运行的。因为业务系统的数据每天都在增加,数仓里的数据是需要跟业务系统的数据保持一致的。目前离线数仓一天都是一天跑一次。开发出来的ETL程序会有很多,不可能靠开发人员每天都去执行。所以这时假就需要有一个自动调度平台了。调度平台就是用来定时跑ETL程序的。设置好每天哪个时间点运行,到点了程序就可以自动执行。数据处理有可能不是一个程序就能处理完,整个流程下来会有不同的层次,不同的层次会存放不同作用的数据。所以到最终给到业务看的数据是由一系列ETL程序来完成的。那么在调度上就需要有前后依赖关系,前面的程序跑完了后面的程序才能运行。所以调度平台的这个依赖关系也就显得很重要了。

存储介质

数据从业务系统取到数仓后是需要有个地方能存放这些数据的,也就是存储介质。这个存储介绍可以根据实际的需求来定,可以是关系型数据库,也可以是像hive这种文件型数据库。中小型公司数据量不是特别大的,可以直接考虑关系型数据库。这一类数据库对查询性能的支持更加地友好,而且部署上更加的简易。只是如果数据量太大就很容易达到瓶颈,导致ETL程序跑不动。这时候就需要用到hive数据库了,目前大公司里一般都是用的hive数据库作为数仓。

展示工具

数据加工完成后是存放在数仓里的,但是不可能让业务人员直接到数仓里去取数。这样效率不仅低,对业务人员的技能要求也有点高了。所以这时就需要有一个数据展示工具。数据展示工具就是把数仓里的数据按业务最终想要的形式展示出来,以此帮助业务解决问题,帮助业务提升效率。数据展示的形式就是多种多样的了。可以是一目了然的各种图,例如线形图,饼图,直方图等等。可以直接看出趋势,同环比,或都不同品类的对比效果。也可以是表格形式,这种就可以方便业务自由组合看数的维度,还可以通过筛选查看特定条件下的数据,以方便定位问题的原因。

总结:

随着业务的不断发展,数仓也不可能是一成不变的,ETL处理逻辑要随着实际业务的变化及时调整,这样才能更好地满足业务需求。所以数仓的分层就很重要好,分层设计得好,业务变化对数仓整体架构的冲击就越小。如何才能设计出来稳定好用的数仓,这就需要在实际的工作中不断地摸索了。

但是不管怎么说,构建数仓的最终目的还是要能够为业务提供帮助,要能为业务的业绩出一份力。这样数仓才能够体现出它的价值。

如果有兴趣的同学,可以直接根据文中开头的架构图去搭建一个中小型公司可用的数仓。架构图中提到的工具都是经过实践可行的。欢迎沟通交流~

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OroG80D8GKFZDxmJOl2lc2vQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券