当前位置: 首页 > news >正文

数据仓库建设方案和经验总结

在做数据集成的过程中,往往第二步的需求就是建设数仓由于数据分散在不同的存储环境或数据库中,对于新业务需求的开发需要人工先从不同的数据库中同步、集中、合并等处理,造成资源和人力的浪费。同时,目前的系统架构,无法为未来数据驱动业务创新的理念提供友好的支撑。

数仓建设

要明确企业的实际需求,确保数仓建设符合企业战略目标和业务需求。其次,在技术路径上,要选择合适的选型产品和技术架构,确保数仓的稳定性和可扩展性。最后,在数据路径上,要注重维度模型的设计和数据处理工程的设计,确保数据的准确性和高效性。同时,BI应用路径也是数仓建设中不可忽视的一环,它关系到数据仓库建成后如何有效应用于企业的实际业务中,是衡量数仓成功落地的重要标准。
在构建数据仓库的过程中,我们首先要做的是梳理业务,明确核心业务链路与数据表,并据此划分管理主题。接着,从这些主题中识别出对应的事实表、维度表,并进行指标的梳理、收集和建模。值得一提的是,在建设数据仓库时,我们通常会采用一个分级的架构模型。尽管并非所有数据仓库都严格遵循同一分层标准,但大多数情况下,可以将其划分为ODS(Operational Data Store)层、DW(Data Warehouse)层和DM(Data Mart)层
 

企业数据仓库建模

这个是整个项目最花时间精力的一部分内容:例如表的设计以及同步策略
1、表设计
要提高数据使用效率,打破数据库之间的物理隔阂,需要先将数据汇聚到数据仓库中,数据同步分为实时和非实时,采用的技术也不同。目前先从ODS中同步到hive。数据同步策略的类型包括:全量表、增量表、新增及变化表、拉链表:

  • 全量表:存储完整的数据。
  • 增量表:存储新增加的数据。
  • 新增及变化表:存储新增加的数据和变化的数据。
  • 拉链表:对新增及变化表做定期合并。
    2、实体表同步策略
    实体表:比如用户,理财产品等,实体表数据量比较小,通常可以做每日全量,是每天存一份完整数据。即每日全量。
    (1)维度表同步策略
    维度表:比如订单状态,审批状态,产品分类,维度表数据量比较小,通常可以做每日全量,是每天存一份完整数据。即每日全量。说明:
    针对可能会有变化的状态数据可以存储每日全量。
    没变化的客观世界的维度(比如性别,地区,民族)可以只存一份固定值。
    (2)事务型事实表同步策略
    事务型事实表:比如,交易流水,操作日志,出库入库记录等。
    因为数据不会变化,而且数据量巨大,所以每天只同步新增数据即可,所以可以做成每日增量表,即每日创建一个分区存储。
    (3)周期型事实表同步策略
    周期型事实表:比如订单申请等

    项目计划

    阶段工作任务成果交付物资源准备阶段编制项目计划与工作任务拆解《项目计划表》准备数仓建设资源清单《资源清单》成立项目组,明确成员职责《项目组成员通讯录》准备项目文档集工具《文档集工具》项目启动会议购置数仓建设资源云服务器《资源清单完善》建模编码规范《数仓建模编码规范表》基础知识课件《培训课件》轻易云迁移阶段轻易云集成平台私有化部署《服务器资源清单》《部署运维记录》轻易云集成平台数据迁移《数据迁移运维记录》轻易云迁移试运行测试《上线测试报告》轻易云进阶开发培训基础培训阶段MySQL 基础知识培训《培训课件》《学习成果汇报》DDD 领域驱动设计培训《培训课件》《学习成果汇报》业务建模基础知识培训(经验分享)《培训课件》《学习成果汇报》MySQL 进阶培训(面向复杂的sql分析)《培训课件》《学习成果汇报》业务数据建模阶段主数据建模数据库模型ER关系图OMS业务建模数据库模型ER关系图WMS业务建模数据库模型ER关系图费控业务建模数据库模型ER关系图业务模型一阶段评审主数据建模完善数据库模型ER关系图OMS业务建模完善数据库模型ER关系图WMS业务建模完善数据库模型ER关系图费控业务建模完善数据库模型ER关系图业务模型二阶段评审数据库模型初始化SQL Script数仓集成阶段主数据集成方案《系统集成方案》OMS集成方案《系统集成方案》WMS集成方案《系统集成方案》费控集成方案《系统集成方案》集成方案试运行历史数据集成集成正式运行数据分析阶段OMS分析主题SQL ScriptWMS分析主题SQL Script费控分析主题SQL Script

    项目计划

    项目成果

相关文章:

数据仓库建设方案和经验总结

在做数据集成的过程中,往往第二步的需求就是建设数仓由于数据分散在不同的存储环境或数据库中,对于新业务需求的开发需要人工先从不同的数据库中同步、集中、合并等处理,造成资源和人力的浪费。同时,目前的系统架构,无…...

Re77 读论文:LoRA: Low-Rank Adaptation of Large Language Models

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文全名:LoRA: Low-Rank Adaptation of Large Language Models ArXiv网址:https://arxiv.org/abs/2106.09685 官方GitHub网站(包含在RoBERTa、DeBERTa、GPT-2上用Lora微调…...

曲波系数 curvelet transform

Curvelet 变换后的系数涵义 曲波变换(Curvelet Transform)是一种多尺度、多方向的变换工具,能够有效地表示信号中的几何特征(如边缘、曲线等)。曲波变换后的系数具有明确的物理意义,反映了信号在不同尺度、…...

