数仓-数据结构

一、集结区( Staging Area

数据的集结过程指的是写入磁盘

二、集结目的

可恢复

  备份

审计:

很多时候,源系统和目标系统之间的数据沿袭在ETL 代码中丢失,当审计 ETL 流程时,数据集结区的存在使得对 ETL 流程中的不同阶段的直接比较成为可能,因为这时候审计人员(或者程序员)可以简单的比
较原始的输入文件和输出文件来检查逻辑转换规则。当源系统覆盖了历史数据时,集结数据特别有用。当一个事件发生后,你可能对于数据仓库中几天甚至几周的数据信息的完整性产生了疑问,这时候对相应时段
的集结区的抽取数据进行检查将能够帮助你恢复对数据仓库的数据准确性的信心。

集结区空间规模估算表:
表名称。在集结区中的表或者文件的名字。在计算表中每个集结表都占用一行。
更新策略。这个字段表明表的维护方式。如果是一个永久表,可能的策
略为追加数据、更新或删除。如果是临时集结表,在每个过程中都会被
删减和重新加载。
加载频率。 ETL过程对表中的数据以什么样的频率加载和更改。通常是
每日一次。还可以为每周、每月或者任意的时间间隔。 在一个实时环境
中,在集结区中的表可能不断的被更新。
ETL 作业。集结区表通过ETL 作业进行操作和更新。 ETL 作业指的是操作
集结区表或者文件的作业或者程序。当多个作业操作单个的表的时候,
在估算表的这个字段中列出所有的作业。
初始行数。 ETL小组必须估计在集结区初始的时候每个表中的记录数。
记录数通常和源表和目的表的行数有关。
平均行长度。为了估算空间大小,必须将每个集结区表的平均行长度提
供给
DBA。在 Oracle环境中,我们通常在开发环境中创建表,运行统计
后从
ALL_TABLES 中收集这些信息。例如,在Oracle DBMS_STATS包可
以用于生成相应的统计字段信息。
增长。虽然每张表都是按照调度周期进行更新的,但不会每次都增长。
在估算表中的增长字段
(GrowWith)是基于业务规则。你必须定义集结区
中的表何时会增长,例如一个状态表只有在增加新状态的时候才会增长,
尽管这些表每天都会被访问来查看是否有变化,但是增加新的状态的情
况并不常发生。
预计每月行数。这个估计是根据历史和业务规则。DBA 需要根据预期的
增长来给表分配空间。每月行数是计算每个月增长多少字节的重要因素。
预计每月字节数。预计每月字节数等于平均行长度乘以预计每月行数。
初始表大小。初始表大小通常用字节或者兆字节来表示。取值等于平均
行长度乘以初始行数。
6 个月表大小。6 个月表大小的估算可以帮助 DBA 小组估计集结区数据
库或文件系统的增长情况,通常用兆字节表示,计算公式为 ((平均行
长度
* 初始行数) +(平均行长度 *预计月行数 * 6))/1,048,576  

三、数据结构

       元数据捕获

      数据谱系:所有数据仓库元数据库中最有趣的元数据可能就是数据谱系,
或者称为逻辑数据映射,阐述了数据元素从原始数据源到最终数据仓库

目标之间是如何转换的。
业务定义:数据集结区中创建的所有表都是从业务定义中衍生出来的。
业务定义可以从很多地方获得,包括数据建模工具、
ETL 工具、数据库
自身或者电子表格和
Word 文档。无论如何,需要使用在数据仓库展示
层上获取业务定义来维持其一致性。
技术定义:尤其对于数据集结区,技术定义要比业务定义更加的普遍。
要记住,如果没有文档记录,那么就意味着技术定义不存在!如果数据
集结区中表的技术定义没有详细的文档,那么这张表将可能被一次次的
重建,会在数据集结区中产生大量的数据重复,导致数据爆炸。技术定
义应该描述数据元素的所有物理属性,包括结构、格式和位置。对集结
区中所有表进行技术元数据文档化记录可以将不确定性降至最低,并提
高重用性。
过程元数据:数据集结区表的加载过程的统计必须和数据仓库表加载的
统计一起记录。尽管数据集结区加载过程的信息不需要展示给最终用户,
但是
ETL 小组需要知道每个表中加载了多少记录,每个过程成功或失败
的统计结果。而数据刷新频度方面的信息对
ETL 管理员和最终用户都是
有用的





### 数据仓库中的数据治理方法与最佳实践 数据仓库中的数据治理是一个贯穿数据生命周期的过程,旨在确保数据的准确性、一致性和可用性。以下是关于数据仓库中数据治理的方法和最佳实践的详细说明。 #### 1. 数据存储治理 在数据仓库中,数据存储治理是基础环节之一。明确数据的保留周期和存储策略至关重要。对于没有数据治理平台的小型企业,可以参考大企业的实践经验,制定适合自身需求的数据存储规则[^1]。例如,根据业务需求设定数据保留时间,并定期清理过期数据以节省存储空间。 #### 2. 元数据管理 元数据管理是数据治理的重要组成部分。通过构建元数据仓库,可以实现对数据资产的标准化描述和系统化管理[^2]。具体做法包括- 定义元数据对象,描述数据的结构、来源和用途。 - 构建指标体系,用于衡量数据质量和服务水平。 - 利用元数据驱动日常管理和决策,减少对经验的依赖。 #### 3. 数据处理流程优化 DataOps作为一种现代化的数据管理方法论,为数据仓库中的数据治理提供了新思路[^3]。其核心价值体现在以下几个方面: - **自动化**:通过自动化工具简化数据处理流程,降低人为错误的风险。 - **标准化**:建立统一的数据处理规范,确保数据的一致性和可靠性。 - **协作性**:促进跨团队合作,提高数据分析效率。 #### 4. 实时数据管道建设 随着业务对实时性的要求不断提高,实时数据仓库逐渐成为主流解决方案[^4]。通过设置实时数据管道,企业可以快速获取最新数据并作出响应。开源或托管解决方案(如FineDataLink)可以帮助企业构建可扩展的实时数据管道。 #### 5. 数据质量监控 数据质量是数据治理的核心目标之一。为了保证数据仓库中的数据质量,需要实施以下措施: - 定期监测关键指标的波动情况,及时发现异常[^5]。 - 建立数据验证机制,确保数据在加载、清洗和计算等环节不出错。 - 采用数据血缘分析技术,追踪数据的来源和变化历史。 #### 6. 数据安全与合规性 在数据治理过程中,数据安全和合规性同样不容忽视。企业应采取以下措施保护数据安全: - 对敏感数据进行加密存储和传输。 - 实施访问控制策略,限制未经授权的用户访问数据。 - 遵守相关法律法规,确保数据使用符合合规要求。 ```python # 示例代码:数据质量监控脚本 import pandas as pd def monitor_data_quality(dataframe): # 检查缺失值 missing_values = dataframe.isnull().sum() # 检查异常值 numeric_columns = dataframe.select_dtypes(include='number').columns outliers = {} for col in numeric_columns: q1 = dataframe[col].quantile(0.25) q3 = dataframe[col].quantile(0.75) iqr = q3 - q1 lower_bound = q1 - 1.5 * iqr upper_bound = q3 + 1.5 * iqr outliers[col] = len(dataframe[(dataframe[col] < lower_bound) | (dataframe[col] > upper_bound)]) return missing_values, outliers # 示例调用 df = pd.read_csv("example_data.csv") missing, outlier = monitor_data_quality(df) print("Missing Values:\n", missing) print("Outliers:\n", outlier) ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值