Metabase数据自动化 data-metabase

这个技能用于通过REST API自动化Metabase平台,实现认证、导出和更新问题(卡片)与仪表板、标准化可视化设置,并运行或导出结果,适用于数据工程和商业智能场景,关键词包括Metabase、API自动化、数据可视化、商业智能、BI报表。

BI报表 0 次安装 0 次浏览 更新于 3/7/2026

name: data-metabase description: “Metabase REST API 自动化和故障排除:认证(优先使用API密钥,会话回退)、导出/更新问题(卡片)和仪表板、标准化visualization_settings、以及运行/导出结果。”

Metabase

通过API自动化Metabase:报告(卡片)、仪表板和图表设置。

快速开始

输入(环境变量)

  • METABASE_URL(例如,https://metabase.example.com
  • 优先:METABASE_API_KEY
  • 回退:METABASE_USERNAME + METABASE_PASSWORD

完整性检查

python3 frameworks/shared-skills/skills/data-metabase/scripts/metabase_api.py health
python3 frameworks/shared-skills/skills/data-metabase/scripts/metabase_api.py whoami

实时API文档

您的Metabase实例在/api/docs提供OpenAPI文档(例如,https://metabase.example.com/api/docs)。使用此来发现版本特定的端点和请求形状。

工作流程

  1. 确认API可用性(GET /api/util/health)。
  2. 使用API密钥(优先)或短期会话(回退)进行认证。
  3. 发现ID(优先发现而非跨环境硬编码):
    • collection_id 用于保存位置
    • database id 用于 dataset_query
    • source-table / 字段 ids 如果使用MBQL
  4. 创建/更新卡片:
    • 优先使用原生SQL以实现稳定自动化。
    • 明确设置 display + visualization_settings
  5. 创建/更新仪表板并以一致布局添加卡片。
  6. 通过运行/导出结果进行验证。

关键概念

  • 用户界面“问题” == API card
  • 图表配置作为 display + visualization_settings 存在于卡片上
  • 大多数可视化键最容易通过复制现有卡片JSON然后编辑来管理

护栏

  • 对于批量、跨环境迁移,优先使用Metabase“序列化”(专业/企业版);使用直接API进行增量更新。
  • 当您可以发现它们或使用序列化/实体ID时,不要跨环境硬编码数字ID。
  • 永远不要提交 METABASE_API_KEY、密码或会话令牌。
  • 优先使用专用的、最小权限的自动化账户和集合。

参考(仅需时阅读)

主题 文件
认证(API密钥 + 回退) references/api-auth.md
报告(卡片):创建/编辑模式 references/reports-cards.md
仪表板和卡片放置 references/dashboards.md
图表和 visualization_settings references/charts-settings.md

脚本

scripts/metabase_api.py 是一个小型、无依赖的助手,用于测试认证和更新卡片。

示例:

# 打印认证用户(尝试API密钥,然后会话)
python3 frameworks/shared-skills/skills/data-metabase/scripts/metabase_api.py whoami

# 导出现有卡片JSON(用作visualization_settings的模板)
python3 frameworks/shared-skills/skills/data-metabase/scripts/metabase_api.py export-card --id 123 --out card.json

# 导出现有仪表板JSON(用作布局的模板)
python3 frameworks/shared-skills/skills/data-metabase/scripts/metabase_api.py export-dashboard --id 5 --out dashboard.json

# 从JSON规范创建/更新卡片(见references/reports-cards.md)
python3 frameworks/shared-skills/skills/data-metabase/scripts/metabase_api.py upsert-card --spec card-spec.json

# 从JSON规范创建/更新仪表板(仅基本字段)
python3 frameworks/shared-skills/skills/data-metabase/scripts/metabase_api.py upsert-dashboard --spec dashboard-spec.json