第11章 数据治理¶
📚 章节概述¶
本章将深入讲解数据治理,包括数据目录、数据标准、合规等。通过本章学习,你将能够实施数据治理体系。
🎯 学习目标¶
完成本章后,你将能够:
- 理解数据治理的核心概念
- 掌握数据目录的使用
- 了解数据标准的制定
- 掌握合规管理
- 能够实施数据治理体系
11.1 数据治理概述¶
11.1.1 什么是数据治理¶
数据治理是对数据资产进行规划、监督和控制的实践。
数据治理目标¶
- 数据质量
- 确保数据准确性
- 保证数据完整性
-
维护数据一致性
-
数据安全
- 保护数据隐私
- 控制数据访问
-
满足合规要求
-
数据可用
- 提高数据可发现性
- 简化数据访问
-
优化数据使用
-
数据合规
- 满足法规要求
- 通过合规审计
- 降低合规风险
11.1.2 数据治理框架¶
Text Only
┌─────────────────────────────────────────────────────┐
│ 数据治理框架 │
├─────────────────────────────────────────────────────┤
│ 数据策略 │
│ ├─ 数据标准 │
│ ├─ 数据质量 │
│ ├─ 数据安全 │
│ └─ 数据合规 │
├─────────────────────────────────────────────────────┤
│ 数据架构 │
│ ├─ 数据模型 │
│ ├─ 数据流程 │
│ ├─ 数据存储 │
│ └─ 数据集成 │
├─────────────────────────────────────────────────────┤
│ 数据流程 │
│ ├─ 数据收集 │
│ ├─ 数据处理 │
│ ├─ 数据分发 │
│ └─ 数据归档 │
├─────────────────────────────────────────────────────┤
│ 数据组织 │
│ ├─ 数据目录 │
│ ├─ 数据所有者 │
│ ├─ 数据管家 │
│ └─ 数据委员会 │
└─────────────────────────────────────────────────────┘
11.2 数据目录¶
11.2.1 数据目录概述¶
数据目录是组织、搜索和管理数据资产的中央存储库。
核心功能¶
- 数据发现
- 搜索数据资产
- 浏览数据目录
-
理解数据关系
-
数据文档
- 数据描述
- 业务定义
-
技术文档
-
数据访问
- 请求访问
- 审批流程
- 访问控制
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 数据标准概述¶
数据标准是关于数据格式、定义和使用的规则。
数据标准类型¶
- 命名规范
- 表名规范
- 列名规范
-
变量名规范
-
数据类型标准
- 数值类型定义
- 日期格式标准
-
字符编码标准
-
数据质量标准
- 完整性要求
- 准确性要求
- 一致性要求
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 合规概述¶
合规管理是确保数据处理符合法律法规和内部政策的过程。
合规要求¶
- 数据隐私
- GDPR(欧盟)
- CCPA(加州)
-
PIPL(中国)
-
数据安全
- 等保2.0(中国)
- ISO 27001
-
SOC 2
-
行业规范
- 金融行业
- 医疗行业
- 政府行业
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 练习题¶
基础题¶
- 选择题
-
数据治理的核心目标不包括什么?
- A. 数据质量
- B. 数据安全
- C. 数据增加
- D. 数据合规
-
简答题
- 解释数据治理的框架。
- 说明数据目录的核心功能。
进阶题¶
- 实践题
- 使用Data Catalog创建数据目录。
- 实施数据命名规范。
-
检查数据合规性。
-
设计题
- 设计一个数据治理体系。
- 设计一个数据标准体系。
答案¶
1. 选择题答案¶
- C(数据治理的核心目标不包括数据增加)
2. 简答题答案¶
数据治理的框架: - 数据策略、数据架构、数据流程、数据组织
数据目录的核心功能: - 数据发现、数据文档、数据访问
3. 实践题答案¶
参见11.2-11.4节的示例。
4. 设计题答案¶
参见11.1-11.4节的体系设计。
11.6 面试准备¶
大厂面试题¶
字节跳动¶
- 解释数据治理的核心概念。
- 如何设计数据治理体系?
- 如何制定数据标准?
- 如何管理数据合规?
腾讯¶
- 数据目录的核心功能是什么?
- 如何设计数据访问控制?
- 如何处理数据隐私问题?
- 如何设计数据审计?
阿里云¶
- 数据治理的最佳实践是什么?
- 如何设计数据治理组织?
- 如何处理数据治理的冲突?
- 如何设计数据治理的监控?
📚 参考资料¶
- Apache Atlas文档:https://atlas.apache.org/
- DataHub文档:https://datahubproject.io/docs/
- 《Data Governance》
- 《Data Catalog》
🎯 本章小结¶
本章深入讲解了数据治理,包括:
- 数据治理的核心概念
- 数据目录的使用
- 数据标准的制定
- 合规管理
通过本章学习,你掌握了数据治理的核心技术,能够实施数据治理体系。下一章将深入学习数据管道。