跳转至

📈 数据治理

CodeQL Dependabot Semantic Release SQLFluff

📊 监控

日志级别

日志级别可通过 GitHub Actions 变量 LOGGER_LEVEL 配置(默认:INFO)。

级别 用途
CRITICAL 不可恢复的系统故障
ERROR 严重错误(连接、加载、无效值)
WARNING 非阻塞警报(无文件可加载、文件已引用)
INFO 进度信息(步骤开始/结束、加载的文件数和行数)
DEBUG 执行的 SQL 查询、元数据更新、OpenTelemetry 追踪

日志可在 GitHub Actions 中查看。工作流失败或取消时发送电子邮件警报。

摄取跟踪

FILE_LOADING_METADATA 表在整个管道中跟踪每个文件的状态。

状态 含义
SCRAPED 文件已检测,等待上传
STAGED 文件已上传至 Stage
SUCCESS 加载成功
FAILED_STAGE 上传至 Stage 失败
FAILED_LOAD 加载到表失败

✅ 数据质量

  • dbt 测试确保数据的完整性、一致性和有效性。
  • 通过系统的元数据验证进行重复项管理。

🧪 代码质量

  • 使用 Pytest 进行单元测试。
  • 使用 SQLFluff 进行 SQL 验证。
  • 使用文档字符串和文档测试进行函数文档记录。
  • 📚 技术文档

🔐 安全

  • 日志中的密钥加密。
  • 使用 GitHub Secrets
  • 在 Snowflake 中应用最小权限原则。
  • 使用 CodeQL 进行静态分析。
  • 通过 Dependabot 进行自动安全更新。

👥 访问权限与角色管理

数据仓库的访问基于最小权限原则:每个角色仅拥有完成其职能所必需的权限。

Snowflake 系统角色

由平台预定义,仅在基础设施初始化期间使用:

角色 用途
SYSADMIN 创建 warehouse、数据库和模式;授予权限
SECURITYADMIN 创建业务角色和用户账户
ACCOUNTADMIN 配置 Time Travel

业务角色

角色 用户 访问权限 使用场景
TRANSFORMER USER_DEV 所有模式 dbt ETL 管道和 Python 数据摄取
BI_ANALYST USER_BI_ANALYST 读取 SCHEMA_FINAL(表 + 视图) BI 报表
DATA_SCIENTIST USER_DATA_SCIENTIST 读取 SCHEMA_STAGING + SCHEMA_FINAL(仅表) 探索性分析
MART_CONSUMER USER_MART_CONSUMER 仅读取 SCHEMA_FINAL 视图 消费分析聚合

📋 服务水平指标(SLA)

Snowflake SLA(供应商)

两个月度可用性阈值同时适用:

阈值 条件 违约金
99.9% 中断 > 43 分钟或 > 1% 错误 10%(< 99.9%)→ 25%(< 99.0%)→ 50%(< 95.0%)
99.99% 短暂中断(4–43 分钟,> 10% 错误)累计 > 43 分钟 违反 99.9% 阈值

项目 SLA

指标 目标
月度管道执行时长 < 30 分钟
数据加载成功率 100%
dbt 测试通过率 100%
数据新鲜度 < 30 天
P1 事件解决时间 < 48 小时

💾 数据备份

Snowflake Time Travel(Standard 账户 1 天)允许恢复近期更改,但不是备份:不会创建独立副本。以下策略确保在独立副本上进行长期保留。

对象 频率 保留期
完整数据库 NYC_TAXI_DW 每月 180 天
YELLOW_TAXI_TRIPS_RAW 每月 730 天
FINAL 模式 每月 90 天
  • 730 天用于 RAW 表:如果 NYC TLC 网站不再保留历史记录,源数据将无法恢复。
  • 180 天用于完整数据库:中间时长,覆盖多个分析周期,同时避免过高的存储成本。
  • 90 天用于 FINAL 模式:可通过 dbt 从 RAW 重建。
  • 可通过变量 RAW_TABLE_BACKUP_POLICY_DAYSFULL_BACKUP_POLICY_DAYSFINAL_SCHEMA_BACKUP_POLICY_DAYS 配置保留期限。

🔒 GDPR 合规

个人数据处理

处理 数据 目的 法律依据 保留期
行程数据 无直接可识别数据* 统计分析 合法利益 按备份策略
位置信息 区域(LocationID)、时间戳 地理和时间分析 合法利益 按备份策略
文档分析 通过 Google Analytics 的导航数据 受众衡量 同意 2 个月

NYC TLC 数据不包含姓名、驾照号码或地址。位置以区域表示,而非精确的 GPS 坐标。

Cookies

文档使用 Google Analytics (GA4)(明确同意后启用,保留 2 个月)和 GitHub 小部件(功能性 Cookie,不收集个人数据)。可随时通过页面底部的 "Change cookie settings" 修改选择。