分享嘉宾陈磊

开源数据库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. RHCA cl210 016 流表 overlay

    Overlay网络是建立在Underlay网络上的逻辑网络 underlay br-int 之间建立隧道 数据流量还是从eth1出去 只有vlan20 是geneve隧道.只有租户网络有子网,子网需要 ...

  2. 全网最适合入门的面向对象编程教程:30 Python的内置数据类型-object根类

    全网最适合入门的面向对象编程教程:30 Python 的内置数据类型-object 根类 摘要: 在 Python 中,所有的类都直接或间接继承自一个根类,这个根类是Object.Object类是 P ...

  3. 人形机器人(humanoid)(双足机器人、四足机器人) —— 硬件测试的方法

    硬件测试的方法: 硬件的稳定性.鲁棒性.为机器人设定好固有的执行策略,然后长时间的让机器人重复执行这些既定好的动作.该种测试方法主要测试硬件的设计是否合理,硬件在长时间的运行中是否可以稳定运行而不是出 ...

  4. MindSpore 如何实现一个线性回归 —— Demo示例

    如何使用 MindSpore  实现一个简单的  线性回归呢??? 根据前面的mindspore的基本操作的学习写出了下面的 一个简单的线性回归算法. import mindspore import ...

  5. 读博期间的宿舍 && 行李打包 —— 大连开发区校区

    =============================================

  6. vim 插件汇总网站

    在网上找到了一个vim插件的汇总网站,上面有对vim插件进行汇总.简介.使用排名等,十分适合vim用户在上面寻找一些可用的插件. 网址: https://vimawesome.com/ 虽然我没有太用 ...

  7. Grafana的仪表盘URL参数设置

    转载请注明出处: 在调试grafana时,需要对grafana进行share的url图表进行一些自定义设置,总结下常用的参数 参考网站:https://grafana.com/docs/grafana ...

  8. kubernetes负载感知调度

    背景 kubernetes 的原生调度器只能通过资源请求来调度 pod,这很容易造成一系列负载不均的问题, 并且很多情况下业务方都是超额申请资源,因此在原生调度器时代我们针对业务的特性以及评估等级来设 ...

  9. 关于为什么使用 ASCII GBK Unicode编码

    关于为什么使用 ASCII GBK Unicode编码 由来:大家都知道计算机最早是美国人为了更加便捷的存储和计算数据发明的,但是呢计算机底层都是硬件,只能存储像0101这样的二进制数据,那美国人为了 ...

  10. PCIe简介

    PCIe简介 Peripheral Component Interconnect Express (PCI),高速串行计算机扩展总线标准,PCIe对外围设备的组织方式是树形结构. 拓扑结构 根: 树的 ...