分享嘉宾陈磊

开源数据库Pika项目PMC核心人员

整理墨天轮社区

导读

大家好,今天我分享的主题是:KV数据库,云时代的文件存储。

随着AI和机器学习等技术的发展,数据演变为了十分宝贵的资源,数据存储也是非常活跃的领域。现在踊跃出很多数据库,以及数据存储的高质量开源项目。

那么像键值数据库这样较为老牌的存储的类型 在云时代下是否还有价值,KV数据库是否会被其他的数据库替代呢?借着今天分享的机会,我想与大家讨论这个问题,同时也谈谈我对以上的思考。

注:KV数据库 即 键-值数据库(Key–value database)

有关 Pika

1、Pika简介

Pika 属于分布式NoSQL数据库,初创团队是360基础架构,于2015年开源(开源地址:https://github.com/Qihoo360/pika),并捐赠给了开放原子开源基金会。

2021年6月,Pika成为开放原子开源基金会的一个孵化项目之一,正式走向了社区自治



图1 Pika 简介

2、Pika发展过程



图2 发展过程及github上的star trend

什么是键值数据库

1、键值数据库定义

首先键值数据库可以从这三个方面来理解。

  • 键值数据库是一种非关系数据库,它使用简单的键值方法来存储数据。
  • 键值数据库将数据存储为键值对集合,其中键作为唯一标识符。键和值都可以

    是从简单对象到复杂复合对象的任何内容。
  • 键值数据库是高度可分区的,并且允许以其他类型的数据库无法实现的规模进

    行水平扩展。

如果将键值数据库的概念外扩,就变成了广义的“键值存储”的概念,比如图片存储、小文件存储、对象存储。

2、键值数据库分类

键值数据库内部分为四大类,缓存&持久化、商业&开源、有序&无序、大Value&小Value,侧面说明该领域是有需求的,每个分类中有很好的例子存在。



图3 KV数据库内部分类

键值数据库的优势

那么键值数据库和其他数据库存储相比,是否有优势呢?我将数据库存储分为了三个大类,关系数据库、NoSQL、数据存储。KV数据库属于nosql这一类。



图4 KV在数据库与存储中的位置

这里我尝试引入“递弱代偿”的理论,应用于数据库领域中,便是:越简单的系统适用场景越宽广,越复杂的系统适用场景越少

对于KV数据库而言,它的逻辑简单,解决问题更灵活,适用的场景更广;而对于专业性强的数据库(关系数据库 & NewSQL & 搜索数据库 & 图数据库 & 向量数 据库等):解决的问题更专业,适用场景更少。

1、可构建多种应用场景

接下来将从几个方面来举例分析键值数据库在理论中的应用情况。



图5 KV数据库可构建多种应用场景

KV数据库本身提供多种接口。它支持不同的如KEY-STRING、KRY-HASH、 KEY-LIST的接口,满足不同场景的需求。

比如KEY-STRING的接口应用于搜索推荐、机器学习;;KRY-HASH 接口应用于比较复杂的业务场景,比如用户信息、好友推荐、对象存储元数据; KEY-LIST构建一个简单且高效的消息中间件,使应用程序能够很容易的进行异步的扩展,也可以打造一个分布式的任务系统。

基于KV数据库可以做简单的编程,用户可以通过简单的编程来适配他的业务。

2、可构建其它数据库和基础软件

目前很多的基础设施和数据库,是基于KV数据库来构建的,比如关系数据库,向量数据库,图数据库,流数据库,分析数据库,消息队列。

因此kV数据库的生存能力与价值是很大的,可以是构建其他数据库的基础。



图6 可基于KV数据库构建其它数据库和基础软件

KV数据库,云时代下的文件存储

通过刚才的例子,可能有朋友会认为,KV数据库就等于通用文件存储,它们是否是一样的呢?

这里我从解决问题、使用场景、开发效率、开发难度、云支持五个角度对两者做了比较。



图7 通用文件存储 VS KV存储

在云的时代下,大家在存储数据的过程中已经抛弃掉了文件存储的使用工具,开始通过数据库解决。数据库的分类众多,如何满足不同用户不限的需求与特定的场景?

在这样的背景下,可以通过KV数据库或者KV存储来解决用户在自定义的一些逻辑,从而满足他们的场景。

在未来的云上中,除了特定的场景以外,KV数据库便是除特定场景以外的补充,所以我认为KV在未来的云上中非常有前景。因此我们要解决的问题就是:如何通过KV数据库更好地满足开发者的开发效率、开发成本、使用成本的问题

以上就是我的分享。感谢聆听

更多精彩内容,欢迎大家观看现场视频回放与会议资料

视频回放:https://www.modb.pro/video/6183

会议资料:https://www.modb.pro/doc/58204


墨天轮,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、活动直播、在线课程、文档阅览、资源下载、知识分享及在线运维为一体的统一平台,持续促进数据领域的知识传播和技术创新。

关注官方公众号: 墨天轮、 墨天轮平台、墨天轮成长营、数据库国产化 、数据库资讯

墨天轮访谈 | Pika数据库陈磊:云时代下,键值数据库是否会被替代?的更多相关文章

  1. MySQL数据库的优化(下)MySQL数据库的高可用架构方案

    MySQL数据库的优化(下)MySQL数据库的高可用架构方案 2011-03-09 08:53 抚琴煮酒 51CTO 字号:T | T 在上一篇MySQL数据库的优化中,我们跟随笔者学习了单机MySQ ...

  2. SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?

    刚刚过去的在巴塞罗那举行的2019 SAP TechEd,SAP照例向全球广大的SAP生态圈从业者们传达了一些重要的信息,其中一条为:Building Extensions for the Intel ...

  3. 备份、恢复数据库(Dos命令提示符下)_数据库安装工具_连载_1

    Dos命令提示符下: 备份.恢复数据库,是不是很简单啊,是的,当你20年不碰MS SQL,是不是又忘记了呢,答案也许也是吧,^_^虽然在程序中执行SQL代码时,很讨厌那个Go,正如MySQL中那个分号 ...

  4. Java -- JDBC 获取数据库自动 生成的主键值

    public class Demo4 { /* create table test1 ( id int primary key auto_increment, name varchar(20) ); ...

  5. 浅谈Redis数据库的键值设计(转)

    丰富的数据结构使得redis的设计非常的有趣.不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与.redis的DBA需要熟悉 ...

  6. 浅谈REDIS数据库的键值设计(转)

    add by zhj: 关系数据库表的一条记录可以映射成Redis中的一个hash类型,其实数据库记录本来就是键值对.这样,要比本文中的键设计用更少的键,更节省内存,因为每个键除了它的键值占用内存外, ...

  7. key-value键值型数据库:Redis

    key-value键值型数据库:Redis redis Redis是in-memory型(内存型)的键值数据库,数据在磁盘上是持久的,键类型是字符串,值类型是字符串.字符串集合(Set).sorted ...

  8. Redis源码解析:09redis数据库实现(键值对操作、键超时功能、键空间通知)

    本章对Redis服务器的数据库实现进行介绍,说明Redis数据库相关操作的实现,包括数据库中键值对的添加.删除.查看.更新等操作的实现:客户端切换数据库的实现:键超时相关功能的实现.键空间事件通知等. ...

  9. ZeroMQ:云时代极速消息通信库

    ZeroMQ:云时代极速消息通信库(大规模|可扩展|低成本|高效率解决之道,大规模分布式|多线程应用程序|消息传递架构构建利器) [美]Pieter Hintjens(皮特.亨特金斯)著   卢涛 李 ...

  10. OneAPM:打造云时代的应用性能管控平台

    在2015年大连市CIO信息化年会的现场,记者与OneAPM东北区总经理佟维针对云时代的企业系统应用性能的管理控制进行了简短交流.北京蓝海讯通科技股份有限公司,即OneAPM是中国基础软件领域的新兴领 ...

随机推荐

  1. RAG+AI工作流+Agent:LLM框架该如何选择,全面对比MaxKB、Dify、FastGPT、RagFlow、Anything-LLM,以及更多推荐

    RAG+AI工作流+Agent:LLM框架该如何选择,全面对比MaxKB.Dify.FastGPT.RagFlow.Anything-LLM,以及更多推荐 1.MaxKB MaxKB = Max Kn ...

  2. 【设计模式 Design Pattern】【UML】建模语言

    什么是UML图? UML-Unified Modeling Language 统一建模语言,又称标准建模语言. 是用来对软件密集系统进行可视化建模的一种语言. UML的定义包括UML语义和UML表示法 ...

  3. 【Linux】真机安装CentOS8

    先制作启动U盘 https://www.cnblogs.com/mindzone/p/12961506.html 插入电脑,开机[这里我是把电脑硬盘格式化了,不会在电脑磁盘上找到任何系统,直接跳到启动 ...

  4. PID入门视频课程分享: 单片机 > PID课程:一堂课帮你搞定PID算法 > pid算法

    推荐入门视频: <PID课程:一堂课帮你搞定PID算法> 收费版: http://t.elecfans.com/v/1399.html 免费版: 地址: https://www.bilib ...

  5. 人工智能Python代码的补全利器 Kite 安装

    代码补全应用kite主要对Python代码进行补全,或者说kite是针对现在的人工智能Python代码(pytorch.tensorflow)等做补全的,而且在Python代码补全上kite可以说是现 ...

  6. ubuntu22.04 终端显示数字剑雨

    数字剑雨是读大学时候常用的屏保,这些年基本也再没有用过,不经意间想到了这个曾经的屏保,发现Ubuntu原版的桌面系统是没有屏保的,又不想换桌面系统,想想还是单独安装一下这个数字剑雨吧. 在Ubuntu ...

  7. 【树的直径 求树中距离跟阶段点最远的点】CodeForce1822F.md

    CF1822F-Problem - F - Codeforces 题目大意:无根树的每条边为k,定义操作:移动根节点为把当前的根ROOT移动到相邻节点,每次代价为c, 定义成本=从ROOT出发到达的最 ...

  8. Django框架创建运行最小程序过程记录

    基于 python语言 Django web框架下 用pycharm创建,修改,运行 最简单程序.旨在过程 ========================================== 步骤一 ...

  9. SMU 2024 spring 天梯赛自主训练1

    SMU 2024 spring 天梯赛自主训练1 7-1 宇宙无敌大招呼 - SMU 2024 spring 天梯赛自主训练1 (pintia.cn) #include <bits/stdc++ ...

  10. 前端使用 Konva 实现可视化设计器(21)- 绘制图形(椭圆)

    本章开始补充一些基础的图形绘制,比如绘制:直线.曲线.圆/椭形.矩形.这一章主要分享一下本示例是如何开始绘制一个图形的,并以绘制圆/椭形为实现目标. 请大家动动小手,给我一个免费的 Star 吧~ 大 ...