Crate.io 分布式的Sql数据库

Copy https://crate.io/overview

OverviewUse CasesDocumentationDownloadBlog

OVERVIEW

WHAT IS CRATE?
Crate is an open source, highly scalable, shared-nothing distributed SQL database. Crate offers the scalability and performance of a modern No-SQL database with the power of Standard SQL. Crate’s distributed SQL query engine lets you use the same syntax that already exists in your applications or integrations, and have queries seamlessly executed across the crate cluster, including any aggregations, if needed.
Crate is masterless and simple to install, operate and use. It handles transactional and analytical needs in one single database. Crate has been designed from the ground up to support the huge scale of Web, mobile and IoT applications. Love containers? Crate runs perfectly as stateful container.

High Level Architecture
Crate as stateful container
Crate vs RDMBS
Crate vs other databases
Crate vs MySQL
Crate vs MongoDB
Crate vs MemSQL
Crate vs Elasticsearch
Crate vs Vertica
Crate vs Cassandra
Crate vs CockroachDB
Crate vs SQL on Hadoop

Core Features


Scalable
Crate is horizontally scalable, meaning that you can grow it by adding machines, without a need to re-shuffle, re-index or move data around. Its shared-nothing and masterless architecture means that all nodes are identical, scaling from single-node to multiple nodes with a simple click.

Distributed SQL & Real-time search
Crate’s distributed SQL query engine takes a standard SQL query, deconstructs it and executes it in a distributed fashion on the crate cluster (think mapreduce in real time). It then collects the results and performs aggregations, if needed, resulting in super-fast query performance, with only your original SQL query to go by. Crate offers powerful native full text search features and its distributed SQL query engine allows search and aggregations (group by…) in milliseconds.

Highly available
Loosing disks, a node, or even multiple nodes in a Crate cluster are automatically repaired. No operational effort required. Crate´s masterless, shared nothing architecture (all nodes are equal, no master, no roles) also makes scaling up and down super easy. Tweakable automatic sharding and replication allow worry-free backend operations. Self-healing after node failure and rolling updates make sure your queries run always and forever. New nodes join automatically the cluster, and the data gets balanced among available nodes. If parts of data get lost, Crate will re-create the data from the replication shards automatically.

Real-time ingestion
Most analytic workloads get ingested in batch loads, often with transactional locks and other overhead. Crate allows lock-free ingestion with massive write performance (e.g. with peaks of up to 4.5mio (IoT) inserts per second, or 40.000+ inserts per second per node on commodity hardware). It still supports millisecond-speed full text search queries, even when the writes are in action.

Any data and BLOBs
Crate´s columnar store supports both relational data, as well as nested json-documents, where all nested attributes can be included in any SQL command. In addition, Crate provides BLOB storage so you can persistently store and retrieve BLOBs – typically pictures, videos or large unstructured files - providing a fully distributed cluster solution for BLOB storage.

Timeseries
Since Crate allows the (automatic) creation of partitions (virtual tables) of any table, it effectively gives you separate partitions under the hood, with high performance. They can be queried, moved or deleted like a single table. This makes it perfect for timeseries data (partition by hour, day, week…) and other means of optimizing sharded data.

Geospatial
Store and query geographical information of many kinds using the geo_point and geo_shape types. For fast results use geographic indices with given precision as resolution, or run exact queries with scalar functions like intersects, within, distance.

Dynamic schemas
Contrary to many other scale-out solutions Crate´s schemas are totally flexible. You can add columns anytime without any penalty or re-indexing requirements. This is great for agile development and fast deployments.

Transactional
Crate is eventually consistent but offers transactional semantics. Crate is consistent at row level, so each row is either fully written or not. By offering read-after-write consistency we allow synchronous real time access to single records, immediately after they were written.Example: after posting a form and having written its record, the record will be consistent and immediately available when selecting this primary key across the whole cluster. However if you want to calculate a sum (or other aggregation query) this record may not yet be included in the aggregation, but only a few milliseconds later. Even though Crate does not support ACID transactions with rollbacks etc, it offers Optimistic Concurrency Control by providing an internal versioning, that allows detection and resolution of write conflicts. Just a note: “eventually consistent” means that it is “consistent after a while” and not “perhaps it is consistent and perhaps it isn’t”. Crate is always consistent, it just may take a few milliseconds for that to happen.

Backups
Create repositories (on fs, hdfs, s3, url) to store, manage and restore snapshots. Incremental snapshots can be created anytime and represent the state of the tables in a Crate cluster at the time the Snapshot was created, and can be restored into the cluster anytime.

Open and flexible
Plugin-Architecture - Want to be faster than Crate´s roadmap, or require some application specific functionality? Expand the functionality of Crate by writing your own Plugins.
Microservices - The masterless nature of Crate´s architecture allow to run it perfect in ephemeral environments such as Docker, Kubernetes, CoreOS, Mesosphere. Crate is like ether - an omnipresent, persistent layer for your data, serving all your app containers. Scale your database with your app servers.
Use any language - With drivers provided by Crate (JDBC, Ruby, Python, PHP, ODBC etc.) and drivers from the community (Ado, Erlang etc.) you can use almost any language to work with Crate.
Open Source - Crate is fully written in Java and licensed under the Apache 2.0 License and in addition offers Enterprise licensing (SLA, Indemnification, Bug fix escalation etc).

What Can I Use Crate For?
Enterprises and startups have deployed Crate clusters to power real time analytics (take decisions as data comes in), real time dashboards (network traffic, security events), IoT-backends (sensor data, telemetry data), ad-tech (web traffic), telecom applications (call logs, CDRs) and user-facing Web and Mobile apps (large tables with fast growing and dynamic data).
Our main use-case are:
IoT backends, realtime analytics / interactive realtime dashboards and SQL on Elasticsearch
Generally speaking Crate fits well if:
You require a relational SQL database with document support, highly available and horizontally scalable
Your applications & dashboards require fast search and aggregations in a dynamic environment with fast changing queries.
You need to query data in real time while writing data simultaneously.
You have huge amounts of data (trillions of records in hundreds of TBs)
Your database must be highly available never go down
You want to start small and scale out horizontally as you grow
You want to be faster, more agile and save money on licenses and hardware

Crate isn’t a good choice if you have strong consistency requirements (ACID) and very complex relational schemas (e.g. highly normalized with many tables and many joins).

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,783评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,360评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,942评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,507评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,324评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,299评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,685评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,358评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,652评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,704评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,465评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,318评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,711评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,991评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,265评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,661评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,864评论 2 335

推荐阅读更多精彩内容