概述
ELT和ETL,两种常见的数据分析模式,在数据处理流程中的步骤顺序上有所不同:
- ETL:数据在提取后经过一系列复杂转换操作,再加载到目标系统。适用于在数据到达目标系统前,需要对数据进行多次+复杂清洗和转换的场景,如将多个源的数据合并聚合等;
- ELT:数据首先加载到目标系统,然后在目标系统内进行转换。适用于目标系统有足够计算资源的情况,可在目标系统中直接处理原始数据。
优势(适用场景)分析:
- ETL:可将清洗和转换的逻辑分离出来,确保目标系统中的数据是高质量的。
- ELT: 更适用于云数据仓库等具有强大计算能力的系统(如BigQuery)。它允许直接在目标系统中处理原始数据,减少数据传输复杂性,适用于大规模数据处理。
商务智能发挥作用的四大领域
BI是一种能够帮助企业迅速完成信息采集、分析的现金技术。商务智能包含决策过程中所有的简单查询和报告、在线分析处理和数据钻取挖掘工具等。借助商务智能的核心技术,利用企业中长期积累的海量数据,商务智能解决方案在企业经营中的作用主要表现在四个领域:
- 客户分类和特点分析。根据客户历年来的大量消费记录以及客户的档案资料,对客户进行分类,并分析每类客户的消费能力、消费习惯、消费周期、需求倾向、信誉度,确定哪类顾客给企业带来最大的利润、哪类顾客仅给企业带来最少的利润同时又要求最多的回报,然后针对不同类型的客户给予不同的服务及优惠。
- 市场营销策略分析。利用数据仓库技术实现市场营销在模型上的仿真,其仿真结果将提示所制定的市场营销策略是否适合,企业可以据此调整和优化其市场营销策略,使其获得最大的成功。
- 经营成本与收入分析。对各种类型的经济活动进行成本核算,比较可能的业务收入与各种费用之前的收支差额,分析经济活动的曲线,得到相应的改进措施,从而降低成本、减少开支、提高收入。
- 行为分析和预防。利用联机分析和数据挖掘技术,总结各种骗费、欠费行为的内在规律后,在数据仓库的基础上监理一套欺骗行为和欠费行为规则库,就可以及时预警各种骗费、欠费,尽量减少企业损失。
开源:
- Superset
- MetaBase
- DataEase
- Lightdash
- DataLens
- SQLBot
- dbt
Superset
MetaBase
后端使用Clojure开发,太小众。参考Metabase初体验。
DataEase
官网,开源(GitHub,21.8K Star,3.8K Fork)可视化分析工具。
Lightdash
官网,官方文档,基于dbt构建的自助式开源(,5.2K Star,620 Fork)BI分析与可视化平台,致力于让业务用户能够通过直观的方式探索数据、获取洞察,而无需深厚的专业技术背景。支持本地部署外,提供云平台。
特性
- 通过预定义的指标和友好的界面为用户提供自助式服务,无需编写SQL;
- 通过yaml文件为dbt项目创建维度和指标;
- 基于dbt模型自动创建维度信息;
- 同步dbt描述和元数据;
- 提供图表底层数据的访问和下钻功能;
- 支持表格计算,提供实时数据分析;
- 数据血缘功能可以显示模型的上下游依赖,帮助用户理解数据来源和流向;
- 全面直观的数据可视化库让指标展示更清晰;
- 支持保存图表和仪表板,实现团队共享;
- 强大的开发体验,包括预览式BI环境和CI/CD自动内容验证等;
- 可以探索所有图表的版本历史,支持随时回滚到任何版本;
- 通过URL分析工作结果或者通过Slack或电子邮件安排报告交付;
实战
提供在线演示环境,点击New
层级关系:可创建多个空间(Space),一个空间下可创建多个看板(Dashboard),


部署
bash
git clone https://github.com/lightdash/lightdash
cd lightdash
./scripts/install.sh
浏览器打开http://127.0.0.1:3000
开始体验。
BIRT
Business Intelligence Reporting Tool的缩写,Eclipse开源(GitHub,520 Star,421 Fork),官方文档,基于Java语言的报表和数据可视化项目。
DataLens
Yandex,就是ClickHouse官方维护公司,开源(GitHub,1.6K Star,89 Fork)的BI系统

