基于文件的本地数据库组件 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/34874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VB求高于平均成绩的分数

有3个学生,每个学生4门课。 先求每个学生的平均成绩,然后展示高于平均成绩的分数。 Public Class Form1Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickDim pj%, i%, n%, sum%, say$Dim cj(0 To 3) As Integeri 1…

Linux—LVM与磁盘配额

目录 一、LVM 1、LVM概念 2、LVM逻辑卷核心组件 3、LVM管理命令 二、LVM操作主要命令步骤 1、添加硬盘 2、新建分区,并修改分区类型 3、新建物理卷(PV) 4、新建卷组(VG) 5、新建逻辑卷(LV&#xff0…

帮您理解PostgreSQL(WAL、XLOG、CheckPoint进程、LSN、PITR、SR)

文章目录 一、WAL、XLOG、LSN二、检查点进程与pg_control文件-负责脏页刷盘、数据库恢复三、基础备份与时间点恢复PITR四、原生复制功能与流复制(SR Streaming Replication) 一、WAL、XLOG、LSN 在计算机领域,WAL是Write Ahead Logging的缩写…

[Day 18] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

強化學習與生成對抗網絡(GAN) 引言 強化學習 (Reinforcement Learning, RL) 和生成對抗網絡 (Generative Adversarial Networks, GANs) 是現代人工智能中的兩大關鍵技術。強化學習使得智能體可以通過與環境交互學習最佳行動策略,而生成對抗網絡則通過兩個相互競爭…

MySQL——Delete和Truncate语句详解

delete 命令 语法:delete from 表名 [where 条件] -- 删除数据(避免这样写,会全部删除) DELETE FROM student -- 删除指定数据 DELETE FROM student WHERE id 7 TRUNCATE 命令 作用:完全清空一个数据库表,表的结构和索引约束不会…

Typora配置自建的兰空图床

文章目录 Typora配置自建的兰空图床 - 前言先看效果1、搭建兰空图床 - docker2、配置兰空图床3、登录进入兰空图床后台4、Typora配置兰空图床安装兰空插件获取兰空图床的Token编辑PigGO的配置文件 使用 Typora配置自建的兰空图床 - 前言 Typora插入的图片默认存储在本地&#…

仓库管理系统07--顶部标题设计

1、创建全局变量 2、应用全局变量 1)主窗体应用 2)登录窗体应用 3、自定义弹窗 弹窗中各按钮的事件代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows…

odoo17 tree视图添加按钮

需求描述 点击下图中tree视图上的同步退货单按钮,弹出相应的form视图进行退货单同步,然后点击同步按钮调用后端python代码处理。 实现步骤 主要文件目录结构 js文件的创建 /** odoo-module **/ import { registry } from "web/core/registry&quo…

证件照制作工具有哪些?分享当下热门的证件照制作工具

无论是考证、出国旅游还是应聘,一张符合标准的证件照成了必备之物。 如果手头的证件照尺寸不符合要求,不必惊慌,现在有多种证件照制作软件可以帮助你迅速解决问题。 今天,本文就为大家分享几个证件照制作教程,让你的…

基于单片机的智能温控风扇设计

摘 要 : 本次设计是基于单片机的智能温控风扇 。 以 STC89C52 单片机为核心 , 可以实现对风扇的有效控制 。 可以根据需要设置不同的温度 ,如果温度在设定值最大值和最小值之间时则启动风扇弱风档, 如果温度超过设定的数值时将会变到大风档…

一文学会用Helm部署rancher 高可用集群

rancher集群架构图 Helm部署rancher 高可用集群 Helm简介 Helm是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理。可以把Helm比作CentOS的yum工具。 Helm有如下几个基本概念: Chart: 是Helm管理的安装包,里面包含需要部署的安装包资源。可以把Chart比作C…

Linux iptables

Linux iptables CentOS7及以上配置iptables自动重启 yum install -y iptables-services systemctl enable iptables # 修改规则后保存,保存的文件在/etc/sysconfig/iptables service iptables saveDebian配置iptables自动重启 # 安装该包,实际上是创建…

iOS政策解读之二丨安全和性能要求到底有多重要

上一篇文章我们介绍了App提交审核前,都有哪些注意事项需要引起重视和关注,如果“前菜”您还没来得及阅读,传送门在这里:iOS政策解读之一丨App提交审核前注意事项必知 今天奉上我们的“正菜”,从App审核指南的正文章节…

什么牌子的开放式耳机好?五大优质机型,新手必看!小白闭眼入系列

音乐技术的不断进步为耳机市场的发展有了更多的选择,开放式耳机成为音乐爱好者们新的一个选择。从最初的基础音质到如今的高解析度音频,开放式耳机经历了一次次的技术革新和升级。这类耳机以开放式不入耳的设计,舒适的佩戴体验著称&#xff0…

44.商城系统(二十五):k8s基本操作,ingress域名访问,kubeSphere可视化安装

上一章我们已经配置好了k8s集群,如果没有配置好先去照着上面的配。 一、k8s入门操作 1.部署一个tomcat,测试容灾恢复 #在主机器上执行 kubectl create deployment tomcat6 --image=tomcat:6.0.53-jre8#查看k8s中的所有资源 kubectl get all kubectl get all -o wide#查看po…

探索 PrimeVue——开源项目的卓越之旅

嗨,大家好,我是徐小夕。之前一直在社区分享零代码&低代码的技术实践,也陆陆续续设计并开发了多款可视化搭建产品,比如: H5-Dooring(页面可视化搭建平台)V6.Dooring(可视化大屏搭…

简单聊聊JSX

什么是JSX? JSX 是 JavaScript XML 的缩写,是 React 中用来描述用户界面的语法(其实可以看作是JavaScript的扩展语法)。可以把它看作是一种将 HTML 与 JavaScript 结合在一起的方式,使得在 JavaScript 中写 HTML 变得…

优化流程市政道路乙级资质内部管理优化

1. 建立资质管理专项小组 组建由高层领导挂帅,包含资质管理、人力资源、财务、技术等部门代表的专项小组,负责资质的日常维护、升级规划及申报工作。 2. 信息化管理系统 引入或升级资质管理信息系统,自动化追踪人员资质状态、继续教育记录…

sqlserver backup and restore

在 SQL Server 中,备份(Backup)和还原(Restore)是非常重要的数据库维护操作,用于确保数据的安全性和完整性。以下是关于 SQL Server 备份和还原的简要概述以及一些基本的 SQL 语句示例 参考官方地址 https…

定时邮件教程

下面是一个在Linux下使用crontab定时发送邮件的教程。假设你已经有一个Python邮件脚本,接下来我们会通过crontab定时执行这个脚本。 1. 编写Python邮件脚本 假设你的Python邮件脚本名为send_email.py,并且它位于/home/scripts/目录下。 mkdir -p /hom…