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閱讀 229,362評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,013評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,346評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,421評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,146評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,534評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,585評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,767評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,318評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,074評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,258評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,828評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,486評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,916評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,156評論 1 290
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,993評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,234評論 2 375

推薦閱讀更多精彩內容