Redash 教程:数据仪表板平台

June 24, 2026 · View on GitHub

简介

Redash 是一个开源数据可视化和仪表板平台,可连接多种数据源,支持基于 SQL 的查询,并提供交互式仪表板,用于数据探索和团队共享。

系统要求

组件最低配置推荐配置
CPU2 核4 核
内存2 GB4 GB
磁盘20 GB100 GB
PostgreSQL9.613+
Redis3.06+
Docker20.10最新版

安装

Docker Compose

version: '3.8'
services:
  redash:
    image: redash/redash:latest
    ports:
      - "5000:5000"
    env_file:
      - .env
    depends_on:
      - postgres
      - redis
    restart: unless-stopped

  postgres:
    image: postgres:15
    volumes:
      - pg-data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: redash
      POSTGRES_USER: redash
      POSTGRES_PASSWORD: changeme
    restart: unless-stopped

  redis:
    image: redis:7
    restart: unless-stopped

  scheduler:
    image: redash/redash:latest
    command: scheduler
    env_file:
      - .env
    depends_on:
      - postgres
      - redis
    restart: unless-stopped

  worker:
    image: redash/redash:latest
    command: worker
    env_file:
      - .env
    depends_on:
      - postgres
      - redis
    restart: unless-stopped

volumes:
  pg-data:

环境变量

# .env
REDASH_DATABASE_URL=postgres://redash:changeme@postgres/redash
REDASH_REDIS_URL=redis://redis:6379/0
REDASH_SECRET_KEY=generate-a-random-secret-key
REDASH_COOKIE_SECRET=generate-another-random-key
REDASH_HOST=http://localhost:5000

初始化数据库

docker compose run --rm redash create_db
docker compose up -d

支持的数据源

数据库类型说明
PostgreSQLSQL完全支持
MySQLSQL完全支持
SQLiteSQL基于文件
Microsoft SQL ServerSQL完全支持
Amazon RedshiftSQL数据仓库
Google BigQuerySQL云分析
ClickHouseSQL列式数据库
MongoDBNoSQLJSON 查询
Elasticsearch搜索Query DSL
Prometheus时序PromQL
InfluxDB时序Flux 查询
Google Sheets电子表格基于 API
CSV文件直接上传
JSON APIREST基于 URL

添加数据源

  1. 导航到 Settings > Data Sources
  2. 点击 New Data Source
  3. 选择数据库类型
  4. 输入连接详情
  5. 测试连接
  6. 保存

查询编辑器

编辑器功能

功能说明
语法高亮SQL 语法着色
自动补全表和列建议
Schema 浏览器浏览数据库结构
查询参数动态用户输入
执行历史之前的查询运行
版本历史查询变更追踪

查询参数

参数类型语法用户输入
文本{{ param }}自由文本字段
数字{{ param }}数字输入
下拉菜单{{ param }}预定义选项
日期{{ param }}日期选择器
日期范围{{ start }} {{ end }}开始和结束日期
基于查询{{ param }}来自另一个查询的选项

参数化查询示例

SELECT
  date_trunc('{{ period }}', created_at) AS time_period,
  COUNT(*) AS order_count,
  SUM(total) AS revenue
FROM orders
WHERE
  created_at BETWEEN '{{ start_date }}' AND '{{ end_date }}'
  AND status IN ({{ status }})
GROUP BY time_period
ORDER BY time_period

可视化类型

图表类型最佳场景数据形态
表格详细数据探索任意
折线图随时间变化的趋势时序数据
柱状图分类比较分类 + 数值
饼图比例数据整体的部分
散点图寻找相关性两个数值列
面积图累积趋势时序数据
热力图密度模式两个维度 + 值
队列留存分析基于时间的分组
漏斗转化步骤顺序阶段
地图地理数据经纬度
计数器单指标显示单个值
透视表交叉表多维度

图表配置选项

设置说明
X 列水平轴数据列
Y 列垂直轴数据列
分组系列分组列
排序数据排序方向
限制最大显示行数
堆叠垂直堆叠系列值

仪表板

仪表板组件

