Description
项目地址
https://github.com/pixelsdb/pixels
类别
人工智能
项目标题
PixelsDB是一个同时面向Cloud-native和本地化计算环境高度优化的数据湖仓引擎
项目描述
对于用户
PixelsDB对用户提供:
- (1)基于自然语言的查询交互接口。除了直接提交SQL之外,用户也可以用自然语言提出分析需求,PixelsDB后台借助微调后的大模型完成SQL翻译;
- (2)灵活地为不同查询选择不同的performance-price SLA。例如为离线查询选择low price,则可以极低的资源消耗执行查询、成本为AWS Athena等公有云Lakehouse的5%左右;为交互式查询选择high performance,则可以较高的性能迅速执行查询、成本与AWS Athena等相当;为仪表盘类应用的后台查询选择均衡模式,则可以在满足性能要求的情况下以远低于AWS Athena的成本完成查询;
- (3)比Parquet快两个量级的高性能列式存储。PixelsDB内置高性能列式存储引擎,可以在S3对象存储、HDFS、本地文件系统等主流存储系统上进行高效的数据表存储和查询,并且针对云对象存储、机械磁盘、NVMe SSD等进行了针对性的性能优化,配合高性能数据编解码、内存零拷贝、分布式列式缓存,在TPC-H和ClickBench等测试基准上性能远超Parquet;
- (4)按用量付费的高弹性Serverless计算。当PixelsDB部署在公有云上时,可以自动调用云函数和云容器等高弹性的Serverless计算资源完成查询执行,做到精确到每个查询、每个CPU-sec和GB-memory-sec的按需付费,没有查询时可以scale-to-zero、不产生任何费用;
- (5)良好的生态兼容性。PixelsDB内部的SQL执行引擎是插件式的,目前支持Trino、Presto、DuckDB、StarRocks、Hive、PostgreSQL。用户可以选择各种主流的SQL执行引擎,无需学习SQL方言和修改现有SQL、避免Lock-in。
对于开发者
欢迎开发者参与PixelsDB开发。项目的核心组件在主仓库中,其他组件(Web UI、SQL执行引擎集成等)在项目下的独立仓库中。
语言兼容性
PixelsDB使用了Java和C++语言实现不同的组件。其中列式存储引擎提供Java和C++两个版本的实现,便于以更加native的方式接入不同的SQL执行引擎;其他组件使用Java实现。此外,PixelsDB正在用Go语言实现一个云上的高弹性资源调度层。
PixelsDB中的Java代码对Java 8/11/17/21/23全面兼容,其中涉及到的底层堆外内存操作和系统调用的代码对这些版本的JDK做了自适应,无需任何配置和代码修改。C++代码兼容C++ 17及以上。
开发环境
Java代码使用Maven编译和管理依赖,可以使用IntelliJ、VS Code等IDE;C++代码使用CMake编译,除AWS C++ SDK之外的其他依赖通过git sudmodule和CMake ExternalProject自动拉取,可以使用CLion、VS Code等IDE。
项目文档中提供了编译和IntelliJ、Clion开发环境搭建流程,10分钟轻松搞定。
安装部署
项目提供了在AWS上的完整部署流程,同时也提供了Docker File、可以在Docker容器中轻松部署运行PixelsDB的主要组件。
论文发表
PixelsDB中部分核心技术在以下论文中公开,欢迎交流:
ICDE'25
PixelsDB: Serverless and NL-Aided Data Analytics with Flexible Service Levels and Prices
Haoqiong Bian, Dongyang Geng, Haoyang Li, Yunpeng Chai, Anastasia Ailamaki
arXiv'24
Serverless Query Processing with Flexible Performance SLAs and Prices
Haoqiong Bian, Dongyang Geng, Yunpeng Chai, Anastasia Ailamaki
SIGMOD'23
Using Cloud Functions as Accelerator for Elastic Data Analytics
Haoqiong Bian, Tiannan Sha, Anastasia Ailamaki
EDBT'22
Columnar Storage Optimization and Caching for Data Lakes (short)
Guodong Jin, Haoqiong Bian, Yueguo Chen, Xiaoyong Du
ICDE'22
Pixels: An Efficient Column Store for Cloud Data Lakes
Haoqiong Bian, Anastasia Ailamaki
CIDR'20
Pixels: Multiversion Wide Table Store for Data Lakes (abstract)
Haoqiong Bian
ICDE'18
Rainbow: Adaptive Layout Optimization for Wide Tables (demo)
Haoqiong Bian, Youxian Tao, Guodong Jin, Yueguo Chen, Xiongpai Qin, Xiaoyong Du
SIGMOD'17
Wide Table Layout Optimization by Column Ordering and Duplication
Haoqiong Bian, Ying Yan, Wenbo Tao, Liang Jeff Chen, Yueguo Chen, Xiaoyong Du, Thomas Moscibroda
亮点
- 可以为人工智能和大数据分析提供高弹性、灵活SLA的数据存储和数据分析平台;
- 易用,无需专业的SQL编写技巧,无需运维和估计资源使用量;
- 易开发,使用Java和C++开发,采用Maven和CMake编译和管理依赖,几乎无需安装任何依赖,支持Docker快速部署测试,支持IntelliJ和CLion等主流IDE。
示例代码
截图或演示视频
Demo视频:https://www.bilibili.com/video/BV1awDQYcEsN/?vd_source=da6f80d8fe2bab1291999a9535251c78