A place to hold mainly reading notes, and some technical stuff occasionally. 这里主要是一些读书笔记、感悟;还有部分技术相关的内容。
目录[-]
Metabase
是一个开源的商业智能(BI) 和数据分析工具,它的核心目标是让公司内部的所有人(不仅仅是数据分析师或工程师)能够轻松地访问、探索、可视化和共享来自数据库的数据,从而做出数据驱动的决策。它支持多种数据库,包括 MySQL
、 PostgreSQL
、 MongoDB
等,并且具有简单易用的界面,适合企业、团队甚至个人开发者使用;支持拖拽查询与原生SQL查询两种方式,借助低代码数据处理与拖拽式可视化降低了技术门槛,使业务人员也能自主分析。
Metabase
的技术栈相对独特且高效,核心围绕 Java
虚拟机 (JVM) 生态构建,并大量使用了 函数式编程语言 Clojure
,当前Github星标42.7K。
层面 | 核心技术 | 特点/优势 |
---|---|---|
后端 | Clojure (主) + Java | 函数式、高并发、JVM 生态强大、开发效率高 (Lisp 宏) |
Ring + Compojure | 轻量级、简洁的 Web 框架 | |
应用 DB: H2 (默认) / PG/MySQL (推荐) | 生产必用 PG/MySQL | |
缓存: Redis / Memcached | 提升性能必备 | |
查询引擎 (自研) | 支持多数据源、翻译查询、优化 | |
前端 | React + Redux | 主流、组件化、状态管理清晰 |
JavaScript/TypeScript | ||
D3.js + 自研图表组件 | 灵活可视化 + 开箱即用体验 | |
自研 UI 组件库 ( metabase/ui ) |
保证一致性和品牌风格 |
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| author_id | int(11) | YES | | 0 | |
| title | varchar(255) | NO | | NULL | |
| content | text | NO | | NULL | |
| yunlv_rule | text | YES | | NULL | |
| author | varchar(255) | NO | | NULL | |
| dynasty | char(1) | NO | | NULL | |
+------------+--------------+------+-----+---------+----------------+
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| intro | text | YES | | NULL | |
| dynasty | char(1) | NO | | NULL | |
+---------+--------------+------+-----+---------+----------------+
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| author_id | int(11) | YES | | 0 | |
| title | varchar(255) | NO | | NULL | |
| content | text | NO | | NULL | |
| author | varchar(255) | NO | | NULL | |
+-----------+--------------+------+-----+---------+----------------+
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| intro_l | text | YES | | NULL | |
| intro_s | text | YES | | NULL | |
+---------+--------------+------+-----+---------+----------------+
注意:dynasty字段存储的是缩写:S代表宋,T代表唐
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| title | varchar(255) | NO | | NULL | |
| chapter | varchar(255) | NO | | NULL | |
| section | varchar(255) | NO | | NULL | |
| content | text | NO | | NULL | |
+---------+--------------+------+-----+---------+----------------+
使用最简单的 Docker
容器化部署方式,快速拉起一个 Metabase
服务。
[root@bi docker]# docker run -d -p 3000:3000 --name metabase metabase/metabase
[root@bi docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2da1fe942273 metabase/metabase "/app/run_metabase.sh" 26 seconds ago Up 24 seconds 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp metabase
Note: Metabase
支持多种数据源,包括 MySQL
、 PostgreSQL
、 Oracle
、 SQL Server
、 SQLite
、 MongoDB
、 Presto
、 Snowflake
、 Databricks
、 Apache Spark
、 BigQuery
、 Clickhouse
等,也可直接连接 CSV
、 Excel
文件。
Note:支持选择字段、过滤、聚合、排序、函数等;可以将问题转换为 SQL
查询。
Note:支持写原生 SQL
,自由发挥吧~
Note:
Note:可以下载每个图表数据为 .csv
, .xlsx
, .json
, .png
格式,可以下载整张看板为 pdf
。
Metabase
因其设计理念和功能特性而广受欢迎,其核心优势包括:
Metabase
最大的优势在于它极大地简化了非技术用户访问和分析数据的过程,通过开源免费降低了门槛,并快速实现自助服务 BI
。它非常适合需要快速搭建 BI
平台、希望让业务用户直接参与数据分析、并且对高级企业级功能(如极其复杂的语义层、极其精细的权限控制、海量数据性能优化等)要求不是顶级的团队和组织。
如果你需要一个让公司里更多人能方便、快捷地查看和理解数据的工具, Metabase
是一个非常值得考虑的优秀选择。它的核心价值在于普及数据访问和提升数据驱动的决策速度。
If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!