kv数据库和json(开源kv数据库)

  • 1、哪种python json框架做iOS APP后台服务最好
  • 2、数据存在数据库里不是更好吗?为什么要存在json里呢?
  • 3、json能代替数据库吗
  • 4、技术选型 – OLAP大数据技术哪家强?
  • 5、数据存储到服务器上用JSON格式比较好还是直接数据库比较好
  • 6、开源高性能KV数据库

如果你只需要一个可以返回json格式数据的python框架,那么python所有的web框架都是可以的,django,flask,webpy,bottle等等都是可以的,选一个你熟悉的就可以了。

如果解决了您的问题请采纳!

如果未解决请继续追问

难道是以JSON的格式储存,减少数据库访问,加快效率。访问数量少看不出来。当访问量大的时候,相对减轻服务器的压力。貌似是这样。

少量的数据可以用json来储存,但说到代替数据库,那就有点吓人了,当个笑话说说可以,千万别传出去。

Lambda架构的核心理念是“流批一体化”,因为随着机器性能和数据框架的不断完善,用户其实不关心底层是如何运行的,批处理也好,流式处理也罢,能按照统一的模型返回结果就可以了,这就是Lambda架构诞生的原因。现在很多应用,例如Spark和Flink,都支持这种结构,也就是数据进入平台后,可以选择批处理运行,也可以选择流式处理运行,但不管怎样,一致性都是相同的。

Kylin

Kylin的主要特点是预计算,提前计算好各个cube,这样的优点是查询快速,秒级延迟;缺点也非常明显,灵活性不足,无法做一些 探索 式的,关联性的数据分析。

适合的场景也是比较固定的,场景清晰的地方。

ClickHouse

Clickhouse由俄罗斯yandex公司开发。专为在线数据分析而设计。

Clickhouse最大的特点首先是快 ,为了快采用了列式储存,列式储存更好的支持压缩,压缩后的数据传输量变小,所以更快;同时支持分片,支持分布式执行,支持SQL。

ClickHouse很轻量级,支持数据压缩和最终数据一致性,其数据量级在PB级别。

另外Clickhouse不是为关联分析而生,所以多表关联支持的不太好。

同样Clickhouse不能修改或者删除数据,仅能用于批量删除或修改。没有完整的事务支持,不支持二级索引等等,缺点也非常明显。

与Kylin相比ClickHouse更加的灵活,sql支持的更好,但是相比Kylin,ClickHouse不支持大并发,也就是不能很多访问同时在线。

总之ClickHouse用于在线数据分析,支持功能简单。CPU 利用率高,速度极快。最好的场景用于行为统计分析。

Hive

Hive这个工具,大家一定很熟悉,大数据仓库的首选工具。可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能。

主要功能是可以将sql语句转换为相对应的MapReduce任务进行运行,这样可能处理海量的数据批量,

Hive与HDFS结合紧密,在大数据开始初期,提供一种直接使用sql就能访问HDFS的方案,摆脱了写MapReduce任务的方式,极大的降低了大数据的门槛。

当然Hive的缺点非常明显,定义的是分钟级别的查询延迟,估计都是在比较理想的情况。 但是作为数据仓库的每日批量工具,的确是一个稳定合格的产品。

Presto

Presto极大的改进了Hive的查询速度,而且Presto 本身并不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询,支持包括复杂查询、聚合、连接等等。

Presto没有使用MapReduce,它是通过一个定制的查询和执行引擎来完成的。它的所有的查询处理是在内存中,这也是它的性能很高的一个主要原因。

Presto由于是基于内存的,缺点可能是多张大表关联操作时易引起内存溢出错误。

另外Presto不支持OLTP的场景,所以不要把Presto当做数据库来使用。

Presto相比ClickHouse优点主要是多表join效果好。相比ClickHouse的支持功能简单,场景支持单一,Presto支持复杂的查询,应用范围更广。

Impala

Impala是Cloudera 公司推出,提供对 HDFS、Hbase 数据的高性能、低延迟的交互式 SQL 查询功能。

