基于文件的本地数据库组件 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
相关文章:
基于文件的本地数据库组件 DuckDB, ChDB, SQLite, LevelDB, RocksDB
OLTP 与 OLAP 的区别: OLTP(on-line transaction processing) 联机事务处理,主要就是一些传统的数据库,比如 Mysql。OLAP(On-Line Analytical Processing) 联机分析处理,主要应用在大数据分析处理领域,比如 Clickhous…...
日志记录功能
需求描述: 1,可记录页面操作模块、按钮的日志记录 2,记录详细的指定操作数据日志 3,记录的数据可能需要查询表 4,需要考虑到扩展性及个性化定制 表结构设计: CREATE TABLE YES_DEV.T_COMM_OPERATION_LOG (ID BINARY_BIGINT NOT NULL,OPERATOR VARCHAR(128),OPERATION_MO…...
Android中的多线程与线程池详解
Android中的多线程与线程池详解 一、技术难点 在Android开发中,多线程和线程池是处理复杂任务、提高应用性能和响应性的关键技术。然而,这些技术也带来了一些技术难点。 1. 多线程技术难点 线程同步:多线程环境下,数据访问的同…...
使用LangChain+Ollama自己做的一个和大语言模型聊天的网站支持上下文对话,学习记录。
0.引言 在自己学习的过程中可以自己做一个和聊天大模型对话的一个小网站,成就感不亚于人生第一次跑完10km。 1.项目介绍 前端代码:Vue3, MarkDownIT. 后端代码:Python3, Fernet库, OpenAPI, LangChain, Ollama. Ollama 本地模型的部署和管理…...
excel数据透视
Excel中,数据透视图(PivotChart)和数据透视表(PivotTable)是两个紧密相关的工具,用于分析数据。数据透视表是数据透视图的数据源,也就是说,数据透视图是基于数据透视表中的数据创建的…...
七、(正点原子)Linux并发与竞争
Linux是多任务操作系统,肯定会存在多个任务共同操作同一段内存或者设备的情况,多个任务甚至中断都能访问的资源叫做共享资源。在驱动开发中要注意对共享资源的保护,也就是要处理对共享资源的并发访问。 一、并发与竞争 1、简介 并发就是多个…...
vue2+TS,el-table表格单选的写法
1.打开表格 //父组件引入 <customerChoose ref"customerChooseRef" onSure"setOrderInfoFn"></customerChoose>//子传父,接收值,操作private async setOrderInfoFn(data) {this.form.customerId data.idthis.form.cu…...
北邮《计算机网络》蒋老师思考题及答案-传输层
蒋yj老师yyds! 答案自制,仅供参考,欢迎质疑讨论 问题一览 传输层思考题P2P和E2E的区别使用socket的c/s模式通信,流控如何反映到编程模型三次握手解决什么问题举一个两次握手失败的例子为什么链路层是两次握手而非三次?…...
学懂C#编程:常用高级技术【元组的详细使用】——利用元组获取多个返回值
C#常用高级技术——利用元组获取多个返回值 在C# 7.0及更高版本中,您可以使用元组(Tuples)来实现这种返回多个值的方法。您提供的代码片段是正确的,它定义了一个名为Calculate的方法,该方法接受两个整数参数a和b&#…...
解决IDEA使用卡顿的问题,设置JVM内存大小和清理缓存
解决IntelliJ IDEA中卡顿问题,可以尝试以下几个常见且有效的步骤: 1 增加IDEA的JVM内存分配: 位于IDEA安装目录的bin文件夹下,找到对应的操作系统配置文件(idea64.exe.vmoptions(Windows)或id…...
Python爬虫从入门到入狱之爬取知乎用户信息
items中的代码主要是我们要爬取的字段的定义 class UserItem(scrapy.Item):id \ Field()name \ Field()account\_status \ Field()allow\_message\ Field()answer\_count \ Field()articles\_count \ Field()avatar\_hue \ Field()avatar\_url \ Field()avatar\_url\_template…...
apk反编译修改教程系列-----去除apk软件更新方法步骤列举 记录八种最常见的去除方法
在前面几期博文中 有说明去除apk软件更新的步骤方法。我们在对应软件反编译去除更新中要灵活运用。区别对待。同一个软件可以有不同的去除更新方法可以适用。今天的教程对于软件更新去除列举几种经常使用的修改步骤。 通过基础课程可以了解 1-----软件反编译更新去除的几种常…...
SpringMVC系列六: 视图和视图解析器
视图和视图解析器 💞基本介绍💞 自定义视图为什么需要自定义视图自定义试图实例-代码实现自定义视图工作流程小结Debug源码默认视图解析器执行流程多个视图解析器执行流程 💞目标方法直接指定转发或重定向使用实例指定请求转发流程-Debug源码…...
MySQL数据备份的分类
MySQL数据库的备份 在我们使用MySQL数据库的过程中,一些意外情况的发生,有可能造成数据的损失。例如,意外的停电,不小心的操作失误等都可能造成数据的丢失。 所以为了保证数据的安全与一致性,需要定期对数据进行备份。…...
node+nginx实现对react进行一键打包部署--windows版
文章目录 nodenginx实现对react进行一键打包部署--windows版1.功能展示及项目准备1.1功能展示 1.2 项目准备1.2.1技术点1.2.2安装相关配置(windows) 2.实现2.1 实现思路2.2 实现步骤2.1 项目准备2.1.1 创建env文件2.1.2 创建api/index.js文件2.1.3 添加解决跨域代码 2.2 项目实…...
【机器学习】基于Gumbel-Sinkhorn网络的“潜在排列问题”求解
1. 引言 1.1.“潜在排列”问题 本文将深入探索一种特殊的神经网络方法,该方法在处理离散对象时展现出卓越的能力,尤其是针对潜在排列问题的解决方案。在现代机器学习和深度学习的领域中,处理离散数据一直是一个挑战,因为传统的神经网络架构通常是为连续数据设计的。然而,…...
create-react-app创建的项目中设置webpack配置
create-react-app 创建的项目默认使用的是 react-scripts(存在于node_modules文件夹中)来处理开发服务器和构建,它内置了一些webpack相关配置。一般不会暴露出来给开发者,但是在有些情况下我们需要修改下webpack默认配置ÿ…...
【ai】tx2 nx :安装torch、torchvision for yolov5
torchvision 是自己本地构建的验证torchvision nvidia@tx2-nx:~/twork/03_yolov5/torchvision$ nvidia@tx2-nx:~/twork/03_yolov5/torchvision$ python3 Python 3.6.9 (default, Mar 10 2023, 16:46:00) [GCC 8.4.0] on linux Type "help", "copyright",…...
【报错】在终端中输入repo命令后系统未能识别这个命令
1 报错 已经使用curl命令来下载repo工具,但是在终端中输入repo命令后系统未能识别这个命令。 2 分析 通常是因为repo...
【机器学习】K-Means算法详解:从原理到实践
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 K-Means算法详解:从原理到实践引言1. 基本原理1.1 簇与距离度量1.2 …...
SKNet核心机制解析与PyTorch实战:从Split-Fuse-Select到完整网络构建
1. SKNet核心机制解析:从Split-Fuse-Select到多尺度特征融合 SKNet(Selective Kernel Networks)是CVPR 2019提出的创新性网络结构,它在传统卷积神经网络的基础上引入了动态选择机制。这个机制的核心在于让网络能够自适应地选择不同…...
从零开始理解阵列信号处理:用Python模拟阵列流形与波数响应
从零开始理解阵列信号处理:用Python模拟阵列流形与波数响应 阵列信号处理是雷达、声纳和无线通信等领域的核心技术之一。对于初学者来说,面对复杂的数学公式和抽象概念常常感到无从下手。本文将采用实践优先的方法,通过Python代码实现阵列流形…...
京东开源直播智能体框架:joylive-agent架构解析与实战指南
1. 项目概述与核心价值最近在开源社区里,一个名为joylive-agent的项目引起了我的注意。这个项目来自京东的开源组织jd-opensource,从名字上就能嗅到一股浓厚的“自动化”和“智能体”气息。简单来说,joylive-agent是一个旨在为直播场景&#…...
终极英雄联盟工具箱:如何用League Akari提升你的游戏效率与段位
终极英雄联盟工具箱:如何用League Akari提升你的游戏效率与段位 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一款…...
基于SpringBoot的共享汽车管理系统毕设源码
博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在构建一个基于Spring Boot与Vue框架的共享汽车管理系统以解决当前共享汽车行业在资源调度效率、用户服务体验以及数据安全等方面存在的核心问题。随着城…...
解锁网盘文件下载新体验:LinkSwift直链解析工具完全指南
解锁网盘文件下载新体验:LinkSwift直链解析工具完全指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天…...
如何用Project Graph快速构建思维导图?终极跨平台节点图绘制指南
如何用Project Graph快速构建思维导图?终极跨平台节点图绘制指南 【免费下载链接】project-graph A node-based visual tool for organizing thoughts and notes in a non-linear way. 项目地址: https://gitcode.com/gh_mirrors/pr/project-graph 还在为项目…...
转子永磁式无刷混合励磁电机关键技术【附仿真】
✨ 长期致力于次谐波、无刷调磁、有限元建模与分析、多目标鲁棒优化、弱磁运行研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)基于次谐波调制与变电流…...
PD SINK芯片选型指南:从核心参数到实战场景的深度解析
1. 项目概述:为什么PD SINK芯片选型是门技术活最近在做一个带Type-C充电口的便携设备项目,客户明确要求必须支持主流的快充协议,尤其是USB PD。这让我不得不重新审视一个看似简单、实则暗藏玄机的环节:PD SINK协议芯片的选型。你可…...
别只改fillText了!深入Chromium渲染引擎,打造更隐蔽的Canvas指纹混淆方案
深入Chromium渲染引擎:构建自然化的Canvas指纹混淆体系 Canvas指纹识别技术早已从实验室走向实际应用,成为现代Web追踪的重要手段。传统对抗方案往往停留在简单的随机偏移或文本修改层面,这种"粗暴"的修改方式很容易被高级指纹库通…...