组件说明
小部件单个查询可视化
文本框Markdown 格式的文本内容
参数仪表板级过滤控制
标签组织化的仪表板分区

仪表板布局设置

设置说明默认值
列数每行网格列数3
自动高度自动适应内容高度
刷新自动刷新间隔
参数共享过滤栏

创建仪表板

  1. 导航到 Create > Dashboard
  2. 添加名称和描述
  3. 点击 Add Widget
  4. 选择现有查询或创建新查询
  5. 选择可视化类型
  6. 定位和调整小部件大小
  7. 设置仪表板参数
  8. 保存

告警

告警配置

字段说明示例
查询数据源查询SELECT count(*) FROM errors
要监控的列count
操作符比较操作符greater than
阈值触发值100
频率检查间隔5 minutes

告警状态

状态条件操作
正常条件未满足不执行操作
待定条件已满足,等待持续时间监控中
触发条件已满足,告警活跃发送通知
未知查询未返回数据记录错误
错误查询执行错误记录错误

通知渠道

渠道需要的配置
邮件SMTP 设置
SlackWebhook URL
PagerDuty集成密钥
Webhook自定义 HTTP 端点
Microsoft TeamsWebhook URL

调度

调度选项说明
从不仅手动执行
每分钟持续更新
每 5 分钟近实时
每小时每小时刷新
每天每天刷新
自定义Cron 表达式

API

REST API 端点

端点方法用途
/api/queriesGET / POST列出或创建查询
/api/queries/{id}GET / PUT / DELETE管理特定查询
/api/dashboardsGET / POST列出或创建仪表板
/api/query_results/{id}GET获取查询结果
/api/data_sourcesGET / POST管理数据源
/api/usersGET / POST管理用户

API 认证

# 使用用户配置中的 API key
curl -H "Authorization: Key YOUR_API_KEY" \
  http://localhost:5000/api/queries

用户管理

用户角色

角色权限
管理员完全访问,管理所有设置
默认创建和编辑自己的查询和仪表板
查看者仅查看共享仪表板

权限级别

级别查询访问仪表板访问
私有仅所有者仅所有者
查看任何人可查看任何人可查看
编辑指定用户可编辑指定用户可编辑
公开公开链接访问公开链接访问

嵌入

嵌入选项

方法说明安全性
iframe在页面中嵌入仪表板 URL需要认证令牌
公开 URL分享公开仪表板链接任何有链接的人
API 小部件编程嵌入需要 API Key

iframe 示例

<iframe
  src="https://redash.example.com/public/dashboards/token"
  width="100%"
  height="600"
  frameborder="0">
</iframe>

安全

措施配置
HTTPS使用 SSL 证书的反向代理
认证SAML 或 LDAP SSO 集成
API Key按用户范围的 API 访问
速率限制基于代理的请求限制
查询超时最大执行时间设置
数据源权限按组的数据源访问

备份

组件方法频率
PostgreSQLpg_dump每日
配置.env 文件备份每周
查询包含在数据库备份中每日
仪表板包含在数据库备份中每日

备份脚本

#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/var/backups/redash"

pg_dump -h localhost -U redash redash | gzip > "$BACKUP_DIR/redash-$DATE.sql.gz"
find "$BACKUP_DIR" -mtime +30 -delete

性能建议

方面建议
查询为数据探索添加 LIMIT 子句
缓存启用查询结果缓存
索引确保存在适当的数据库索引
参数在 WHERE 子句中使用索引列
仪表板限制每个仪表板的小部件数量
刷新使用适当的刷新间隔

故障排除

问题原因解决方案
查询超时长时间运行的查询优化查询或增加超时时间
连接失败凭据错误验证数据源连接设置
仪表板缓慢小部件太多减少小部件数量或启用缓存
无数据返回查询返回空检查查询逻辑和过滤器
导入失败格式问题检查 JSON 导出格式兼容性

总结

Redash 提供了一个强大的数据可视化和仪表板平台。其对多种数据源的支持、参数化查询和交互式可视化,使其适合需要在组织内探索和分享数据洞察的团队。