数据仓库系列总结

一、数据仓库架构

1、数据仓库的概念

数据仓库(Data Warehouse)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。

数据仓库通常包含多个来源的数据,这些数据按照主题进行组织和存储,以便于分析和报告。数据仓库中的数据一般不再进行更新或删除操作,而是存储历史数据,以便进行历史趋势分析或进行数据挖掘。数据仓库的设计和实施需要考虑数据的安全性、完整性和准确性,以及如何有效地检索和呈现数据。数据仓库是BI(商业智能)系统的核心,它不仅存储数据,还提供数据管理、分析和报告的功能。

2、关系性数据库和数据仓库

OLTP:OLTP系统通常面向的主要数据操作是随机读写,主要采用满足3NF的实体关系模型存储数据,从而在事务处理中解决数据冗余和一致性问题;主要适用于传统关系型数据库;

OLAP:OLAP系统面向的主要的操作是数据的批量读写,事务处理过程中的一致性不是OLAP关注的,其主要关注数据的整合,以及在一次性的复杂大数据查询中和处理中的性能,因此会采用一些不同的建模方法。

注:3NF 三范式

第一范式:原子性,确保数据库表的每一列都是不可分割的原子数据项,即列中的数据要么是一个整体,要么是单独的元素

第二范式:唯一性,在满足第一范式的基础上,消除非主键列对主键的部分依赖。即非主键列必须直接依赖于主键,不能间接依赖于主键。

第三范式:传递性,在满足第二范式的基础上,消除非主键列之间的传递依赖。即如果非主键列依赖于其他非主键列,则必须将这些非主键列移至新的表中。

3、数据仓库架构

3.1数仓基本架构

3.2数据仓库分层的好处

1. 清晰数据结构:每一个数据分层都有它的作用域,在使用表的时候能更方便地定位和理解。

2. 统一数据口径:通过数据分层,提供统一的数据出口,统一对外输出的数据口径。

3. 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。

4. 把复杂问题简单化:将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,而且便于维护数据的准确性。且以空间换时间;

4、数据仓库规范

可参考MaxCompute数据仓库的公共规范_云原生大数据计算服务 MaxCompute(MaxCompute)-阿里云帮助中心

二、数据采集

1、同步方式

1.1 批量同步

1.2 实时同步

2、数据同步解决方案

2.1分库分表的处理

2.2 高效同步和批量同步

2.3 增量同步和全量同步的合并

2.4 同步性能的处理

2.5 数据漂移的处理

数据漂移通常是指ODS表在同一个业务日期数据中包含前一天或后一天凌晨附近的数据或者丢失当天变更的数据,也称作零点漂移。

2.5.1数据漂移的原因

由于ODS需要承接面向历史的细节数据查询需求,这就需要物理落地到数据仓库ods层的表按照时间段来切分分区进行存储,通常做法事按照某些时间戳字段进行切分,而实际上由于时间戳字段的准确性问题导致了数据发生漂移。一般来说数据库会有以下时间戳字段:

       数据创建时间 create_time

        数据更新时间 modified_time

        数据日志时间 log_time

        业务时间 process_time

        数据抽取时间 extract_time

理论上这几个时间是同一天是一致的,但是实际生产中,这几个时间往往存在差异,主要原因可能是:

        ①由于数据抽取是需要时间的,extract_time往往会晚于其他时间;

        ②前台业务系统手工订正数据时未更新modified_time;

        ③由于网络或者系统压力问题,log_time或者modified_time晚于process_time

2.5.2数据漂移的场景

        ①

2.5.3数据漂移的处理方法

        ①

3、数据同步工具的使用

三、离线开发

thread.sleep(9)

四、实时开发

thread.sleep(8)

五、数据建模

thread.sleep(7)

六、维度建模

thread.sleep(6)

七、事实表设计

thread.sleep(5)

八、数据管理

thread.sleep(4)

九、数据治理

thread.sleep(3)

十、数据服务

