跳转至

第11章 数据治理

数据治理

📚 章节概述

本章将深入讲解数据治理,包括数据目录、数据标准、合规等。通过本章学习,你将能够实施数据治理体系。

🎯 学习目标

完成本章后,你将能够:

  1. 理解数据治理的核心概念
  2. 掌握数据目录的使用
  3. 了解数据标准的制定
  4. 掌握合规管理
  5. 能够实施数据治理体系

11.1 数据治理概述

11.1.1 什么是数据治理

数据治理是对数据资产进行规划、监督和控制的实践。

数据治理目标

  1. 数据质量
  2. 确保数据准确性
  3. 保证数据完整性
  4. 维护数据一致性

  5. 数据安全

  6. 保护数据隐私
  7. 控制数据访问
  8. 满足合规要求

  9. 数据可用

  10. 提高数据可发现性
  11. 简化数据访问
  12. 优化数据使用

  13. 数据合规

  14. 满足法规要求
  15. 通过合规审计
  16. 降低合规风险

11.1.2 数据治理框架

Text Only
┌─────────────────────────────────────────────────────┐
│                   数据治理框架                        │
├─────────────────────────────────────────────────────┤
│  数据策略                                          │
│  ├─ 数据标准                                        │
│  ├─ 数据质量                                        │
│  ├─ 数据安全                                        │
│  └─ 数据合规                                        │
├─────────────────────────────────────────────────────┤
│  数据架构                                          │
│  ├─ 数据模型                                        │
│  ├─ 数据流程                                        │
│  ├─ 数据存储                                        │
│  └─ 数据集成                                        │
├─────────────────────────────────────────────────────┤
│  数据流程                                          │
│  ├─ 数据收集                                        │
│  ├─ 数据处理                                        │
│  ├─ 数据分发                                        │
│  └─ 数据归档                                        │
├─────────────────────────────────────────────────────┤
│  数据组织                                          │
│  ├─ 数据目录                                        │
│  ├─ 数据所有者                                      │
│  ├─ 数据管家                                        │
│  └─ 数据委员会                                      │
└─────────────────────────────────────────────────────┘

11.2 数据目录

11.2.1 数据目录概述

数据目录是组织、搜索和管理数据资产的中央存储库。

核心功能

  1. 数据发现
  2. 搜索数据资产
  3. 浏览数据目录
  4. 理解数据关系

  5. 数据文档

  6. 数据描述
  7. 业务定义
  8. 技术文档

  9. 数据访问

  10. 请求访问
  11. 审批流程
  12. 访问控制

11.2.2 数据目录实现

Python
# 数据目录实现示例(以 DataHub 为后端)
from datahub.emitter.rest_emitter import DatahubRestEmitter
from datahub.emitter.mcp import MetadataChangeProposalWrapper
from datahub.metadata.schema_classes import (
    DatasetPropertiesClass,
    OwnershipClass,
    OwnerClass,
    OwnershipTypeClass,
)

emitter = DatahubRestEmitter(gms_server="http://localhost:8080")

# 注册数据资产:定义表的属性
dataset_urn = "urn:li:dataset:(urn:li:dataPlatform:hive,sales_db.sales,PROD)"

# 发送数据集属性
emitter.emit(MetadataChangeProposalWrapper(
    entityUrn=dataset_urn,
    aspect=DatasetPropertiesClass(
        name="sales",
        description="Daily sales data",
        customProperties={
            "team": "data_engineering",
            "update_frequency": "daily"
        }
    )
))

# 设置数据所有者
emitter.emit(MetadataChangeProposalWrapper(
    entityUrn=dataset_urn,
    aspect=OwnershipClass(
        owners=[
            OwnerClass(
                owner="urn:li:corpuser:data_team",
                type=OwnershipTypeClass.DATAOWNER
            )
        ]
    )
))

print(f"Dataset registered: {dataset_urn}")

11.3 数据标准

11.3.1 数据标准概述

数据标准是关于数据格式、定义和使用的规则。

数据标准类型

  1. 命名规范
  2. 表名规范
  3. 列名规范
  4. 变量名规范

  5. 数据类型标准

  6. 数值类型定义
  7. 日期格式标准
  8. 字符编码标准

  9. 数据质量标准

  10. 完整性要求
  11. 准确性要求
  12. 一致性要求

11.3.2 数据标准实现