Impala 使用 Hive的元数据, 完全在内存中计算。是CDH 平台首选的 PB 级大数据实时查询分析引擎。

Impala 的缺点也很明显,首先严重依赖Hive,而且稳定性也稍差,元数据需要单独的mysql/pgsql来存储,对数据源的支持比较少,很多nosql是不支持的。但是,估计是cloudera的国内市场推广做的不错,Impala在国内的市场不错。

SparkSQL

SparkSQL的前身是Shark,它将 SQL 查询与 Spark 程序无缝集成,可以将结构化数据作为 Spark 的 RDD 进行查询。

SparkSQL后续不再受限于Hive,只是兼容Hive。

SparkSQL提供了sql访问和API访问的接口。

支持访问各式各样的数据源,包括Hive, Avro, Parquet, ORC, JSON, and JDBC。

Drill

Drill好像国内使用的很少,根据定义,Drill是一个低延迟的分布式海量数据交互式查询引擎,支持多种数据源,包括hadoop,NoSQL存储等等。

除了支持多种的数据源,Drill跟BI工具集成比较好。

Druid

Druid是专为海量数据集上的做高性能 OLAP而设计的数据存储和分析系统。

Druid 的架构是 Lambda 架构,分成实时层和批处理层。

Druid的核心设计结合了数据仓库,时间序列数据库和搜索系统的思想,以创建一个统一的系统,用于针对各种用例的实时分析。Druid将这三个系统中每个系统的关键特征合并到其接收层,存储格式,查询层和核心体系结构中。

目前 Druid 的去重都是非精确的,Druid 适合处理星型模型的数据,不支持关联操作。也不支持数据的更新。

Druid最大的优点还是支持实时与查询功能,解约了很多开发工作。

Kudu

kudu是一套完全独立的分布式存储引擎,很多设计概念上借鉴了HBase,但是又跟HBase不同,不需要HDFS,通过raft做数据复制;分片策略支持keyrange和hash等多种。

数据格式在parquet基础上做了些修改,支持二级索引,更像一个列式存储,而不是HBase schema-free的kv方式。

kudu也是cloudera主导的项目,跟Impala结合比较好,通过impala可以支持update操作。

kudu相对于原有parquet和ORC格式主要还是做增量更新的。

Hbase

Hbase使用的很广,更多的是作为一个KV数据库来使用,查询的速度很快。

Hawq

Hawq是一个Hadoop原生大规模并行SQL分析引擎,Hawq采用 MPP 架构,改进了针对 Hadoop 的基于成本的查询优化器。

除了能高效处理本身的内部数据,还可通过 PXF 访问 HDFS、Hive、HBase、JSON 等外部数据源。HAWQ全面兼容 SQL 标准,还可用 SQL 完成简单的数据挖掘和机器学习。无论是功能特性,还是性能表现,HAWQ 都比较适用于构建 Hadoop 分析型数据仓库应用。

将Json格式的数据保存到数据库本来就是很奇葩的做法。

Json更多的时候用于数据的传输,尤其是程序后端与前台界面之间进行交互。

功能支持

使用说明

快速上手

重打开或创建一个数据库

注册当TTL超时删除事件通知

插入一条记录,(当重复Put同key时操作等同于更新内容操作)

设置一条已存在记录并8秒后超时自动删除

删除一条记录

性能

插入队列压力测试

300,0005865ns/op516B/op9allocs/op

取出队列压力测试

200,00014379ns/op1119B/op20allocs/op

KET VALUE 集合操作

import

重打开或创建一个数据库

注册当TTL超时删除事件通知

插入一条记录,(当重复Put同key时操作等同于更新内容操作)

插入一条记录并设置3秒后超时自动删除

设置一条已存在记录并8秒后超时自动删除

删除一条记录

操量操作(事务) Op为put时操作插入或更新,Op为del时操作删除

指定key取一条记录

返回全库的Key数据

返回所有K,V数据

按key开始位返回后续所有数据

以时间范围查询数据示例

匹配正则表达式为开头的数据

struct对象的相关操作

指定key取一条记录

返回所有记录

按key开始过滤返回

按key范围取数据

