name: data-warehouse-ops description: "資料倉儲(大數據/數倉)全生命週期運維技能。覆蓋單一事實來源定義、ETL/ELT管道構建、維度建模(星型模型/雪花模型/Data Vault)、資料質量檢查、分割槽策略、成本/效能調優、資料治理、血緣追蹤、SLA監控9大模組。支援主流雲數倉(BigQuery/Snowflake/Redshift/Databricks/StarRocks/ClickHouse)和開源工具鏈(dbt/Airflow/Great Expectations/OpenLineage/DataHub)。觸發詞:資料倉儲、數倉、DW、ETL、ELT、維度建模、星型模型、資料質量、分割槽策略、數倉調優、資料治理、血緣追蹤、SLA監控、數倉運維、資料管道、data warehouse、dimensional modeling、data quality、data lineage。" agent_created: true
資料倉儲全生命週期運維助手,覆蓋從架構設計到日常監控的完整工作流。
本技能包含 9 大工作模組和配套的指令碼/參考/資產資源:
| 模組 | 關鍵詞 | 指令碼 | 參考文件 |
|---|---|---|---|
| 1. 單一事實來源 | SSOT, 資料標準 | — | governance_framework.md |
| 2. ETL/ELT 管道 | pipeline, dbt, Airflow | etl_pipeline_builder.py | sql_templates.md |
| 3. 維度建模 | star schema, Kimball | dim_model_generator.py | dimensional_modeling.md |
| 4. 資料質量 | DQ, Great Expectations | data_quality_checker.py | data_quality_rules.md |
| 5. 分割槽策略 | partition, clustering | partition_advisor.py | partition_strategies.md |
| 6. 成本/效能調優 | cost, performance | cost_optimizer.py | partition_strategies.md |
| 7. 資料治理 | governance, catalog | — | governance_framework.md |
| 8. 血緣追蹤 | lineage, OpenLineage | lineage_parser.py | — |
| 9. SLA 監控 | SLA, freshness, uptime | sla_monitor.py | sla_templates.md |
當用戶提出數倉相關需求時,按以下流程執行:
單一事實來源 (SSOT) 定義:
- 識別業務域的核心實體(客戶/產品/訂單/供應商等)
- 為每個實體定義權威資料來源和 golden record 標準
- 輸出 SSOT 矩陣:實體 → 源系統 → 主鍵 → 更新頻率 → 資料Owner
- 載入 references/governance_framework.md 獲取 SSOT 設計模板
維度建模:
- 使用 scripts/dim_model_generator.py 生成 DDL
- 支援星型模型(預設)、雪花模型、Data Vault 2.0
- 自動生成:事實表 + 維度表 + 代理鍵 + SCD Type 1/2/3 策略
- 指定引數:--schema star|snowflake|vault --scd-type 2 --platform bigquery
- 載入 references/dimensional_modeling.md 瞭解建模最佳實踐
ETL/ELT 管道設計:
- 使用 scripts/etl_pipeline_builder.py 生成管道模板
- 支援 dbt/Airflow/自定義 SQL 三種輸出格式
- 包含增量載入、CDC、錯誤處理、重試邏輯
- 載入 references/sql_templates.md 獲取標準 SQL 模式
資料質量檢查:
- 使用 scripts/data_quality_checker.py 生成檢查規則
- 覆蓋 6 大質量維度:完整性、唯一性、有效性、一致性、及時性、準確性
- 輸出 Great Expectations suite YAML 或純 SQL 檢查指令碼
- 載入 references/data_quality_rules.md 獲取預製規則模板
資料治理:
- 載入 references/governance_framework.md
- 定義資料域、資料Owner、資料管家角色
- 建立資料分類分級策略(公開/內部/機密/絕密)
- 制定資料保留和歸檔策略
分割槽策略設計:
- 使用 scripts/partition_advisor.py 分析表結構並推薦分割槽方案
- 輸入:表 DDL + 查詢模式描述
- 輸出:平臺特定的 PARTITION BY / CLUSTER BY 語句
- 載入 references/partition_strategies.md 瞭解各平臺差異
成本/效能調優:
- 使用 scripts/cost_optimizer.py 分析查詢成本
- 識別:全表掃描、笛卡爾積、資料傾斜、低效 JOIN
- 輸出:最佳化建議(物化檢視、聚簇鍵調整、謂詞下推)
- 生成互動式 HTML 成本分析報告 (assets/cost_report.html)
血緣追蹤:
- 使用 scripts/lineage_parser.py 解析 SQL 提取列級血緣
- 支援:INSERT...SELECT、CREATE TABLE AS、VIEW、MERGE
- 輸出:DOT 格式圖 + 互動式 HTML 視覺化 (assets/lineage_visualizer.html)
SLA 監控:
- 使用 scripts/sla_monitor.py 生成監控儀表板
- 監控指標:資料新鮮度、管道執行時長、失敗率、資料量波動
- 輸出:HTML 儀表板 (assets/sla_dashboard.html)
- 載入 references/sla_templates.md 瞭解 SLA 定義標準
所有指令碼位於 scripts/ 目錄,用 Python 3.9+ 執行。
python scripts/dim_model_generator.py \
--business-domain "電商訂單" \
--facts "orders:訂單事實,order_items:訂單明細" \
--dimensions "customer:客戶,dim_product:產品,dim_date:日期,dim_store:門店" \
--schema star \
--scd-type 2 \
--platform snowflake \
--output ddl/
引數說明:
- --business-domain: 業務域名稱
- --facts: 事實表定義,格式 表名:描述
- --dimensions: 維度表定義,格式 表名:描述
- --schema: 建模範式 star(預設) | snowflake | vault
- --scd-type: 緩慢變化維度策略 1 | 2 | 3 | hybrid
- --platform: 目標平臺 bigquery | snowflake | redshift | starrocks | clickhouse | databricks | postgres
- --output: 輸出目錄
python scripts/data_quality_checker.py \
--table dwh.fact_orders \
--platform bigquery \
--checks "completeness,uniqueness,validity,freshness" \
--format great_expectations \
--threshold-file dq_thresholds.yaml \
--output dq_checks/
引數說明:
- --table: 目標表(支援 schema.table 格式)
- --platform: 目標平臺
- --checks: 檢查型別,逗號分隔。支援:completeness, uniqueness, validity, consistency, timeliness, accuracy, freshness, volume, custom
- --format: 輸出格式 great_expectations | sql | dbt_test | soda
- --threshold-file: 閾值配置檔案(可選)
- --output: 輸出目錄
python scripts/partition_advisor.py \
--ddl-file ddl/fact_orders.sql \
--query-patterns "daily_report,monthly_trend,user_lookup" \
--platform bigquery \
--data-volume "10TB,500M rows" \
--output recommendations/
引數說明:
- --ddl-file: 表 DDL 檔案路徑
- --query-patterns: 查詢模式描述
- --platform: 目標平臺
- --data-volume: 資料量級
- --output: 輸出目錄
python scripts/cost_optimizer.py \
--query-log queries.json \
--platform bigquery \
--billing-data billing.csv \
--output optimization_report/
引數說明:
- --query-log: 查詢日誌(JSON 格式,含 query_text, bytes_processed, duration)
- --platform: 目標平臺
- --billing-data: 賬單資料(可選)
- --output: 輸出目錄
python scripts/lineage_parser.py \
--sql-dir sql/ \
--output lineage/
引數說明:
- --sql-dir: 包含 SQL 檔案的目錄
- --sql-file: 單個 SQL 檔案(與 --sql-dir 二選一)
- --output: 輸出目錄
- --level: 血緣級別 table(預設) | column
python scripts/sla_monitor.py \
--config sla_config.yaml \
--pipeline-runs runs.csv \
--output dashboard/
引數說明:
- --config: SLA 配置檔案
- --pipeline-runs: 管道執行歷史資料
- --output: 輸出目錄
python scripts/etl_pipeline_builder.py \
--source-type mysql \
--target-platform snowflake \
--mode incremental \
--cdc-method timestamp \
--orchestrator airflow \
--output pipelines/
需要深入某個主題時載入對應檔案:
| 檔案 | 內容 | 使用場景 |
|---|---|---|
references/dimensional_modeling.md |
Kimball 四步法、SCD策略、事實表型別、維度設計模式 | 設計維度模型時 |
references/data_quality_rules.md |
6維度質量規則庫、Great Expectations模板、異常檢測規則 | 定義資料質量檢查時 |
references/sql_templates.md |
ETL模式SQL、視窗函式、MERGE/UPSERT、增量載入模板 | 編寫ETL邏輯時 |
references/partition_strategies.md |
各平臺分割槽對比、聚簇策略、分割槽裁剪最佳實踐 | 設計分割槽方案時 |
references/governance_framework.md |
SSOT定義模板、資料域劃分、角色職責、分類分級標準 | 制定治理策略時 |
references/sla_templates.md |
SLA指標定義、新鮮度等級、告警規則模板 | 建立SLA體系時 |
所有視覺化輸出預設生成互動式 HTML 報告(使用 Chart.js + 響應式佈局),包含以下特徵: - 自動適配明暗主題 - 圖表可互動(縮放/篩選/匯出) - 優先使用中文標籤(中國使用者預設) - 報告嵌入關鍵指標摘要卡片
根據目標平臺自動調整 SQL 方言:
| 特性 | BigQuery | Snowflake | Redshift | StarRocks | ClickHouse |
|---|---|---|---|---|---|
| 分割槽語法 | PARTITION BY DATE(timestamp) |
自動微分割槽 | DISTKEY+SORTKEY |
PARTITION BY RANGE(dt) |
PARTITION BY toYYYYMM(dt) |
| 增量合併 | MERGE |
MERGE |
MERGE(2023+) |
INSERT OVERWRITE |
ALTER TABLE...UPDATE |
| 物化檢視 | ✅ | ✅ | ✅(2023+) | ✅ 非同步 | ✅ |
| 半結構化 | JSON 型別 |
VARIANT |
SUPER |
JSON 型別 |
JSON 型別 |
| UDF | SQL/JS | SQL/JS/Python/Java | SQL/Python | Java UDF | SQL |
| 成本模型 | 按掃描位元組 | 按 credit | 按節點小時 | 開源免費 | 開源免費 |
中文觸發詞:資料倉儲、數倉、DW、ETL、ELT、維度建模、星型模型、雪花模型、資料質量、分割槽策略、數倉調優、資料治理、血緣追蹤、血緣分析、SLA監控、數倉運維、資料管道、資料新鮮度、物化檢視、緩慢變化維度、SCD、代理鍵、一致性維度、資料目錄、資料管家、golden record、事實表、維度表、資料湖、湖倉一體
小蔥技能站7w4.net,專業的AI技能分享平臺。
英文觸發詞:data warehouse, dimensional modeling, star schema, snowflake schema, data vault, ETL pipeline, ELT pipeline, data quality, DQ checks, partition strategy, data lineage, column lineage, SLA monitoring, data freshness, data governance, data catalog, surrogate key, slowly changing dimension, fact table, dimension table, data mart, data lakehouse
當用戶訊息包含以上任一關鍵詞且涉及設計/構建/最佳化/檢查/監控操作時,啟用本技能。
這個技能功能覆蓋範圍廣,從資料建模到監控告警都包含了,文件和參考資料也比較豐富。程式碼結構清晰,容易上手,多個平臺都支援。不足之處是一些細節功能還不夠完善,比如錯誤處理和自動化程度有提升空間,整體質量中上水平,適合需要搭建數倉運維能力但又不希望從零開始的團隊使用。