基于文件的本地数据库组件 DuckDB, ChDB, SQLite, LevelDB, RocksDB

OLTP 与 OLAP 的区别:

  • OLTP(on-line transaction processing) 联机事务处理,主要就是一些传统的数据库,比如 Mysql。
  • OLAP(On-Line Analytical Processing) 联机分析处理,主要应用在大数据分析处理领域,比如 Clickhouse。

SQLite

这个是使用最广泛的基于文件的本地数据库,兼容SQL,在一些桌面程序,安卓软件上使用广泛,缺点是不支持并发写,实际上本地应用也不需要什么并发,将写操作做好串行处理即可。

DuckDB

目标是称为分析领域(OLAP)的SQLite,本地数据库,已经在DBeaver中支持,支持SQL(它的SQL设计参照的 PostgreSQL,但又不完全是,在有些地方与Mysql不一样),支持 CSV, JSON, Parquet 等文件格式。

https://github.com/duckdb/duckdb

https://duckdb.org/docs/api/go

https://duckdb.org/docs/api/python/overview

ChDB

由国内大佬 auxten 开发,相关介绍 https://zhuanlan.zhihu.com/p/642345300

也是一个 OLAP 领域的本地数据库,底层是集成的 ClickHouse Engine,用户不需要安装 ClickHouse 软件和服务,性能却非常炸裂。默认是python版本的,也提供了Golang版本。其团队已加入 ClickHouse ,可保证持续更新和优化。按照作者所说实上单机版的 chDB 在大多数场景下竟然比上百台服务器组成的 Hive 运行速度要快得多

chDB 跟 clickhouse-local 很像,但是 chDB 是嵌入(embeded)到你的应用中的。

Features

  • In-process SQL OLAP Engine, powered by ClickHouse
  • Serverless. No need to install or run ClickHouse services
  • Minimized data copy from C++ to Python with python memoryview
  • Input & Output support Parquet, CSV, JSON, Arrow, ORC and 60+more formats
  • Supports Python DB API 2.0, example and custom UDF Functions
  • Library bindings for Python, Go, Rust, NodeJS, Bun
  • Apache License, Version 2.0

那么,为什么不直接使用已经完备的ClickHouse系统呢,毕竟包装一层会面临非常多的问题需要解决。我们可以从 ClickHouse 的论坛上找到答案 https://clickhouse.com/blog/welcome-chdb-to-clickhouse,大概意思就是原本clickhouse的使用场景是大数据集群的实时数据分析,但是随着DuckDb的流行,他们才意识到这种小数据集的使用场景还是很多的,为了完善clickhouse的生态,他们迅速收购了chDB,实际上 Auxten 开发 chDB 的初衷就是满足自己训练模型的需要,不想花那么多时间和资源去搭建clickhouse服务。

https://github.com/chdb-io/chdb

https://github.com/chdb-io/chdb-go

https://doc.chdb.io/#/

LevelDB

LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.

是一个本地K-V数据库。

https://github.com/google/leveldb

RocksDB

是一个本地K-V数据库,它居然是在早期的 LevelDB 的基础上演变而来的。

https://github.com/facebook/rocksdb

相关推荐
·云扬·8 分钟前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德11 分钟前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫36 分钟前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
不爱缺氧i1 小时前
完全卸载MariaDB
数据库·mariadb
纤纡.1 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql
jiunian_cn1 小时前
【Redis】渐进式遍历
数据库·redis·缓存
橙露1 小时前
Spring Boot 核心原理:自动配置机制与自定义 Starter 开发
java·数据库·spring boot
冰暮流星1 小时前
sql语言之分组语句group by
java·数据库·sql
符哥20081 小时前
Ubuntu 常用指令集大全(附实操实例)
数据库·ubuntu·postgresql
C++ 老炮儿的技术栈2 小时前
Qt 编写 TcpClient 程序 详细步骤
c语言·开发语言·数据库·c++·qt·算法