OS的随机数生成过程中的内核熵池

内核熵池(Kernel Entropy Pool)是操作系统内核中用于收集和管理熵(随机性来源)的机制 ,在操作系统的随机数生成过程中发挥关键作用。 以下从其原理、作用、工作方式方面详细介绍: 原理:熵在信…...

数据结构:双向循环链表

双向循环链表(Doubly Circular Linked List) 双向循环链表是双向链表的一种变体,其特点是链表的头节点和尾节点相连,形成一个闭环。这种结构允许在链表中进行无缝的双向遍历,并且由于循环特性,可以从任何节…...

IP网和传输网区别(以访问百度为例!)

1. IP网和传输网的关系 IP网:是基于IP协议的网络,负责数据的逻辑传输,包括数据包的路由、寻址和转发。IP网是“虚拟”的,它依赖于底层的传输网来实际传递数据。 传输网:是物理网络基础设施,负责数据的物理…...

STM32裸机开发转FreeRTOS教程

目录 1. 简介2. RTOS设置(1)分配内存(2)查看任务剩余空间(3)使用osDelay 3. 队列的使用(1)创建队列(1)直接传值和指针传值(2)发送/接收…...

FreeSWITCH dialplan/default.xml 之释疑

准备花时间好好研究下,一直都是一知半解 sip_looped_call 通俗地说,就是自己呼叫自己 查文档,是这样讲的:如果调用已通过 ACL 以外的方式进行身份验证,并且当前请求 IP/port 与配置文件 IP/port 匹配,那…...

lambda用法及其原理

目录 lambda形式lambda用法1.sort降序2.swap3.捕捉列表 习题解题 lambda形式 [capture-list](parameters)->return type{function boby}[capture-list]:[捕捉列表]用于捕捉函数外的参数,可以为空,但不能省略;(parameters) &am…...

Go Ebiten随机迷宫生成示例

引言 迷宫生成是计算机科学中一个经典的问题,常用于算法教学和游戏开发。本文将介绍如何使用 Go 语言和 Ebiten 游戏引擎实现一个基于深度优先搜索(DFS)的随机迷宫生成算法,并通过可视化的方式展示迷宫的生成过程。 技术栈 Go …...

前端学习DAY31(子元素溢出父元素)

.box1{width: 200px;height: 200px;background-color: chocolate;} 子元素是在父元素的内容区中排列的,如果子元素的大小超过了父元素,则子元素会从 父元素中溢出,使用overflow属性设置父元素如何处理溢出的子元素 可选值:visible…...

『SQLite』表的创建、修改和删除

本节摘要:主要讲述SQLite中创建、删除、修改表等操作。 创建表 CREATE TABLE 语句来创建表。 修改表 ALTER TABLE 语句来修改表名称、已有表字段,或者新增字段。 删除表 DROP TABLE 语句用来删除表. 注意: 上述内容详细讲解见文章&#…...

可持久化数据结构-线段树(主席树)

可持久化数据结构-线段树(主席树) (与可持久化字典树差不多) 概念:可持久化线段树是基本线段树的一个简单拓展, 是使用函数式编程思想的线段树; 作用: 可以存下来数据结构的所有历史版本 特点: 拓扑结构…...

如何利用PHP爬虫按关键字搜索淘宝商品

在当今的电商时代,获取淘宝商品信息对于市场研究、价格监控和竞争分析等方面具有重要意义。手动搜索和整理大量商品信息不仅耗时耗力,而且容易出错。幸运的是,PHP爬虫技术为我们提供了一种高效、自动化的方式来按关键字搜索淘宝商品。本文将详…...

GitHub - riscv-software-src/riscv-isa-sim: Spike, a RISC-V ISA Simulator

GitHub - riscv-software-src/riscv-isa-sim: Spike, a RISC-V ISA Simulator 操作手册 $ apt-get install device-tree-compiler libboost-regex-dev libboost-system-dev $ mkdir build $ cd build $ ../configure --prefix$RISCV $ make $ [sudo] make install 具体安装 …...

ubuntu开机启动服务

需求背景: 需要监控日志,每次都是手动启动 nohup ./prometheus >/dev/null & nohub ./node_exporter >/dev/null & 需求目标: 重启后系统自动启动服务...

电子电气架构 --- 设计车载充电机的关键考虑因素

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…...

2025_0105_生活记录

3号去内蒙看了流星雨。还记得上次看流星的时间是2018年,也是冬天,大家在雁栖湖校区的操场上仰望星空。那个时候幸运的看到了一颗流星,便迅速地在心里许愿。这次看到了三颗流星,我也许了愿,希望实现。 24年走过了十多个…...

电池管理系统(BMS)架构详细解析:原理与器件选型指南

BMS(电池管理系统)架构详细讲解 从你提供的BMS(Battery Management System)架构图来看,主要涉及到电池监控模块、通信模块、功率控制模块等部分。下面我将详细讲解该架构的各个功能模块及其工作原理。 1. 电池管理核…...

用JAVA编写一个简单的小游戏

用Java语言编写一个简单的小游戏。这里是一个非常基础的猜数字小游戏的代码示例。在这个游戏中,程序会随机选择一个1到100之间的整数,玩家需要猜测这个数字是什么。每次猜测后,程序会告诉玩家他们猜的数字是太高了、太低了还是正确。 impor…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...