图表、选择器、文本等组件组合成仪表板。
特性:
- 支持数据源:包括ClickHouse、PostgreSQL、YTsaurus CHYT、YDB、Greenplum等数据库以及Metrica、AppMetrica服务等;
- 拖拽式界面:让业务人员和分析师能自主进行数据探索和可视化,减少对开发团队的依赖;
- 丰富的图表:折线图、柱状图、饼图、散点图、面积图、表格、透视表等,支持图表间过滤;
- 仪表板:通过组合各种组件,包括图表、选择器、Markdown文本等,创建可视化的仪表板;支持定时自动刷新功能;
- 权限管理:提供用户管理功能,可以为不同用户设置不同访问权限,权限包括管理员、编辑和查看;
- API集成:提供API接口,允许开发者将其集成到现有企业系统中,实现数据仪表板的无缝嵌入。
部署
bash
git clone https://github.com/datalens-tech/datalens
cd datalens
docker compose up
浏览器打开http://localhost:8080
,使用admin/admin
登录。
SQLBot
飞致云维护及开源(GitHub,1.5K Star,182 Fork),一款基于LLM和RAG的智能问数系统(Text-to-SQL),可实现数据的即问即答,快速提炼获取用户所需的数据信息及可视化图表,支持进一步开展智能分析。
官方文档
架构图
特性
- 开箱即用:只需简单配置大模型和数据源即可开启问数之旅。SQLBot 充分发挥大语言模型强大的自然语言理解和 SQL 生成能力,结合 RAG 技术提升生成精度,实现高质量的T2S转换体验;
- 提问分析:用户聊天对话方式提问,大模型解析问题意图,结合所选数据源生成图表与分析;
- 深度探索:在获得基础图表结果后,进一步进行分析、解释、验证和预测,支持更强的业务决策支持;
- 数据管理:支持用户配置、管理多种类型的数据源(MySQL、SQL Server、Oracle、PostgreSQL、Excel、CSV)和数据表,支持按需配置和管理;
- 看板搭建:用户可通过拖拽、自定义布局、添加说明等方式,将零散的分析结果转化为结构化的数据看板,便于复用、协作和汇报;
- 安全可控:提供基于工作空间的资源隔离机制,支持细粒度的数据权限配置,确保用户在使用过程中拥有清晰的数据边界与权限控制能力,保障数据访问的安全与合规;
- 易于集成:支持多种集成方式,能够快速嵌入到 n8n、MaxKB、Dify、Coze 等 AI 应用开发平台,让各类应用快速拥有智能问数能力。
部署
bash
git clone https://github.com/dataease/SQLBot.git
cd SQLBot
docker compose up -d
http://localhost:8000,admin/SQLBot@123456
四大核心模块:智能问数、数据源、仪表板和设置。
dbt
Data Build Tool缩写,官网,开源(GitHub,11.4K Star,1.8K Fork),一款基于Python语言的工具,提供功能:数据转换、数据建模、数据分析、
支持本地部署外,还提供dbt Cloud云托管服务。
dbt adapters,适配器,提供标准化接口,支持使用相同的SQL语法来与不同的底层数据平台交互。
安装:pip install dbt-core dbt-bigquery
命令行:
bash
dbt init
# 删除指定文件夹,通常用于清理生成的文件或目录
dbt clean
# 按照指定顺序运行所有的数据加载、数据模型、数据快照和数据测试。编译SQL并执行相应操作,构建数据仓库
# build包含seed、run、test、snapshot,也就是把原始数据加入数据库,基于模型生成视图,测试用例以及生成快照
dbt build
# 创建一个节点的副本,可以在项目中复制和重用节点
dbt clone
# 将dbt项目代码转换为可执行的SQL语句
dbt compile
# 显示当前dbt环境和配置的信息
dbt debug
# 更新项目中使用的依赖项,以获取最新版本的依赖库
dbt deps
# 生成项目文档
dbt docs
# 解析项目并提供关于性能的信息
dbt parse
# 列出项目中的资源,如数据模型、表、视图等
dbt list
# 将CSV数据文件写入数据库
dbt seed
# 编译SQL并运行指定的数据模型或操作
dbt run
# 重试
dbt retry
# 为指定的数据模型或操作生成可执行的SQL
dbt show
# 执行项目中定义的数据快照操作
dbt snapshot
# 管理项目的数据源
dbt source
# 用于在已部署的数据模型中运行数据测试,以确保数据的准确性和一致性,基本作用:
# 1.验证数据的准确性、完整性和一致性
# 2.验证数据转换逻辑是否正确
# 3.验证数据之间的关系和约束
dbt test
# 运行自定义宏(macro),可用于实现特定的数据处理逻辑,支持传递参数
dbt run-operation
seed和run的区别:
- seed:主要目的是加载原始、静态的数据,这些数据通常不需要经常变动,例如国家列表、产品类别等。seed会负责将这些静态数据加载到数据库中,为后续的分析和转换提供基础数据。
- run:主要目的是运行数据模型,通过执行SQL查询和转换逻辑,生成新的表、视图或者其他的数据结构。这些模型可能依赖于seed导入的数据,也可能依赖于其他模型生成的数据。
https://github.com/dbt-labs/jaffle_shop
https://www.cnblogs.com/echolun/p/17868695.html
QStudio
开源、跨平台、基于Java语言、现代化SQL查询和数据分析工具(Notebook)。
最初是为了kdb+时序数据库设计的开发工具,现在支持更广泛的数据源和功能,适用于需要针对时间序列数据进行快速探索、分析和可视化, 尤其是需要处理超高频率交易数据、行情数据、实时风险计算的金融数据分析师。
特性:
- 数据源支持:kdb+、BabelDB、QuestDB、TimeScale、DuckDB、DolphinDB、Druid、HSQLDB、CSV、Access、JDBC、Apache Calcite Avatica、Snowflake、Teradata、CrateDB、NuoDB、Gemfire XD、Snappy Data Tibco、Apache Kyuubi、Trino、Apache Solr、Apache Ignite、Omnisci、Informix、Sqream、Aurora(只列出个人没怎么听过);
- 智能SQL编辑器:提供对象浏览、语法高亮、代码补全、格式化、内置图表(柱状图、饼图、折线图、散点图、时序图等)功能;
- SQL透视表:提供类似Excel透视表功能,对数据进行交叉分析;
- AI智能助手:提供自然语言转SQL、解释查询语句以及分析错误功能,需要配置OpenAI Key;
- SQL Notebook:通过编写Markdown文档和SQL查询实时生成基于Web的数据分析报告,支持导出PDF;
- 导出数据:查询结果可以导出为CSV、Excel文件。
https://www.timestored.com/qstudio/download
RootDB
官网,开源(GitHub,Issue比Star和Fork加起来还大?)、简单易用的Web报表工具,基于SQL语言查询数据源并生成报告和图表,适合企业和机构进行数据分析和报告集成。官方文档
特性
- 数据源:支持MySQL、MariaDB、PostgreSQL;
- 多报告:同一个浏览器页面可以打开多个报表;
- 图形库:支持主流
Chart.js
、D3.js
、Apache ECharts前端图形库; - 列表生成:简单实用的动态表格配置器,支持创建指向其他报告的链接;
- 视图小部件:可以为重要的指标增加一个高亮小部件,或者增加一个描述信息的文本小部件;
- 缓存系统:基于一组或者多组参数定期缓存结果,或者指定缓存某个报表的结果;
- 开发者友好:提供不同图表模式下的示例JS脚本和SQL查询语句;
- 报表参数:基于默认参数或者自定义参数过滤报表中的数据;
- 用户管理:支持用户组和权限,控制报表的访问;
- 外部集成:可以快速集成报表到外部网站;
- SQL控制台:用于查看数据库和数据表,编写查询语句,支持代码补全。
部署:
bash
浏览器打开http://localhost:8091/login
,登录用户名密码super-admin/rootdbadmin
,开始体验。
JasperReports
官网,基于Java语言的开源(GitHub,1.2K Star,429 Fork)报表库,不是一个完整的BI系统。