Apache Cassandra

Apache Cassandra
Typ NoSQL
Autor Avinash Lakshman [d] a Prashant Malik [d]
Vývojář Apache Software Foundation
Zapsáno v Java [1]
První vydání 2008 a 10. dubna 2012 [1]
Nejnovější verze
Licence Licence Apache 2.0
webová stránka cassandra.apache.org
 Mediální soubory na Wikimedia Commons

Apache Cassandra  je distribuovaný systém správy databází, který patří do třídy systémů NoSQL a je navržen tak, aby vytvářel vysoce škálovatelná a spolehlivá úložiště obrovských datových polí reprezentovaných jako hash.

Zpočátku byl projekt vyvíjen v útrobách Facebooku a v roce 2009 převeden pod křídla Apache Software Foundation , tato organizace projekt nadále rozvíjí. Průmyslová řešení založená na Cassandře byla nasazena k poskytování služeb společnostem jako Cisco , IBM , Cloudkick , Reddit , Digg , Rackspace , Huawei , Netflix , Apple , Instagram , GitHub , Twitter a Spotify . V roce 2011 měl největší serverový cluster obsluhující jednu databázi spravovanou Cassandrou více než 400 strojů a obsahoval více než 300 TB dat [3] .

Napsáno v Javě , implementuje distribuovaný hash systém podobný DynamoDB , který poskytuje téměř lineární škálovatelnost s rostoucím objemem dat. Používá model ukládání dat založený na rodině sloupců , který se liší od systémů jako MemcacheDB , které ukládají data pouze v páru klíč-hodnota , schopností ukládat hash s několika úrovněmi vnoření. Patří do kategorie DBMS odolné proti chybám: data umístěná v databázi jsou automaticky replikována do několika uzlů distribuované sítě nebo dokonce rovnoměrně distribuována v několika datových centrech. Když uzel selže, jeho funkce jsou za chodu přebírány jinými uzly, přidávání nových uzlů do clusteru a aktualizace verze Cassandra se provádí za chodu, bez dalšího ručního zásahu a rekonfigurace ostatních uzlů. Důrazně se však doporučuje znovu vygenerovat klíče (návěsky) pro každý uzel, včetně těch stávajících, aby byla zachována kvalita vyrovnávání zátěže. Generování klíčů pro existující uzly se lze vyhnout v případě vícenásobného zvýšení počtu uzlů (2krát, 3krát atd.).

CQL

Pro zjednodušení interakce s databází je podporován strukturovaný dotazovací jazyk CQL (Cassandra Query Language), který je do jisté míry podobný SQL , ale jeho funkčnost je výrazně omezena. Můžete například provádět pouze nejjednodušší dotazy SELECTs výběrem podle určité podmínky. Přidávání a aktualizace se provádí pomocí jediného výrazu UPDATE, neprovádí se žádná operace INSERT(pokud neexistuje záznam, UPDATEje vytvořen během provádění - je použita sémantika SQL příkazu MERGE). Z charakteristických rysů - podpora jmenných prostorů a rodin sloupců, vytváření indexů pomocí výrazu " CREATE INDEX". Ovladače s podporou CQL implementované pro Python (DBAPI2), Java ( JDBC ), Ruby ( gem cassandra-cql ), PHP ( Thrift , cassandra-pdo , Cassandra-PHP-Client-Library ), JavaScript ( Node.js ) a Perl ( DBD::Cassandra ).

CQL je navíc implementováno v systému Scylla DBMS , který je architektonicky a lingvisticky podobný systému Cassandra, ale pro zlepšení výkonu je napsán v C++ .

Poznámky

  1. 1 2 https://projects.apache.org/json/projects/cassandra.json
  2. https://github.com/apache/cassandra/releases/tag/cassandra-4.0.7
  3. Vydání databáze Apache Cassandra 1.0 . Datum přístupu: 14. ledna 2012. Archivováno z originálu 23. října 2011.

Odkazy

Literatura