首页
|
资讯
|
生活
|
电脑
|
互联网
|
手机
|
财经
|
教育
|
简易号
|
高级搜索
焦点
股票
程序开发
站长技术
抖音
安卓
电商
iphone
微信
理财
职场
美食
您当前的位置:
首页
>
电脑百科
>
数据库
>
百科
使用 Rust 实现的现代化实时开源数据仓库
时间:2023-01-08 14:40:48 来源:
今日头条
作者:码农世界
+ 加入收藏
一 简单介绍
TensorBase 是使用
Rust
实现的现代化实时开源数据仓库。
二 特性
All in Rust
。TensorBase 称已经在日常测试中经历数十 TB 的数据注入锤炼,是目前 Rust 社区中,面向用户特别是中小企业实际场景深度优化的、生产完成度最高的通用数据仓库类项目。
开箱即用
。TensorBase 已经支持从数据插入或导入到查询完整数据仓库流程,具备了较高的早期完成度,用户可以从 TensorBase 的 Release 页下载相关
linux
环境下的二进制文件,进行尝试。(
windows
10 的 WSL2 目前应该也可以使用)
兼容 ClickHouse 协议
。ClickHouse 是一个 C++ 编写的数据仓库。TensorBase 则使用 Rust 语言从头开始实现了一个高性能的 ClickHouse SQL 方言解析器和 TCP 通讯协议栈。ClickHouse TCP 客户端可以无缝连接 TensorBase。
性能为先
。TensorBase 期望通过新的软件和系统
设计
将现代硬件的所有潜力发挥出来。TensorBase 首次在核心链路代码上实现了 “F4”:Copy-free,Lock-free,Async-free,Dyn-free(无动态对象分发)。初步的性能评估显示:在 14.7 亿行的纽约出租车数据集上,TensorBase 的简单查询的性能上已经领先 ClickHouse。
化繁为简
。目前的大数据系统使用非常复杂,即使想运行一个最简单的系统,都需要配置大量难以理解的参数或者安装大量第三方依赖。
对于用户,除了现在已经达成的开箱即用,TensorBase 希望系统在运行时能在自治运行,而不是依赖运维管理员。
对于开发者,TensorBase 希望将贡献门槛降低。整个项目
架构
设计简洁高效(更多信息参见后文),项目外依赖很少,完全重新编译(cargo clean 到 cargo build)的单机时间在 1 分钟之内。(大数据系统或者 C++ 数据库的完整构建时间往往以小时计。)
互联未来
。TensorBase 在核心上改造了
Apache
Arrow 和 DataFusion,无缝支持 Arrow 格式查询、分析和传输。Arrow 格式作为越来越广泛采用的大数据交换中间格式,已经被多个数据库及大数据生态平台所支持。TensorBase 在引擎上兼容 Arrow,未来可以同时支持云原生和云中立场景下的数据仓库体验,提供存储中立的数据湖服务。
三 架构
Base Server
TensorBase 服务接口层。对外提供数据的接口服务,比如数据的写入和查询入口。TensorBase 创造性的实现了世界上第一个非 C++ 的 ClickHouse TCP 协议服务栈,可以支持 ClickHouse 客户端(clickhouse-client 命令行)以及 native 协议语言驱动的直接连接。同时,Base Server 是第一个 async 中立的 Rust 高性能服务器。Base Server 基于改造的 Actix 事件循环,在服务的实现中完全不使用 async,在提供绝佳的可调试性的同时,评测性能也大幅超过基于 tokio 默认 async 表达层的实现。未来可以引入非 tokio 的网络 io 层实现。
Base Meta/Runtime/Storage
TensorBase 的元数据层、运行时层和存储层。在存储层,TensorBase 非经典的列式存储。这其中最重要的,我们给出了一个反重力设计:No LSM。我们不再使用在目前开源数据库及大数据平台流行的 LSM Tree(Log Structured Merge Tree)数据结构。而是使用一种我们自己称之为 Partition Tree 的数据结构,数据直接写入分区文件,在保持
App
end only 写入性能的同时,避免了 LSM 结构的后续 compact 开销。得益于现代 Linux 内核的支持和巧妙的写入设计,我们在用户态(User-space)核心读写链路上不使用任何锁(Lock-free),最大程度的发挥了高并发网络服务层所提供的能力,可以提供超高速数据写入服务。
Base Engine
TensorBase 的引擎层。TensorBase 使用改造过的 Apache Arrow 和 DataFusion,并创造性的将底层存储适配到 Arrow 格式,实现了 Zero Copy 的数据查询。当然,目前的适配性存储策略,还只算是一个现在进行中的次优解,TensorBase 未来会对存储层进行持续迭代,提供更多与时俱进的优化。同时,TensorBase 也将进一步地优化帮助 Arrow/DataFusion 社区优化其查询引擎的性能,和社区一起成长。
其他
TensorBase 还有一些基础性的组件,比如:
base,通用工具库;
lang,语言层(目前主要实现一个 ClickHouse 兼容解析和表示层)。
lightjit,类表达式 JIT 引擎,未来可扩展至高性能和安全可控的用户定义函数 UDF(User Defined Functions)层。 TensorBase 未来将进一步开发和开放自己的高性能基础件,为 Rust 社区贡献一些独特的高性能可复用基础设施。
注意,架构图中的虚线连接尚未实现,这是一个全景式的架构蓝图。
Tags:
Rust
点击:() 评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Rust 标准库 1.77.2 发布,修复高危漏洞
IT之家 4 月 10 日消息,Rust 的优势之一就是安全,但这并不代表该编程语言就没有漏洞。安全专家近日发现了追踪编号为 CVE-2024-24576 的漏洞,攻击者利用 Rust 标准库中的一个安...
【详细内容】
2024-04-10 Search:
Rust
点击:(4) 评论:(0)
加入收藏
Rust 写脚手架,Clap你应该知道的二三事
有感而发最近,在和前端小伙伴聊天发现,在2024年,她们都有打算入局Rust学习的行列。毕竟前端现在太卷了,框架算是走到「穷途末路」了,无非就是在原有基础上修修补补。所有他们想在...
【详细内容】
2024-03-11 Search:
Rust
点击:(20) 评论:(0)
加入收藏
Rust 最受欢迎的这些库
今天分享主题是,关于一些值得注意的 Rust 库,这些库可以根据它们的功能和在编码中的受欢迎程度进行选择。什么是 Rust 库?在 Rust 中,常被称为 “crate” 的库,是一个打包的单元...
【详细内容】
2024-02-19 Search:
Rust
点击:(50) 评论:(0)
加入收藏
在 Rust 编程中使用泛型
本文的内容将涉及泛型定义函数、结构体、枚举和方法, 还将讨论泛型如何影响代码性能。1.摘要Rust中的泛型可以让我们为像函数签名或结构体这样的项创建定义, 这样它们就可以...
【详细内容】
2024-01-09 Search:
Rust
点击:(89) 评论:(0)
加入收藏
在 Rust 编程中使用多线程
编程语言有一些不同的方法来实现线程,而且很多操作系统提供了创建新线程的 API。Rust 标准库使用 1:1 线程实现,这代表程序的每一个语言级线程使用一个系统线程。1. Rust线程...
【详细内容】
2024-01-07 Search:
Rust
点击:(78) 评论:(0)
加入收藏
你应该知晓的 Rust Web 框架
前言在之前的用 Rust 搭建 React Server Components 的 Web 服务器我们利用了Axum构建了RSC的服务器。也算是用Rust在构建Web服务上的小试牛刀。虽然说Axum在Rust Web应用中...
【详细内容】
2023-12-07 Search:
Rust
点击:(164) 评论:(0)
加入收藏
解密 Python 如何调用 Rust 编译生成的动态链接库
楔子Rust 让 Python 更加伟大,随着 Rust 的流行,反而让 Python 的生产力提高了不少。因为有越来越多的 Python 工具,都选择了 Rust 进行开发,并且性能也优于同类型的其它工具。...
【详细内容】
2023-11-29 Search:
Rust
点击:(189) 评论:(0)
加入收藏
一篇学会 Rust 内存布局
整型,浮点型,struct,vec!,enum 本文是对 Rust内存布局[1] 的学习与记录 struct A { a: i64, b: u64,}struct B { a: i32, b: u64,}struct C { a: i64, b:...
【详细内容】
2023-11-28 Search:
Rust
点击:(113) 评论:(0)
加入收藏
Rust 十月就业报告:备受大厂青睐
智能招聘平台 filtra 发布了编程语言 Rust 的 10 月就业报告,相比 9 月的462 条招聘信息,10 月略微下降到了 460 条,但雇主数量略有增长,整体而言,Rust 的就业形式处于比较平稳的...
【详细内容】
2023-11-15 Search:
Rust
点击:(203) 评论:(0)
加入收藏
Rust 变量,你学会了吗?
Rust 是一门强调安全、并发、高效的系统编程语言。无 GC 实现内存安全机制、无数据竞争的并发机制、无运行时开销的抽象机制,是 Rust 独特的优越特性。 它声称解决了传统 C...
【详细内容】
2023-11-01 Search:
Rust
点击:(242) 评论:(0)
加入收藏
▌简易百科推荐
向量数据库落地实践
本文基于京东内部向量数据库vearch进行实践。Vearch 是对大规模深度学习向量进行高性能相似搜索的弹性分布式系统。详见: https://github.com/vearch/zh_docs/blob/v3.3.X/do...
【详细内容】
2024-04-03 京东云开发者 Tags:
向量数据库
点击:(5) 评论:(0)
加入收藏
原来 SQL 函数是可以内联的!
介绍在某些情况下,SQL 函数(即指定LANGUAGE SQL)会将其函数体内联到调用它的查询中,而不是直接调用。这可以带来显著的性能提升,因为函数体可以暴露给调用查询的规划器,从而规划器...
【详细内容】
2024-04-03 红石PG 微信公众号 Tags:
SQL 函数
点击:(5) 评论:(0)
加入收藏
如何正确选择NoSQL数据库
译者 | 陈峻审校 | 重楼Allied Market Research最近发布的一份报告指出,业界对于NoSQL数据库的需求正在持续上升。2022年,全球NoSQL市场的销售额已达73亿美元,预计到2032年将达...
【详细内容】
2024-03-28 51CTO Tags:
NoSQL
点击:(14) 评论:(0)
加入收藏
为什么数据库连接池不采用 IO 多路复用?
这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用DB时,还是经常性采用c3p0,tomcat connection pool等技术来与DB连接,哪怕整个程序已经变成以...
【详细内容】
2024-03-27 dbaplus社群 Tags:
数据库连接池
点击:(13) 评论:(0)
加入收藏
八个常见的数据可视化错误以及如何避免它们
在当今以数据驱动为主导的世界里,清晰且具有洞察力的数据可视化至关重要。然而,在创建数据可视化时很容易犯错误,这可能导致对数据的错误解读。本文将探讨一些常见的糟糕数据可...
【详细内容】
2024-03-26 DeepHub IMBA 微信公众号 Tags:
数据可视化
点击:(7) 评论:(0)
加入收藏
到底有没有必要分库分表,如何考量的
关于是否需要进行分库分表,可以根据以下考量因素来决定: 数据量和负载:如果数据量巨大且负载压力较大,单一库单一表可能无法满足性能需求,考虑分库分表。 数据增长:预估数据增长...
【详细内容】
2024-03-20 码上遇见你 微信公众号 Tags:
分库分表
点击:(15) 评论:(0)
加入收藏
在 SQL 中写了 in 和 not in,技术总监说要炒了我……
WHY?IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢?1、效率低项目中遇到这么个情况:t1表 和 t2表 都是150w条数据,600M的样子,都不算大。但是这样一句查询 ↓select *...
【详细内容】
2024-03-18 dbaplus社群 Tags:
SQL
点击:(6) 评论:(0)
加入收藏
应对慢SQL的致胜法宝:7大实例剖析+优化原则
大促备战,最大的隐患项之一就是慢SQL,对于服务平稳运行带来的破坏性最大,也是日常工作中经常带来整个应用抖动的最大隐患,在日常开发中如何避免出现慢SQL,出现了慢SQL应该按照什...
【详细内容】
2024-03-14 京东云开发者 Tags:
慢SQL
点击:(5) 评论:(0)
加入收藏
过去一年,我看到了数据库领域的十大发展趋势
作者 | 朱洁策划 | 李冬梅过去一年,行业信心跌至冰点2022 年中,红衫的一篇《适应与忍耐》的报告,对公司经营提出了预警,让各个公司保持现金流,重整团队,想办法增加盈利。这篇报告...
【详细内容】
2024-03-12 InfoQ Tags:
数据库
点击:(27) 评论:(0)
加入收藏
SQL优化的七个方法,你会哪个?
一、插入数据优化 普通插入:在平时我们执行insert语句的时候,可能都是一条一条数据插入进去的,就像下面这样。INSERT INTO `department` VALUES(1, '研发部(RD)', '...
【详细内容】
2024-03-07 程序员恰恰 微信公众号 Tags:
SQL优化
点击:(20) 评论:(0)
加入收藏
推荐资讯
16个Redis常见使用场
一篇文章教会你使用Py
聊聊Rust里面的数据类
C++中的外部模板及其
一篇文章带你了解Pyth
网络安全行业的春天何
Linux获取Redis 性能
Redis与缓存一致性问
相关文章
为什么 Python、Go 和 Rust 都不支持三元运
后端队友选择Rust,爽到了!
从 C++ 切换到 Rust,工作体验大幅提升!
Go/Rust挑战Java/Python地位
Rust排序算法:选择排序、冒泡排序、插入排序
十年 Python 程序员,初次尝试 Rust:“非常优
美国国家安全局督促弃用 C/C++,使用更安全的
Rust原子类型和内存排序
在 Linux 新版内核中的 Rust 初探,原来是这
谷歌推出 KataOS 开源操作系统,基于 Rust
“Rust for Linux”:用 Rust 编写的驱动程序
5 个用 Rust 制作的 CLI 工具,用于改进已经
相比高人气的 Rust、Go,为何 Java、C 在工具
RustDesk - 免费开源的远程控制软件,流畅不
从高级程序员的角度来看,Rust 基础知识
2022年选择哪个Rust Web框架 - kerkour
Rust 核心团队“有毒”
探索 Rust 异步简化编程
让Android更安全 谷歌推荐开发者使用Rust编
Rust 与信息学三定律
站内最新
栏目相关
·
向量数据库落地实践
·
原来 SQL 函数是可以内联的!
·
如何正确选择NoSQL数据库
·
为什么数据库连接池不采用 IO 多路复用?
·
八个常见的数据可视化错误以及如何避免它们
·
到底有没有必要分库分表,如何考量的
·
在 SQL 中写了 in 和 not in,技术总监说要炒了我……
·
应对慢SQL的致胜法宝:7大实例剖析+优化原则
·
过去一年,我看到了数据库领域的十大发展趋势
·
SQL优化的七个方法,你会哪个?
·
让数据库和缓存数据保持一致的三种策略
·
为什么高性能场景选用Postgres SQL 而不是 MySQL
·
一篇文章,彻底理解数据库操作语言:DDL、DML、DCL、TCL
·
如何使用Python、Apache Kafka和云平台构建健壮的实时数据管道
·
一文读懂:什么是数据库,它到底有啥用?
·
一个流行的支持超多数据库的ORM库
·
简易百科之什么是向量数据库
·
通用数据湖仓一体架构正当时
·
腾讯云把向量数据库“卷”到哪一步了?
·
纯向量数据库和向量插件都有局限,那未来发展有其他方向吗?
站内热门
相关头条
·
14个开源免费数据库监控工具,MySQL、Oracle、Postgres或MSSQL
·
Kafka 正在成为新一代数据湖?
·
十种数据库缓存相关的技术和机制
·
SQL中的开窗函数
·
放弃数据库,改用Kafka!
·
聊聊分库分表的四种方案
·
AI是否会颠覆数据库运维?AI4DB有哪些主流方向和路线?
·
聊聊SQL中的分组集
·
数据库透明加密技术大总结
·
盘点20多个强大且免费的数据源,任何人都能以此来构建AI
·
DBCP数据库连接打满原因分析
·
几个基于CDC实时同步数据的开源组件,让你的数据同步更实时
·
SQL的基本语法和语句分类,你学会了吗?
·
SQL的NULL值和处理方法
·
Spring Boot、Druid、MyBatis Plus和Sharding JDBC分表技术详解
·
分布式数据库架构及发展
·
什么是网络数据库?
·
一篇带你了解数据库索引的类型
·
系统上线前,SQL脚本的九大坑
·
一文详解Mongodb数据库,适合大数据存储
站内头条
新闻
下载
图库
FLASH
电影
商品
文章
分类信息
高级搜索
网站首页
|
关于我们
|
服务条款
|
广告服务
|
联系我们
|
网站地图
|
免责声明
|
手机版
Copyright @
简易百科
V 2.0 ©2020-2022
ISOLVES.com
|
电脑百科
|
生活百科
|
手机百科
|
简易号
京ICP备14042104号
京公网安备 11010802035086号