嵌入式数据库
大多数应用程序或系统最终至少需要三个数据库(事务型、归档/分析型以及时间序列/指标型)
事务型:SQLite Berkeley DB 、Derby、H2、HSQL DB
分析型: duckdb glaredb chDB
时序数据库:
标准SQL是指国际标准
1986年,ANSI X3.135-1986,ISO/IEC 9075:1986,SQL-86
1989年,ANSI X3.135-1989,ISO/IEC 9075:1989,SQL-89
1992年,ANSI X3.135-1992,ISO/IEC 9075:1992,SQL-92(SQL2) 把数据库分为三个级别:基本集、标准集和完全集。
1999年,ISO/IEC 9075:1999,SQL:1999(SQL3)
2003年,ISO/IEC 9075:2003,SQL:2003
2008年,ISO/IEC 9075:2008,SQL:2008
2011年,ISO/IEC 9075:2011,SQL:2011
SQLite
362 releases over 25.0 years. SQLite是一个基于C语言编写的关系型数据库管理系统,是一个程序库
Date Version
2000-08-17 1.0
2001-07-23 1.0.32
2001-09-28 2.0.0
2004-06-09 2.8.14
2004-06-18 3.0.0
2004-06-22 3.0.1
2014-02-03 3.8.3
2019-02-07 3.27.0
2024-01-15 3.45.0
2025-05-29 3.50.0
2025-07-30 3.50.4
……
duckdb
2019年 6月 27, v0.1.0
2023年 Feb 13, v0.7.0
2024年 May 29, v1.0.0
2025年 May 21 v1.3.0
GlareDB 版本
2023年6月2日
2023年11月3日,
v0.0.1: The first version tag!
v0.10.17 2025年5月3日
2025年5月4日
v25.5.0
glareDB uses calendar versioning following the format <year>.<month>.<release>.
Version 25.5.0 indicates the first release in May 2025
FlashDB
2020年 Oct 8, First Release
2022年 Mar 28, 1.1.2
2023年 May 28, 2.0.0
2024年 Oct 6, 2.1.1
有哪些扩展
https://duckdb.org/docs/stable/core_extensions/overview.html
httpfs GitHub Adds support for reading and writing files over an HTTP(S) or S3 connection stable http, https, s3
sqlite GitHub Adds support for reading from and writing to SQLite database files stable sqlite_scanner, sqlite3
parquet Adds support for reading and writing Parquet files stable
duckdb
SELECT extension_name, installed, description FROM duckdb_extensions();
下载扩展--离线下载
下载的仓库地址+版本+操作系统+扩展名称
windows_amd64 linux_amd64
https://extensions.duckdb.org/
https://extensions.duckdb.org/v1.3.2/linux_amd64_gcc4/sqlite_scanner.duckdb_extension.gz
https://extensions.duckdb.org/v1.3.2/linux_amd64/sqlite_scanner.duckdb_extension.gz
http://nightly-extensions.duckdb.org
http://nightly-extensions.duckdb.org/v1.3.2/linux_amd64/sqlite_scanner.duckdb_extension.gz
https://duckdb.org/community_extensions/list_of_extensions
http://community-extensions.duckdb.org/v1.3.2/linux_amd64/wireduck.duckdb_extension.gz
过程
01.查看插件
SELECT extension_name, installed, description FROM duckdb_extensions();
02.加载插件 https://extensions.duckdb.org/v1.3.0/linux_amd64/sqlite_scanner.duckdb_extension.gz
## gzip -dk sqlite_scanner.duckdb_extension.gz
INSTALL sqlite; ## 离线安装 INSTALL '/opt/data/sqlite_scanner.duckdb_extension';
LOAD sqlite;
03.使用插件 ###use the ATTACH statement with the sqlite or sqlite_scanner type
ATTACH 'D:\rosbag2.db3' (TYPE sqlite);
PRAGMA database_list;
USE rosbag2; ## 要使用对应文件名的这个
SHOW TABLES;
04.使用 DESCRIBE 命令来查看表的结构。这个命令会显示表的列名、数据类型以及其他相关信息
其他
Derby 是由 Java 编写的一款数据库,而且是开源免费的,非常小巧
h2 是一款纯java编写的另一款嵌入式数据库,它本身只是一个类库,即只有一个 jar文件,
可以直接嵌入到应用项目
Limbo,一个采用 Rust 语言重写的 SQLite 数据库
libSQL is a fork of SQLite that is both Open Source, and Open Contributions
FlashDB 是一款专为嵌入式系统设计的超轻量级数据库,它支持键值数据库和时序数据库两种模式
一款支持 KV 数据和时序数据的超轻量级数据库
时间序列数据库(Time Series Database , 简称TSDB CnosDB Embedded
个人开发
搭建基础设施和配置访问权限 -去中心化数据所有权和架构,自助数据基础设施即平台
格式: JSON(和 CSV) BSON(和 Apache Avro)
Parquet(和 Lance)
Delta Lake(以及 Iceberg 和 Lance)
数据库
GlareDB 的下一个主要版本彻底放弃 DataFusion,转而使用完全自定义的执行引擎
放弃 arrow-rs以及相关库
移除对 BigQuery 和 Postgres 等外部系统查询的支持。
目前,我们认为这些系统的价值不足以证明维护成本的合理性
观点
大多数应用程序或系统最终至少需要三个数据库(事务型、归档/分析型以及时间序列/指标型)
编写应用程序逻辑上
微调数据算法和管道
开发人员、数据分析师和工程师应该能够跨应用程序边界或跨工作负载无缝地处理数据
避免从 C++ 到 Python 对象的内存复制,我利用 Pythonmemoryview进行直接内存映射
Pybind11 的成熟,现在可以轻松地将 C++ 类的构造和析构与 Python 对象的生命周期绑定在一起
Apache IoTDB 是一个开源物联网原生数据库,
旨在满足大规模物联网和工业物联网(IoT和IIoT)应用对数据、存储和分析的严苛要求。
开源时序数据库产品有 InfluxDB、OpenTSDB、Prometheus、Graphite等
参考
https://github.com/GlareDB/glaredb/releases/
https://www.sqlite.org/chronology.html
https://github.com/armink/FlashDB