资讯动态

零基础用 Redash 搭建数据看板:一个下午让你的仓库数据自动说话

发布时间:2026/8/14 17:00:44 来源:尧图企业网站定制
零基础用 Redash 搭建数据看板一个下午让你的仓库数据自动说话【免费下载链接】redashMake Your Company Data Driven. Connect to any data source, easily visualize, dashboard and share your data.项目地址: https://gitcode.com/GitHub_Trending/re/redash每周五下午四点半你大概率正在做同一件事打开 Git 提交记录一条条数这周谁提了多少代码、开了几个 Issue、哪些分支还卡着没合并然后把这些数字手工填进周报表格。数据一多眼睛就开始花想看看趋势Excel 透视图折腾半小时想让图表每周自动更新除了写脚本别无他法。Redash 就是来解决这个问题的。它是一个开源的数据可视化与分析平台——所谓数据可视化就是把数据库里的原始数字变成图表和仪表盘让趋势和异常一眼可见。Redash 的口号是Make Your Company Data Driven让公司用数据说话它最打动人的一点是你不用写一行展示代码也不用懂前端只要会写 SQL 或者会填一个 JSON 请求就能把散落在各种数据源里的信息拼成一块实时更新的监控大屏。这篇文章我们不按功能介绍的老套路走而是陪你完整走一遍一个真实任务把 Git 仓库的提交量、贡献者活跃度和 Issue 处理情况变成一个每 6 小时自动刷新的数据看板。做完这件事你就等于掌握了 Redash 90% 的日常用法。先看看终点你要做成的东西长什么样动手之前先给你看成品的样子这样每一步你都知道自己在往哪儿走顶部一排数字卡片本周总提交数、活跃贡献者数、未关闭 Issue 数扫一眼就知道项目健康度中间一张趋势线图过去 12 周的每周提交次数跌了涨了一目了然右侧一张水平条形图贡献者按提交次数排名谁在摸鱼谁在发力不用猜左下角一张饼图Issue 按标签bug / 功能 / 文档分布帮你看清工作量都花在哪。这些图表拼在一起就是一个仪表盘Dashboard。关键点是数据是自动刷新的图表是拖拽排布的你随时可以把它分享给同事或者嵌入到内部 Wiki 里。下面我们把这个成品拆开一步一步搭出来。整个 Redash 的架构我们可以粗略理解成三块拼图redash/ # 后端核心数据源连接、查询执行、任务调度 ├── query_runner/ # 数据源连接器每个数据源一个适配器 ├── handlers/ # 浏览器发来的 API 请求在这里被处理 ├── models/ # 数据模型数据源、查询、仪表盘都存在这里 └── tasks/ # 异步任务定时刷新、告警检查都在这里 client/ # 前端 React 应用你在浏览器里看到的界面 viz-lib/ # 可视化图表库12 种图表类型的实现二十分钟把 Redash 服务跑起来Redash 由三部分协作组成Web 服务负责界面和 API、调度器负责定时任务和后台 Worker负责真正执行查询它们共用一套 PostgreSQL 数据库和 Redis 缓存。好消息是官方把这一切打包进了 Docker Compose你不需要一个个装。如果你本地还没有 Docker请先安装 Docker 和 Docker ComposeDocker 官方文档有各平台的安装指引。然后打开终端第一步克隆仓库并进入目录git clone https://gitcode.com/GitHub_Trending/re/redash cd redash第二步复制环境变量模板并启动项目根目录下的compose.yaml定义好了 server、scheduler、worker、redis、postgres 五个服务。启动前需要准备一个.env文件里面至少要包含一个随机生成的密钥echo REDASH_COOKIE_SECRET$(openssl rand -base64 32) .env docker compose up -d首次启动会构建镜像需要几分钟耐心等待。第三步完成初始化浏览器访问http://localhost:5000你会看到初始化页面创建管理员账号、填写组织名称。完成后Redash 会自动创建一个默认组织你就正式登录进来了。 小提示compose.yaml是官方为开发环境准备的编排文件其中 server、scheduler、worker 三个服务的分工正好对应了 Redash 的异步任务架构——这也是它能在后台同时跑很多查询而不卡界面的原因。想深入了解这套任务系统可以从 redash/tasks/schedule.py 读起调度器每 30 秒就会检查一次哪些查询该刷新了。十分钟接上你的第一个数据源服务起来了界面还是空的。现在做第一件正事告诉 Redash 数据从哪儿来。在 Redash 里数据源Data Source是一个统称它可以是 MySQL、PostgreSQL、ClickHouse 这类数据库也可以是 Elasticsearch、MongoDB 这类 NoSQL甚至可以直接是一个 HTTP API。所有数据源的适配器都放在 redash/query_runner/ 目录下数一数超过 35 种——这就是 Redash 自称瑞士军刀的底气。以我们监控仓库动态的目标为例最合适的是JSON API数据源它允许你把一个返回 JSON 的 HTTP 接口变成数据库表。操作路径点击顶部数据源 → 新建数据源 → 选择JSON。新建之后会进入配置页需要填写名称Git 仓库 API随便起方便自己认就行基础 URL填你仓库 API 的根地址例如https://api.example-git.com请求头如果需要鉴权填入Authorization: token 你的访问令牌访问令牌在 Git 平台的个人设置里创建注意保管填完点测试连接看到绿色提示就说明通了保存。 这里有个实现细节值得知道JSON 数据源在 redash/query_runner/json_ds.py 中实现。它用 YAML 描述请求支持 method、url、params、headers并支持用path参数在返回的 JSON 里挖出你想要的字段——这让你不需要写任何解析代码就能把嵌套的 JSON 结构拉平成表格。看完这篇文章后建议你打开这个文件读一读它是理解Redash 如何把非 SQL 数据变成表格的最佳教材。三十分钟用查询把原始数据变成表格数据源接好了接下来是把数据捞出来。在 Redash 里查询Query就是一条取数指令对 SQL 数据源它就是一句 SQL对 JSON 数据源它就是一段描述请求的 YAML。我们建三个查询分别对应看板上的三类指标。查询一仓库概览给顶部数字卡片用新建查询数据源选刚才的 JSON 数据源在编辑框里填url: /repos/{owner}/{repo} method: GET执行后Redash 会把这个请求发出去并把返回的仓库信息star 数、fork 数、open_issues 数等自动整理成一张表。如果返回的 JSON 是嵌套结构可以在配置里加path参数指定路径只提取你需要的部分。查询二每周提交趋势给趋势线图用url: /repos/{owner}/{repo}/stats/commit_activity method: GET这个接口返回过去 12 周每周的提交次数数组正好适合画线图。查询三贡献者排名给水平条形图用url: /repos/{owner}/{repo}/contributors method: GET params: per_page: 100返回的数组里每个对象包含login用户名和contributions提交数两个字段画条形图刚刚好。每一条查询执行后你都可以在查询页下方直接预览结果表格——先确认数据长什么样再决定画什么图这是 Redash 工作流里非常顺手的一点。 想进阶的话Redash 还内置了一个Python数据源redash/query_runner/python.py。它用 RestrictedPython 做了安全沙箱让你能写一小段 Python 脚本做复杂的取数和清洗逻辑比如计算代码增删量、聚合多个接口的数据。但对新手来说先用 JSON 数据源把流程跑通是更稳的路径。十五分钟把表格变成图表数据在表格里躺着了下一步是可视化——也就是选图表类型、拖字段、出图。在查询结果页下方点新建可视化Redash 会列出它支持的全部图表类型。看一眼 viz-lib/src/visualizations/registeredVisualizations.ts 里的注册表你会发现远比想象的丰富折线图、柱状图、饼图、透视表、漏斗图、桑基图、旭日图、地图、词云、箱线图……一共 12 种以上。对我们这个任务只需要三种1. 数字卡片Counter给仓库概览查询建一个把stars_count、open_issues等字段分别做成卡片顶部一排数据就看全了。2. 折线图Chart给每周提交趋势查询建一个X 轴选周数Y 轴选提交数。图表类型支持折线、柱状、面积等在编辑面板里随时切换。3. 水平条形图Chart给贡献者排名查询建一个把login拖到 X 轴分类contributions拖到 Y 轴数值贡献度排名立刻直观。每种图表都有对应的可视化编辑器配置项颜色、坐标轴、标签、图例都做成了一侧的面板不用写任何代码。以图表类为例它的配置代码在 viz-lib/src/visualizations/chart/ 目录下想搞懂为什么这个下拉框能控制颜色的话可以进去看看。十分钟拖出一块仪表盘再让它自动刷新图表建好了最后把它们拼成一块大屏。第一步创建仪表盘点顶部仪表盘 → 新建起个名字比如仓库健康度看板。第二步拖拽布局进入仪表盘后点添加组件把刚才建好的几个可视化依次加进去然后用鼠标拖动调整大小和位置。就按文章开头描述的样子排顶部卡片、中间趋势线、右侧贡献者排名、左下角 Issue 分布。第三步设置自动刷新回到每个查询的编辑页找到计划Schedule设置选一个刷新频率比如每 6 小时。保存后调度器就会在后台替你定时重新执行这些查询。这里就是 Redash 的自动所在查询定时刷新仪表盘上的图表就跟着自动更新。背后的调度逻辑在 redash/tasks/schedule.py它维护一个周期性任务列表其中refresh_queries每 30 秒扫一遍所有设置了计划的查询把到点该刷的丢给后台 Worker 去执行。 顺带一提如果你不想把仪表盘分享给所有人Redash 支持按群组控制权限如果想让外部访客只看不改还可以生成一个只读的公开链接。这些权限逻辑集中在 redash/permissions.py等你看板做出来后再研究也来得及。再加一道保险数据异常时自动提醒你看板会自动更新了但你不可能 24 小时盯着它。这时候就轮到 Redash 的告警Alert功能出场给某个查询设定一个条件比如本周提交数小于 10当数据满足条件时Redash 就会通过邮件、Slack、钉钉、Webhook 等方式通知你。配置方法很简单第一步打开仓库概览或每周提交趋势查询点创建告警第二步选择触发条件例如对提交数这一列设置小于 10第三步选择通知方式配置接收人邮件地址或 Slack 频道。告警机制的核心逻辑在 redash/tasks/alerts.py每次查询刷新后系统会调用check_alerts_for_query把结果和告警条件比对状态发生变化比如从正常变成触发才会发通知避免反复打扰你——这个状态变了才通知的设计比单纯数值低于阈值就发要贴心得多你以后配置告警时能少收很多噪音邮件。至于能往哪儿发通知取决于你在目的地Destination里配置了什么。Redash 内置了 Slack、邮件、Webhook、钉钉、PagerDuty 等十几种通知渠道适配器都在 redash/destinations/ 目录下。从能用到好用三个值得记住的进阶点走到这一步你已经有了一块能自动刷新、能主动告警的仓库数据看板这已经覆盖了 Redash 日常使用的绝大部分。想再进一步下面三个方向性价比最高1. 参数化查询让看板能点出不同结果在查询里用{{ 参数名 }}语法声明变量比如since: {{date_range.start}}保存后看板顶部就会出现一个日期选择器。读者可以自己选时间段一张图当十张用。参数解析的核心实现在 redash/models/parameterized_query.py。2. 善用 REST API把看板接进自己的流程Redash 几乎所有界面操作都有对应的 REST API创建查询、触发刷新、导出结果都行。这意味着你可以在 CI 脚本里调用它实现代码合并后自动刷新看板这种自动化。API 层实现在 redash/handlers/ 目录。3. 定制你自己的图表类型如果你觉得内置图表不够用可以在 viz-lib/src/visualizations/ 下新建一个目录实现Renderer渲染和Editor配置面板两个组件然后在 registeredVisualizations.ts 里注册。这个过程需要一些 React 基础但这是 Redash 可扩展性最迷人的地方——图表库是真正开源可插拔的。接下来你该做这三件事看板搭完别急着关电脑。按这个清单收尾你的 Redash 之旅才算真正开始把仓库概览查询补上 Issue 相关字段让顶部卡片区再多两个指标未关闭 Issue、平均处理时长信息密度立刻上一个台阶给最重要的查询加告警阈值先放宽一点比如提交数小于 5体验一下通知流程再逐步收紧把看板分享给团队用一次周会让它真正进入日常工作流——工具只有被用起来才有价值。Redash 的官方文档覆盖了数据源接入、可视化配置、API 用法等方方面面遇到卡点先去翻一翻想理解底层机制就顺着本文提到的 redash/query_runner/、redash/tasks/、viz-lib/src/visualizations/ 这几个目录读源码。从一个仓库的看板起步你很快会发现原来让数据说话这件事真的不需要会写前端也不需要等报表组排期。【免费下载链接】redashMake Your Company Data Driven. Connect to any data source, easily visualize, dashboard and share your data.项目地址: https://gitcode.com/GitHub_Trending/re/redash创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价