大工程 从0到1 数据治理 数仓篇(sample database classicmodels _No.7)

2024-02-23 01:44

本文主要是介绍大工程 从0到1 数据治理 数仓篇(sample database classicmodels _No.7),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大工程 从0到1 数据治理 之数仓篇

我这里还是sample database classicmodels为案列,可以下载,我看 网上还没有类似的 案列,那就 从 0-1开始吧!

在这里插入图片描述


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 大工程 从0到1 数据治理 之数仓篇
  • 什么是数仓?
  • 企业为什么要建数仓?
  • 建数仓的数据库选型
    • 关系型数据库:
    • 列式数据库:
    • 分布式数据库:
    • 云数据库服务:
    • Mpp数据库:
  • 数仓的备份
    • 全量备份:
    • 增量备份:
    • 定期备份计划:
    • 分层备份:
    • 异地备份:
    • 压缩和加密:
    • 测试恢复流程:
    • 日志备份:
    • 监控和报警:
  • TB级数仓的硬件配置
    • [clickhouse -data warehouse](https://clickhouse.com/blog/building-a-data-warehouse-with-clickhouse) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/164dd33ee4c640d6acad0aa3590b2cfc.png)


什么是数仓?

数仓是指数据仓库的简称(Data Warehouse)。数据仓库是一个用于集中存储和管理大量结构化和非结构化数据的系统。它的目标是帮助组织更好地理解和分析其数据,支持决策和业务运营或者说是 支持企业在决策和分析方面的需求,提供可靠、一致、高性能的数据存储和访问。

以通俗易懂的方式来说,你可以把数据仓库比喻为一个大型的数据存储仓库,就像企业中的“数据中心”。这个仓库里存放着各种各样的数据,包括销售数据、客户信息、交易记录等等,这些数据来自企业内部的不同部门和系统。

数仓的主要功能是将这些分散的数据整合在一起,清理和转换成可分析的格式,使企业管理层和决策者能够更轻松地查看、理解和利用这些信息。通过数仓,企业可以进行更有效的业务分析、趋势预测、决策制定,从而提升业务的智能化和竞争力。

数仓的优势包括:

  • 决策支持: 提供高性能的查询和报表功能,帮助企业领导和分析师做出更好的决策。
  • 数据一致性: 集中存储数据,确保数据的一致性和准确性。
  • 历史数据追溯: 可以存储历史数据,支持时间序列分析和趋势观察。
  • 数据整合: 整合来自不同业务系统的数据,提供一个全面的视图。
  • 总的来说,数据仓库在企业中扮演着重要角色,帮助组织更好地理解和利用其数据资产。

数仓通常从不同的业务系统中汇总数据,将其清洗、转换、加载(ETL)到一个统一的存储库中,以便用户可以执行复杂的查询和分析。数据仓库的设计通常遵循维度建模的原则,其中数据被组织成事实表和维度表,以支持多维分析。

企业为什么要建数仓?

企业建立数据仓库(Data Warehouse)有多个重要原因,其中一些主要的包括:

集中数据存储: 数据仓库提供一个集中存储和管理企业内部和外部数据的地方。这使得数据更容易访问、管理和维护,有助于确保数据的一致性和准确性。

支持决策制定: 数据仓库能够整合不同来源的数据,提供更全面、准确的信息,帮助企业管理层做出更明智的战略和战术决策。通过分析历史数据和当前趋势,企业能更好地了解市场、客户、业务运营等方面的情况。

提高数据质量: 数据仓库通常包括数据清洗、转换和加载(ETL)过程,通过这些过程,可以提高数据的质量,确保数据的一致性和准确性。这有助于避免在决策中因为数据质量问题而导致的错误。

支持业务智能和分析: 数据仓库是业务智能和分析的基础。通过对数据仓库中的数据进行查询和分析,企业可以获取深刻的见解,发现潜在的模式和趋势,帮助业务更好地了解市场、客户需求和业务绩效。

满足合规性要求: 数据仓库的建立可以有助于满足法规和合规性方面的要求。通过确保数据的一致性和准确性,企业能够更容易地满足监管机构的规定。

支持大数据处理: 随着大数据的崛起,企业需要处理和分析海量的数据。数据仓库提供了一种结构化的方法,帮助企业有效地管理和分析大规模数据集。

促进数据驱动文化: 数据仓库可以促进数据驱动的企业文化。通过使数据更易于访问和理解,员工更有可能使用数据支持其决策和行动。

总的来说,建立数据仓库有助于企业更好地管理、分析和利用数据资源,从而提高决策的准确性和效率,推动业务的发展。

建数仓的数据库选型

关系型数据库:

Oracle Database: Oracle是一种强大的关系型数据库管理系统,广泛用于大型企业和复杂的数据仓库环境。
Microsoft SQL Server: SQL Server是微软推出的关系型数据库管理系统,适用于Windows环境,并提供强大的商业智能和分析功能。
MySQL: MySQL是一种开源的关系型数据库,适用于中小型企业的数据仓库建设。

列式数据库:

Greenplum: Greenplum是一种基于开源的列式数据库,专注于大规模数据仓库和分析场景。
ClickHouse: ClickHouse是俄罗斯的一种列式数据库,以其高性能和可扩展性而闻名。

分布式数据库:

Hadoop和Hive: 使用Hadoop作为分布式存储,结合Hive进行数据仓库查询。这适用于大规模的数据分析和处理。
Spark SQL: 基于Apache Spark的分布式数据库,适用于大规模数据处理和复杂分析。
NoSQL数据库:
MongoDB: MongoDB是一种面向文档的NoSQL数据库,适用于半结构化数据和灵活的数据模型。
Cassandra: Cassandra是一种分布式的NoSQL数据库,适用于具有高可扩展性和高可用性需求的场景。
还有

云数据库服务:

阿里云 AnalyticDB: 阿里云的AnalyticDB是一种云上数据仓库服务,具有高性能、弹性扩展和集成大数据处理的特点。
腾讯云 ClickHouse: 腾讯云提供的ClickHouse服务,可以方便地在云上搭建基于列式存储的数据仓库。

Mpp数据库:

StarRocks 和 Doris:
StarRocks 和 Doris 都是分布式的实时分析数据库,属于MPP(Massively Parallel Processing)架构的一种。它们的设计目标是支持大规模数据存储和分析,特别适用于OLAP(Online Analytical Processing)场景,即面向复杂查询和分析的工作负载。

中国的一些MPP(Massively Parallel Processing)数据库包括:

OceanBase:
OceanBase是由阿里巴巴开发的分布式数据库系统。它支持水平扩展和MPP处理,用于应对大规模数据存储和处理需求。OceanBase不仅支持事务型工作负载,还能够处理大量的分析型查询。

TencentDB:
腾讯云的数据库服务TencentDB(原腾讯云分布式数据库TDSQL)具有分布式架构和MPP处理能力,适用于OLAP和OLTP场景。它提供了MySQL、PostgreSQL和SQL Server等不同引擎的版本。

Huawei GaussDB:
华为的GaussDB是一款分布式数据库产品,支持MPP处理,适用于海量数据的存储和分析。它支持多模型数据库,包括关系型、时序型、图形型等。

数仓的备份

数据仓库的备份是保障数据安全、可用性和完整性的关键步骤。备份策略应该根据业务需求、数据重要性和恢复时间目标(Recovery Time Objective, RTO)等因素进行制定。以下是关于数据仓库备份的一些建议:

全量备份:

定期进行全量备份是数据仓库备份策略的基础。全量备份包含整个数据库的数据,是恢复数据的基础。

增量备份:

为减少备份时间和存储成本,可以考虑增量备份。增量备份只备份自上次备份以来发生变化的数据,节省存储空间和备份时间。

定期备份计划:

制定定期的备份计划,根据业务需求和数据变化频率来决定备份的频率。一般来说,每日全量备份和更频繁的增量备份是常见的做法。

分层备份:

根据数据仓库的不同层次,可以考虑采用分层备份策略。比如,可以对ODS层和DWD层采用不同的备份频率和保留期限,根据数据变更的频率和重要性进行调整。

异地备份:

将备份数据存储在与数据仓库主体不同的物理位置,以防止因自然灾害、硬件故障等原因导致的数据丢失。云存储服务也是一个常见的异地备份选择。

压缩和加密:

在备份数据时,可以考虑对备份文件进行压缩,以节省存储空间。同时,对备份数据进行加密有助于确保备份文件的安全性。

测试恢复流程:

定期测试备份的恢复过程,以确保备份数据的完整性和可用性。这可以在面临真实灾难时提高数据恢复的成功率。

日志备份:

在数据库支持的情况下,进行事务日志的备份,以支持点时间恢复(Point-in-Time Recovery)。这可以减小数据丢失的范围。

监控和报警:

设置备份任务的监控和报警机制,及时发现备份失败、存储空间不足等问题,确保备份任务按计划执行。
备份是数据管理中至关重要的一环,一个健全的备份策略有助于最小化数据丢失、确保系统可用性,并提供在紧急情况下迅速恢复数据的能力。

TB级数仓的硬件配置

要构建一个TB级别的大规模数据仓库,需要精心设计硬件配置以满足高性能、可伸缩性和可靠性的要求。以下是一个概括性的TB级数据仓库的硬件配置示例:

计算节点(Compute Nodes):

数量: 数十至数百台计算节点,具体数量根据数据规模和性能需求而定。
处理器: 每个计算节点配备多个高性能的多核处理器,如Intel Xeon或AMD EPYC系列。
内存: 大量的RAM,通常每个节点需要几百GB到数TB的内存,以支持大规模数据的并行处理和分析。
存储节点(Storage Nodes):

数量: 数十至数百台存储节点,用于存储大规模的数据。
存储类型: 高性能的分布式存储系统,可能包括SSD和HDD的混合存储,以平衡性能和成本。分布式文件系统或对象存储可用于提供高可用性和可伸缩性。
存储容量: 每个节点具有数十TB到数百TB的存储容量,总存储容量达到TB级别。
网络架构:

高速网络: 使用高速网络互联计算节点和存储节点,例如40Gbps或100Gbps以保障快速数据传输。
InfiniBand或Ethernet: 选择适当的网络技术,以支持低延迟和高带宽的通信,确保计算节点和存储节点之间的有效通信。
数据库引擎和软件:

分布式数据库: 选择适合大规模数据仓库的分布式数据库引擎,如StarRocks、Doris、Greenplum等。
操作系统: 使用稳定、高性能的操作系统,如Linux发行版(例如CentOS、Red Hat)。
负载均衡和管理工具:

负载均衡器: 在前端引入负载均衡器以平衡查询负载,确保计算和存储资源充分利用。
集群管理工具: 使用专业的集群管理工具,确保节点的高可用性和故障恢复。
冗余备份和灾难恢复:

冗余节点: 在计算和存储层面引入冗余节点,以防单个节点故障。这可以通过数据复制和备份机制来实现。
灾难恢复: 考虑在不同地理位置部署冗余数据中心,以实现灾难恢复和数据备份的安全性。
以上硬件配置只是一个示例,具体的TB级数据仓库硬件配置需要根据实际需求、预算和性能目标进行调整。在设计和建设过程中,建议进行性能测试和负载测试,以确保硬件配置能够满足数据仓库的需求。


一些学习资料
github
在这里插入图片描述

wiki-data_warehouse
在这里插入图片描述

aws-data-warehouse
在这里插入图片描述
azure-data-warehouse

在这里插入图片描述
IBM-data-warehouse
在这里插入图片描述

clickhouse -data warehouse
在这里插入图片描述

文本 将使用 clickhouse 做数据仓库,后面一章会说到,谢谢大家

这篇关于大工程 从0到1 数据治理 数仓篇(sample database classicmodels _No.7)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/737143

相关文章

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

pandas数据的合并concat()和merge()方式

《pandas数据的合并concat()和merge()方式》Pandas中concat沿轴合并数据框(行或列),merge基于键连接(内/外/左/右),concat用于纵向或横向拼接,merge用于... 目录concat() 轴向连接合并(1) join='outer',axis=0(2)join='o

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一