Querybook:一个开源大数据查询分析工具
Querybook 是一款由 Pinterest 开源、基于 Web 浏览器的大数据分析集成开发环境(IDE),专为数据分析师、工程师及业务人员设计,致力于简化大数据查询、协作与可视化流程。
体系结构
Querybook 包含三个主要的组件:
- Web Server:处理 HTTP 请求,发送/接收 Websocket 消息,提供网站静态资源。
- Worker:执行查询语句和预计划的 DataDoc(交互式数据分析笔记),以及其他辅助任务,例如更新 ElasticSearch 或者分析查询血缘。
- Scheduler:从数据库中读取任务计划并发送给 Worker。
同时,Querybook 还包含以下基础设施:
- 数据库:用于存储 DataDoc、查询执行历史等信息。任何兼容 SQLAlchemy 的数据库都可以,推荐使用 MySQL。
- Redis:用于发送异步任务到 Worker,维护多个 WebSocket 连接,以及缓存实时数据进行协作编辑。
- Elasticsearch:支持数据库文档(DataDoc、表)的搜索功能,也用于表和用户的自动补全。
- 远程存储: 存储查询结果。Querybook 不限制从查询引擎拉取的数据量,因此推荐使用大型存储服务(例如 S3)。如果没有提供远程存储,将会使用数据库进行存储。
主要功能
Querybook 提供的主要功能包括:
- 集成多种查询引擎,包括 Presto、Hive、Druid、Snowflake、Big Query、MySQL、SQLite、PostgreSQL、SQL Server、Oracle 等;
- 基于富文本、SQL 查询以及图表构建数据分析笔记(DataDoc);
- 支持查询语句的自动补全和鼠标悬停提示;
- 基于定时任务和图表构建可视化仪表盘;
- 支持团队实时协作编辑与评论;
- 支持表结构元数据管理;
- 支持 AI 助手,实现文本转 SQL、自动完成、错误修复等功能;
- 自动分析查询历史,构建数据血缘关系、高频用户画像及表使用排名;
- 支持查询结果导出 Google Sheets、Microsoft 365、Python 脚本等;
- 支持查询执行通知,包括 Email、Slack、Microsoft Teams。
下载安装
推荐使用 Linux 或者 macOS 系统运行 Querybook,首先克隆并下载代码库:
git clone git@github.com:pinterest/querybook.git
cd querybook
然后构建并运行 Docker 容器(需要提前安装 Docker):
make
在浏览器中输入以下地址进行访问:
https://localhost:10001
详细信息可以参考下面的文档:
https://www.querybook.org/docs/setup_guide/setup_overview