Python
class DataStandards:
    """数据标准类"""

    def __init__(self):
        self.standards = {}

    def define_naming_convention(self, convention_type):
        """定义命名规范"""
        if convention_type == 'table':
            self.standards['table'] = {
                'prefix': 'dwd_',
                'separator': '_',
                'case': 'lower',
                'max_length': 50
            }
        elif convention_type == 'column':
            self.standards['column'] = {
                'snake_case': True,
                'no_abbreviations': True,
                'max_length': 30
            }

    def validate_name(self, name, convention_type):
        """验证命名"""
        standards = self.standards.get(convention_type)

        if not standards:
            return True

        # 检查长度
        if len(name) > standards['max_length']:
            return False

        # 检查大小写
        if standards.get('case') == 'lower':
            if name != name.lower():
                return False

        return True

    def validate_data_type(self, value, expected_type):
        """验证数据类型"""
        if expected_type == 'integer':
            try:  # try/except捕获异常
                int(value)
                return True
            except:
                return False
        elif expected_type == 'float':
            try:
                float(value)
                return True
            except:
                return False
        elif expected_type == 'date':
            try:
                pd.to_datetime(value)
                return True
            except:
                return False

        return True

11.4 合规管理

11.4.1 合规概述

合规管理是确保数据处理符合法律法规和内部政策的过程。

合规要求

  1. 数据隐私
  2. GDPR(欧盟)
  3. CCPA(加州)
  4. PIPL(中国)

  5. 数据安全

  6. 等保2.0(中国)
  7. ISO 27001
  8. SOC 2

  9. 行业规范

  10. 金融行业
  11. 医疗行业
  12. 政府行业

11.4.2 合规实现

Python
class ComplianceManager:
    """合规管理类"""

    def __init__(self):
        self.regulations = {}

    def define_regulation(self, regulation_name, requirements):
        """定义合规要求"""
        self.regulations[regulation_name] = {
            'requirements': requirements,
            'status': 'active'
        }

    def check_compliance(self, data, regulation_name):
        """检查合规性"""
        regulation = self.regulations.get(regulation_name)

        if not regulation:
            return {'compliant': True, 'issues': []}

        issues = []

        for requirement in regulation['requirements']:
            if not self._check_requirement(data, requirement):
                issues.append(requirement)

        return {
            'compliant': len(issues) == 0,
            'issues': issues
        }

    def _check_requirement(self, data, requirement):
        """检查单个要求"""
        if requirement['type'] == 'privacy':
            # 检查是否包含敏感信息
            sensitive_fields = ['phone', 'email', 'id_card']
            for field in sensitive_fields:
                if field in data and data[field]:
                    return False
            return True
        elif requirement['type'] == 'security':
            # 检查是否加密
            if 'password' in data:
                return not data['password'].startswith('***')
            return True
        elif requirement['type'] == 'access':
            # 检查访问控制
            if 'access_level' in data:
                return data['access_level'] in ['read', 'write']
            return True

        return True

11.5 练习题

基础题

  1. 选择题
  2. 数据治理的核心目标不包括什么?

    • A. 数据质量
    • B. 数据安全
    • C. 数据增加
    • D. 数据合规
  3. 简答题

  4. 解释数据治理的框架。
  5. 说明数据目录的核心功能。

进阶题

  1. 实践题
  2. 使用Data Catalog创建数据目录。
  3. 实施数据命名规范。
  4. 检查数据合规性。

  5. 设计题

  6. 设计一个数据治理体系。
  7. 设计一个数据标准体系。

答案

1. 选择题答案

  1. C(数据治理的核心目标不包括数据增加)

2. 简答题答案

数据治理的框架: - 数据策略、数据架构、数据流程、数据组织

数据目录的核心功能: - 数据发现、数据文档、数据访问

3. 实践题答案

参见11.2-11.4节的示例。

4. 设计题答案

参见11.1-11.4节的体系设计。

11.6 面试准备

大厂面试题

字节跳动

  1. 解释数据治理的核心概念。
  2. 如何设计数据治理体系?
  3. 如何制定数据标准?
  4. 如何管理数据合规?

腾讯

  1. 数据目录的核心功能是什么?
  2. 如何设计数据访问控制?
  3. 如何处理数据隐私问题?
  4. 如何设计数据审计?

阿里云

  1. 数据治理的最佳实践是什么?
  2. 如何设计数据治理组织?
  3. 如何处理数据治理的冲突?
  4. 如何设计数据治理的监控?

📚 参考资料

🎯 本章小结

本章深入讲解了数据治理,包括:

  1. 数据治理的核心概念
  2. 数据目录的使用
  3. 数据标准的制定
  4. 合规管理

通过本章学习,你掌握了数据治理的核心技术,能够实施数据治理体系。下一章将深入学习数据管道。