自动化与发布
周报/数据卡片定时推送
自动化分析架构
手动跑 SQL 截图发周报已经是过去式。2025 年的自动化流是:Data Warehouse -> dbt/SQL -> Python Script (Github Actions) -> Slack/Feishu Bot。
自动化分析流程架构
工具链选择
| 场景 | 推荐工具 | 难度 | 成本 |
|---|---|---|---|
| 简单定时任务 | Github Actions / Gitlab CI | 低 | 免费 |
| 工作流编排 | Airflow / Prefect | 高 | 服务器成本 |
| 低代码自动化 | Zapier / Make / n8n | 低 | 按量付费 |
实战:用 Github Actions 每天早上 9 点推送日报
.github/workflows/daily-report.yml
name: Daily Business Report
on:
schedule:
- cron: '0 1 * * *' # UTC 1:00 = CN 9:00
jobs:
report:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.12'
- name: Install dependencies
run: pip install pandas duckdb requests
- name: Run Analysis
env:
DB_URL: ${{ secrets.DB_URL }}
FEISHU_WEBHOOK: ${{ secrets.FEISHU_WEBHOOK }}
run: python scripts/daily_analysis.pyAI 在自动化中的角色
💡 Tips
异常检测: 在脚本中嵌入简单的逻辑,如果 KPI 波动超过阈值,调用 GPT-4o API 生成一段简短的“波动原因初探”并附在日报中。
动态配图: 让 AI 根据今日数据的情感(涨/跌),选择不同的 Emoji 或配图风格。
监控与告警
- 阈值告警: 指标波动 > 20% 触发提醒。
- 数据延迟: 当日数据未在规定时间到达,立即通知。
- 任务失败: 任何一步失败必须告警并带上日志链接。
简单异常检测伪代码
def detect_anomaly(today, avg, threshold=0.2):
if avg == 0:
return False
return abs(today - avg) / avg > threshold
if detect_anomaly(today_sales, last_7d_avg):
send_alert("Sales spike detected")