SQL for ElasticSearch—Crate.io简介

来源:互联网 发布:pdf图书下载软件 编辑:程序博客网 时间:2024/06/06 05:29

再次调研这个东西,是为了满足下面的需求:

一张拥有50+字段的表,记录数大概5亿-10亿;需要对每个字段进行模糊搜索,并要求即时响应结果;需要做一些简单的聚合统计;

看到这个需求,肯定想到搜索,那么就是ElasticSearch了。但ES对SQL支持太弱了,因此想使用CrateDB。

CrateDB是什么

 

CrateDB是一个开源的分布式数据库:

  • 底层基于ElasticSearch;
  • 使用SQL处理结构化和非结构化数据;
  • 分布式执行SQL,实时的查询响应,支持Join、聚合和搜索;
  • 可以很方便的扩展;

功能及特性

  • 可扩展性:shared-nothing架构,只需要往集群中增加机器,剩下的rebalance、数据重分布,均由CrateDB自己完成;
  • 高可用性:集群中每一个节点都是一样的,Master通过选举产生,当正在服务的Master挂掉,很快就会选举出新的Master。另外,类似于HDFS,CrateDB中的数据也有副本机制,可以自己设置。
  • 分布式SQL查询:支持查询、关联、聚合、搜索等;其中用于搜索的字段可指定native和full text索引。
  • 良好的数据写入性能:CrateDB中没有事务及锁机制,因此数据写入性能比较好(一个单台节点上可以达到40000+每秒的insert)。另外,在写入时,CrateDB的查询性能不会受到影响。
  • 支持二进制数据存储:BLOB 可存储图片、视频以及超大非结构化文本数据;
  • 动态Schema:可以在已有表中动态增加字段或嵌套的数据结构;
  • 支持Update和Delete;
  • WEB监控页面:可以监控整个集群的健康状态及数据的健康状态;

 

适用场景

  • 具有搜索功能、提供SQL接口、可以水平扩展的数据库;
  • 经济、开源的SQL数据库;
  • 快速的搜索、聚合以及即席查询;
  • 快速的并发读写;
  • 海量数据;
  • 高可用的、用不停机的数据库;

 

不适用场景

  • 强事务要求;
  • 高度规范化(范式)的表以及多表关联;

 

crate

 

之前有文章介绍过Crate的安装:http://lxw1234.com/archives/2015/12/590.htm

官网:https://crate.io/

0 0
原创粉丝点击