插入一条记录struct对象以json保存

指定key取一条记录

返回所有记录

MIX 设计是基于原KV库只有单维度存储方式,从而缺失了二维度的存储方式,所以MIX式库被设计出来

写入 raw

取出一个

查询指定表的字段是否存在

以raw读出表数据

写入及取出object

删除指定表的指定字段

删除整个表所有数据

##创建支持分组的kvdb

写入数据到分组

删除分组

消息队列 (FIFO)[先进先出]原则

import

重打开或创建一个队列数据库

推一个字符串到队列中

推一个对象到队列中

推一个bytes切片到队列中

推一批bytes切片到队列中

取出一条记录,取出成功后记录会被删除

提取一条记录,但不删除原记录

根据偏移量提取记录

更新一个队列原记录bytes类型

更新一个队列原记录字符串类型

更新一个队列原记录对象类型

import

重打开或创建一个分组队列数据库

以对象存储到队列中

以切片存储到队列中

删除指定分组

性能指标

开源地址:

wiki地址:

原创文章,作者:TAVFV,如若转载,请注明出处:https://www.506064.com/n/126618.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
TAVFV的头像TAVFV
上一篇 2024-10-03 23:09
下一篇 2024-10-03 23:09

相关推荐

  • mysql的sql文件太大(sql文件太大怎么打开)

    本文目录一览: 1、如何在mysql中导入/导出超大的sql文本文件 2、sql文件太大,mysql导入报错怎么办 3、mysql数据库 文件过大 如何导入 4、SQL数据库太大怎…

  • 详解JSON换行

    在前端开发中,JSON格式的数据结构是不可避免的。我们经常需要用到JSON来传递数据或者存储数据。在使用JSON的过程中,经常会遇到JSON的换行问题。本文将从多个方面详细阐述JS…

    编程 2024-11-23
  • RFC3550——RTP协议详解

    一、RTP协议概述 RTP(Rеal-timе Transport Protocol)协议是一种用于实时数据传输的协议,它通常用于在IP网络上传输多媒体数据,如音频或视频。RTP协…

    编程 2024-10-12
  • flex-basis属性的用法

    一、flex布局简介 现代网页排版中,使用CSS的flex布局已经成为一种趋势。Flex布局不仅仅可以轻松实现水平、垂直居中的效果,而且还可以让开发者轻松掌握盒模型的五个属性:fl…

    编程 2024-12-02
  • 为什么总是把php和mysql,在php中

    本文目录一览: 1、php为什么弃用了mysql 2、为什么php的mysql 3、为什么php和mysql是绝配 4、为什么PHP+mysql这么受推崇? php为什么弃用了my…

    编程 2024-10-04
  • 深入了解Unprot

    一、概述 Unprot是一个轻量级的内存保护工具。它通过在可执行文件中插入一些技巧性的代码,来保证内存的安全性。与传统的内存保护工具不同,Unprot不依赖于任何特定的平台或编译器…

    编程 2024-12-02
  • Edit Configurations详解

    一、基本介绍 Edit Configurations是一个非常重要的功能,它主要用于在不同的环境下配置各种各样的参数。通过Edit Configurations,我们可以方便地进行…

    编程 2024-11-20
  • Android 开发工程师必备技能:掌握开发流程与构建

    Android开发分为三个阶段:开发、打包和发布。掌握好这三个阶段,才能做好一款优秀的Android应用。本文将从选用开发工具、搭建Android开发环境、版本管理、持续集成、打包…

    编程 2024-11-24
  • java时分秒,java时分秒转换

    本文目录一览: 1、Java 如何把输入的时分秒转换再输出为秒数? 2、java如何获取当前时间 年月日 时分秒 3、JAVA将时分秒格式的时间转化成秒数 Java 如何把输入的时…

    编程 2024-11-21
  • 详细解析:如何删除node_modules

    一、删除node_modules文件夹 删除node_modules文件夹是非常常见的操作,尤其是在你的工程中有许多的依赖包时。当你需要重新安装或更新依赖包时,你就需要删除node…

    编程 2024-12-11

发表回复

登录后才能评论