This adapter nables the connection to an Apache Cassandra database and enables communication via CQL statements.
Properties
|
|
Defines the Operation executed by the adapter. Possible values:
|
Parameters
|
|
Main adapter class (do not change!) Possible values: de.softproject.integration.adapter.apache.cassandra.ApacheCassandraConnectorAdapter: Hauptklasse (default) |
|
|
Host within the cluster Cluster cluster1 = Cluster.builder().addContactPoints("172.30.210.11","172.30.210.12").build(); (information) Multiple IPs or host names can be added that correspond to different servers running as an Apache Cassandra executable within the module. |
|
|
Native protocol port |
|
|
Login if the cluster requires credentials. Possible values: Any string containing the login, e.g. |
|
|
Password if the cluster requires credentials. Possible values: Any string containing the password, e.g. |
Status values
|
|
The operation was executed successfully. |
|
|
An error occurred during the operation's execution. |
Input
The adapter expects a specific XML document as input:
<RootElement>
<Preparedstatement resulttag="result element name" timeZone="timezone">
<Cql>
select * from keyspace.table;
</Cql>
<Parameters>
<parameter index="n" type="Cassandra_Type">Value</parameter>
</Parameters>
</Preparedstatement>
<Preparedstatement resulttag="result 2 element name" timeZone="timezone 2">
<Cql>
INSERT INTO keyspace.table (id, lastname, firstname) VALUES (uuid(), myLastname,'myFirstName');
</Cql>
</Preparedstatement>
....
</RootElement>
The input XML document must comply with the following rules:
|
Element / Attribute |
Description |
|---|---|
|
|
Required attribute of the element |
|
|
Optional attribute of the element |
|
|
Element within the element If characters that are preset in XML are used within the CQL statement, then the SQL statement must be escaped with a CDATA block.
|
|
|
Element within the element |
|
|
Element within the element Attributes:
|
Output
The output is an XML document containing the errors and the result of the execution. Depending on the executed operation, the adapter outputs data in different XML structures:
-
Batch operations (
INSERT,UPDATE,DROP,CREATE, ...)XML<Result> <resulttag_name> Operation executed successfully</resulttag_name> </Result>
-
SELECTXML<Result> <resulttag_name> <Object> <Value name="field_name" type="String|Number|Boolean...">field_value</Value> ... <Object name="Map_field_name"> <Value name="key_name" type="String|Number|Boolean...">object_value</Value> </Object> <Array name="Colleciton_field_name"> <Value type="String|Number|Boolean...">value_of_the_array_at_this_position</Value> ... </Array> ... </Object> </resulttag_name> </Result>
If the field has the data type
MAP, its value is represented by an object node. If the field has the data typeLIST,SETorTUPLE, its value is represented by an array node. If the field is a simple type, its value is represented within the value node.
Example
-
CREATEXML<RootElement> <Preparedstatement resulttag="createTableVideos"> <Cql> <![CDATA[CREATE TABLE videodb.videos ( videoid uuid, videoname varchar, username varchar, description varchar, location map<varchar,varchar>, tags set<varchar>, tupleColl tuple<int, text, varchar, float, time, timestamp, date, inet, decimal, uuid, boolean, ascii, blob>, upload_date timestamp, upload_date_noTime date, PRIMARY KEY (videoid));]]> </Cql> </Preparedstatement> </RootElement>
-
DROPXML<RootElement> <Preparedstatement resulttag="drop_Users"> <Cql> <![CDATA[DROP TABLE IF EXISTS videodb.users;]]> </Cql> </Preparedstatement> </RootElement>
-
INSERTXML<RootElement> <Preparedstatement resulttag="insertVideos" timeZone="UTC"> <Cql> INSERT INTO videodb.videos (videoid, videoname, username, description, location, tags, tupleColl, upload_date, upload_date_noTime) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?); </Cql> <Parameters> <parameter index="0" type="UUID">99051fe9-6a9c-46c2-b949-38ef78858dd0</parameter> <parameter index="1" type="VARCHAR">My funny cat</parameter> <parameter index="2" type="VARCHAR">tcodd</parameter> <parameter index="3" type="VARCHAR">My cat likes to play the piano! So funny.</parameter> <parameter index="4" type="MAP">{"US":"/us/vid/99/99051fe9-6a9c-46c2-b949-38ef78858dd0"}</parameter> <parameter index="5" type="SET" >["cats","piano","lol"]</parameter> <parameter index="6" type="TUPLE" keySpace="videodb" table="videos" column="tupleColl" formatWithoutTime="yyyy-MM-dd" format="yyyy-MM-dd HH:mm:ss" formatTime="HH:mm:ss:SSS">1, fisrt tuple element, V1, 1.01, 14:25:16:555, 2012-06-01 08:00:00, 2018-04-03, 127.0.0.1, 5.678, 9e816244-f90a-4394-86a5-ddcf4fb9f7aa, true, 97, blobValue</parameter> <parameter index="7" type="TIMESTAMP" format="yyyy-MM-dd HH:mm:ss">2012-06-01 08:45:32</parameter> <parameter index="8" type="DATE" formatWithoutTime="yyyy-MM-dd">2012-06-01</parameter> </Parameters> </Preparedstatement> </RootElement>
-
UPDATEXML<rootElement> <Preparedstatement resulttag="add_email_in_list"> <Cql> <![CDATA[ UPDATE videodb.users set email = ? + email where username = ?]]> </Cql> <Parameters> <parameter type="LIST" index="0">["test1@mail.com","test0@mail.com"]</parameter> <parameter type="TEXT" index="1">pmcfadin</parameter> </Parameters> </Preparedstatement> </rootElement>
-
SELECTXML<mainNode> <Preparedstatement resulttag="select_NY_rides" timezone="UTC"> <Cql> <![CDATA[SELECT * from NY.rides where vendor_id = ? and pickup_datetime = ? and rate_code = ? and total_amount = ? limit 10 ALLOW FILTERING; ]]> </Cql> <Parameters> <parameter index="0" type="TEXT">2</parameter> <parameter index="1" type="TIMESTAMP" format="yyyy-MM-dd hh:mm:ss">2016-01-02 17:02:28</parameter> <parameter index="2" type="INT">1</parameter> <parameter index="3" type="DECIMAL">64.56</parameter> </Parameters> </Preparedstatement> </mainNode>
-
DELETEXML<mainNode> <Preparedstatement resulttag="delete_video_one_record" timezone="UTC"> <Cql> DELETE FROM videodb.videos WHERE videoid = ?; </Cql> <Parameters> <parameter index="0" type="UUID">7dacb4da-9155-4613-b04e-8c5305a20342</parameter> </Parameters> </Preparedstatement> </mainNode>