|
||||||||||||||||||||||||||||||||||||||||||||||||
Menu
Distributions (131)
Software (10844)
|
Cassandra DB - IV.Cassandra ke komunikaci s klientem místo textového dotazovacího jazyka preferuje vzdálené voláním procedur. Zjednodušeně řečeno, místo zdrojového kódu typu Apache ThriftDatabáze Cassandra definuje svoje aplikační programátorské rozhraní (API), které se může lišit v závislosti na verzi Cassandry a případných rozšířeních doprogramovaných uživatelem. Nad vlastní databázovou logikou běží server Apache Thrift, který je licencován pod Apache License ve verzi 2. Vzdáleným voláním procedur (remote procedure call, RPC) přes rozhraní Thrift lze přistupovat k API Cassandry. Součástí distribuce Cassandry je soubor /interface/cassandra.thrift, který ve svém vlastními speciálním jazyku popisuje rozhraní příslušné verze Cassandry. Programování klientské části aplikace vyžaduje definici rozhraní Cassandry ve zvoleném programovacím jazyce, takže rozhraní definované ve speciálním jazyku projektu Thrift se nedá přímo do zdrojového kódu importovat. Aplikace Thrift však umí transformovat definici rozhraní ve svém formátu do definic v podporovaných programovacích jazycí. Přepis se provede příkazem thrift -identifikátor_jazyka soubor_s_rozhraním.thrift (konkrétně např.
Jazyk Thriftu určuje rozhraní pomocí definic :
Ukázka částí cassandra.thriftKe zmíněným definicím mohou být přiloženy i komentáře. Soubor cassandra.thrift je velmi dobře komentován, takže tvoří velmi dobrou podrobnou dokumentaci API vámi používané verze Cassandry. Pro ilustraci uveďme tři citace z cassandra.thrift pro verzi 0.8.1. První ukázka části cassandra.thrift
#
Druhá ukázka části cassandra.thrift
/* describes a column family. */
Třetí ukázka části cassandra.thrift
/* describes a keyspace. */
Jak probíhá předávání dotazu?Vypišme všechny fáze od vygenerování a odeslání dotazu na straně klienta.
Ukázka použitíČást dílu věnovanou Thriftu uzavírá ukázkový javovský kód. Vynechány jsou nutné importy org.apache.cassandra.thrift.Cassandra, org.apache.cassandra.thrift.ConsistencyLevel, org.apache.cassandra.thrift.Clock, org.apache.cassandra.thrift.ColumnParent, org.apache.thrift.protocol.TBinaryProtocol..., import definic výjimek a odchytávání výjimek.
//vytvoření spojení s databází
TFramedTransport my_tf = new TFramedTransport(new TSocket("localhost", "9190"));
Cassandra.Client my_client = new Cassandra.Client(new TBinaryProtocol(my_tf));
my_tf.open();
//zvolení používaného keyspace a odkazu na používanou cf
client.set_keyspace("jméno keyspace");
ColumnParent my_cp = new ColumnParent("jméno cf");
//vložení záznamu
Clock casove_razitko = new Clock(System.currentTimeMillis());
client.insert("jméno řádku".getBytes(),
my_cp,
new Column("jméno sloupce".getBytes(UTF8), "hodnota".getBytes(), casove_razitko),
ConsistencyLevel.ONE);
client.insert("jméno řádku".getBytes(),
my_cp,
new Column("jméno jiného sloupce".getBytes(UTF8), "jiná hodnota".getBytes(), casove_razitko),
ConsistencyLevel.ONE);
Další nástroje podporované CassandrouSerializační RPC software Apache Avro se podobá Thriftu. V některých ohledech Avro Thrift překonává a možná v budoucích verzích Cassandry se stane preferovaným RPC řešením. Podporované jazyky jsou Java, C, C++, Python a Ruby. Cassandra query language (CQL) představuje nový prostředek komunikace s databází. Tato novinka je dostupná pouze v poslední řadě Cassandry 0.8. Principy práce CQL se shodují s SQL a i syntaxe CQL se silně inspiruje syntaxí SQL. Na oficiálních stránkách Cassandry naleznete ovladače pro Java (JDBC), Python (DBAPI2) a Python (Twisted). Standardní administrátorská konzole cassandra-cli a nástroj nodetools byly zmíněny již v předchozích dílech. Různý další softwareCassandra-webconsole je J2EE (JRE 6.0+) aplikace pro servletový kontejner Tomcat. Webové rozhraní cassandra-webconsole usnadňuje a zpřehledňuje administraci databáze Cassandra. Pyssandra je vysokoúrovňový klient Cassandry pro jazyk Python. Hector je velmi populární všestranný javovský client pro Cassandru. Hector mimo jiné nabízí vysokoúrovňové rozhraní, podporu Java Management Extensions (JMX), connection pooling, jednoduché ORM... Všimněme si, že jméno Hector je jedním z mnoha označení ze starořeckých dějin spojovaných s databází Cassandra. Chiton je další API rozhraní pro Python. Pelops je další API rozhraní pro Javu. Knihovna phpcassa zpřístupňuje databázi Cassandra z php skriptů. Telephus je další rozhraní pro Python, které staví na frameworku Twisted. Kundera je jednoduchý ORM framework pro Javu, který jako úložiště využívá Cassandru. Twissandra je ukázkový kód, který demonstruje nasazení databáze Cassandra. Twissandra předvádí, jak naprogramovat webovou službu podobající se sociální síti Twitter. Twissandra byla portována do více programovacích jazyků a frameworků.
|
Search Software
Search Google
|
||||||||||||||||||||||||||||||||||||||||||||||
©Pavel Kysilka - 2003-2024 | maillinuxsoft.cz | Design: www.megadesign.cz |