thread.sleep(2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/470647.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AnyGo for Mac最新激活版:位置模拟软件打破地域限制

AnyGo for Mac,一款专为Mac用户打造的位置模拟软件,让您能够轻松打破地域限制,畅享无限可能。 软件下载:AnyGo for Mac v7.0.0最新激活版 通过AnyGo,您可以随时随地模拟出任何地理位置,无论是国内热门景点还…

【Godot4.2】2D导航02 - AstarGrid2D及其使用方法

概述 AstarGrid2D是Godot4.0新增的A*寻路辅助类型。可以看做是Astar2D的加强版。它允许你通过设置其size和cell_size属性来创建一个虚拟的网格。 并使用set_point_solid()这样的方法来在指定位置创建障碍物。 AstarGrid2D的好处是你不再需要手动的添加点以及点与点之间的连接…

vue3+element Plus form 作为子组件,从父组件如何赋值?

刚开始接触vue3时,碰到一个很low的问题,将form作为子组件,在页面中给form表单项输入内容,输入框不显示值,知道问题出在哪,但因为vue3组合式api不熟悉,不知从哪下手... 效果图: 父组…

ubuntu下samba匿名读写服务器

目的: 局域网内,ubuntu下,创建SAMBA文件共享服务器。匿名读写权限。为了开发项目组文件共享传输方便。 环境: X86_64电脑一台。 操作系统: Ubuntu 20.04 LTS 64位。 安装samba $ sudo apt-get install samba创建…

FPGA通过I2C控制AT24C64

文章目录 前言一、代码设计框图二、IIC_drive模块设计2.1、模块接口:2.2、代码功能描述:2.3、IIC协议实现过程: 三、EEPROM_ctrl模块设计3.1、模块接口:3.2、代码功能描述 四、EEPROM_drive模块五、iic_top模块 前言 继上一篇FPG…

计算机毕业设计-基于深度学习的验证码识别方法设计与实现

概要 验证码是一个系统区分人类与非人类行为的有效方式。验证码识别技术能够使计算机程序输入正确的验证码,伪装成人类用户进入目标系统。另一方面,系统方面需要考虑破解验证码识别技术,修补验证方式的可能漏洞,使之能够更有效地区…

[Uni-app] 微信小程序的圆环进度条

效果图&#xff1a; 组件完整代码如下&#xff1a; <template><view class"base-style":style"position: relative;width: diameter px;height: diameter px;display: flex;flex-direction: row;background-color: bgColor ;"><!…

RK3588+FPGA+AD+AI的智能数据采集与分析解决方案

RK3588是瑞芯微新一代旗舰级高端处理器&#xff0c;具有高算力、低功耗、超强多媒体、丰富数据接口等特点。搭载四核A76四核A55的八核CPU和ARM G610MP4 GPU&#xff0c;内置6.0TOPs算力的NPU。 RK3588复旦微FPGA方案 有五大技术优势 1. 内置多种功能强大的嵌入式硬件引擎&…

【Linux(1)】Linux的一些基本指令(补充上一篇)

思维导图 学习内容 通过上面的学习目标&#xff0c;我们可以列出要学习的内容&#xff1a; linux的一些指令&#xff1a;cd mkdir cp touch which rm cat alias 一些基本的概念&#xff1a;指令的概念&#xff0c;用户家目录是什么...... 一、Linux的一些指令 1.1 重新认识…

基于Spring Boot共享单车信息系统的设计与实现

摘 要 快速发展的社会中&#xff0c;人们的生活水平都在提高&#xff0c;生活节奏也在逐渐加快。为了节省时间和提高工作效率&#xff0c;越来越多的人选择利用互联网进行线上打理各种事务&#xff0c;然后线上管理系统也就相继涌现。与此同时&#xff0c;人们开始接受方便的生…

Opencv入门---绘图篇

目录 一、cv.line() 二,cv.cricle() 三&#xff0c;cv2.rectangle() 一、cv.line() cv.line()是 OpenCV 库中用于在图像上绘制直线的函数。它可以在图像上绘制一条直线&#xff0c;指定直线的起始点和结束点。 函数的语法如下&#xff1a; cv.line(img, pt1, pt2, color, th…

[LLM] 大模型基础|预训练|有监督微调SFT | 推理

现在的大模型在进行预训练时大部分都采用了GPT的预训练任务&#xff0c;即 Next token prediction。 要理解大语言模型&#xff08;LLM&#xff09;&#xff0c;首先要理解它的本质&#xff0c;无论预训练、微调还是在推理阶段&#xff0c;核心都是next token prediction&#…

dockerfile文件编写

文章目录 dockerfile是什么Dockerfile常用指令1. FROM2. MAINTAINER3. WORKDIR4.COPY5.ADD6.ENV7.RUN8.CMD9.ENTRYPOINT dockerfile是什么 Dockerfile是一个文本配置文件&#xff0c;用于自动化构建Docker镜像。 Dockerfile是由一系列命令和参数构成的脚本&#xff0c;它指导D…

zookeeper快速入门(合集)

zookeeper作为一个分布式协调框架&#xff0c;它的创建就是为了方便或者简化分布式应用的开发。除了服务注册与发现之外&#xff0c;它还能够提供更多的功能&#xff0c;但是对于入门来说&#xff0c;看这一篇就够了。后续会讲zookeeper的架构设计与原理&#xff0c;比如zookee…

resize-observer源码解读

resize-observer github 地址&#xff1a;https://github.com/devrelm/resize-observer 本地启动 npm installnpm startnode 18.16.0 (npm 9.5.1) 启动失败报错 node:internal/crypto/hash:71this[kHandle] new _Hash(algorithm, xofLen);^Error: error:0308010C:digital …

1、初识JVM

一、JVM是什么&#xff1f; JVM的英文全称是 Java Virtual Machine&#xff0c;其中文译名为Java虚拟机。它在本质上就是是一个运行在计算机上的程序&#xff0c;他的职责是运行Java字节码文件。 JVM执行流程如下 二、JVM有哪些功能&#xff1f; 2.1 解释和运行 对字节码文…

【Web技术应用基础】HTML(1)——简单界面

题目1&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title>Hello world</title></head> <body bgcolor"F6F3D6"><!--用HTML语言向世界打声招呼吧&#xff01;--><h1 align&…

电脑怎么快速重装系统win7

电脑重装系统是解决软件问题、提升系统性能的常用手段。随着技术发展,一键重装系统成为了许多用户的首选方法,因为它简化了繁琐的操作步骤,节省了大量时间。尤其是对于非技术人员来说,一键重装提供了一种快速高效且不易出错的系统安装方式。如果你需要快速重装win7,那么可…

Spring Boot 自动化单元测试类的编写过程

前言 Web环境模拟测试 企业开发不仅要保障业务层与数据层的功能安全有效&#xff0c;也要保障表现层的功能正常。但是我们一般对表现层的测试都是通过postman手工测试的&#xff0c;并没有在打包过程中代码体现表现层功能被测试通过。那么能否在测试用例中对表现层进行功能测…

Android 项目实战,APP开发,含源码

Android 项目实战&#xff0c;APP开发&#xff0c;含源码 源码项目详情 源码项目详情 切鱼达人&#xff0c;Android休闲游戏开发 打砖块&#xff0c;Android休闲小游戏开发 “牛弹琴”&#xff0c;Android 弹钢琴 app 开发 2048 数字合成大作战&#xff0c;Android小游戏开…
最新文章