Skip to main content
Skip table of contents

Operation: Execute

Mit der Operation Execute des Apache Cassandra Connectors führen Sie das im Input-Dokument angegebene Statement aus.

Weitere Informationen zu anderen Operationen des Apache Cassandra Connectors finden Sie unter Apache Cassandra Connector.

Parameter

Parameter

Beschreibung

Adapter

Adapter-Hauptklasse (nicht verändern!)

Mögliche Werte:  de.softproject.integration.adapter.apache.cassandra.ApacheCassandraConnectorAdapter: Hauptklasse (Standard)

host

Host innerhalb des Clusters

Beispiel:

Cluster cluster1 = cluster.builder().addContactPoints("172.30.210.11","172.30.210.12").build();

Hinweis:

Sie können mehrere IPs oder Host-Namen hinzufügen, die verschiedenen Servern entsprechen, die als ausführbare Datei von Apache Cassandra innerhalb des Moduls ausgeführt werden.

port

Native-Protocol-Port

login

Login, wenn das Cluster Zugangsdaten erfordert

Mögliche Werte: Beliebige Zeichenkette mit dem Login, z. B.  myLogin

password

Passwort, wenn das Cluster Zugangsdaten erfordert

Mögliche Werte: Beliebige Zeichenkette mit dem Passwort, z. B.  myPassword

Statuswerte

1

Die Operation wurde erfolgreich ausgeführt

-1

Die Operation ist aufgrund eines technischen Fehlers fehlgeschlagen.

Input <Statement/>

Der Adapter erwartet ein spezifisches XML-Dokument als Input, z. B.:

CODE
<RootElement>
  <Statement>
      select * from keyspace.table;
  </Statement>
  <Statement>
      INSERT INTO keyspace.table (id, lastname, firstname) VALUES (uuid(), myLastname,'myFirstName');
  </Statement>
  ....
</RootElement>

Input <Preparedstatement/>

Der Adapter erwartet ein spezifisches XML-Dokument als Input, z. B.:

XML
<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>

Inputregeln

Das Input-XML-Dokument muss folgenden Regeln entsprechen:

Element/Attribut

Beschreibung

resulttag 

Dieses Attribut ist erforderlich für das Element Preparedstatement.

timeZone 

Dieses Attribut ist optional für das Element Preparedstatement.

Bestimmt die Zeitzone entsprechend zu java.util.TimeZone  (z. B.  GMT+2 ). Standardmäßig wird die UTC-Zeitzone für Datumsangaben verwendet.

Cql 

Element innerhalb des Elements Preparedstatement. Enthält das CQL-Statement. Kann beliebig oft innerhalb von Preparedstatement verwendet werden.

Hinweis:

Wenn innerhalb des CQL-Statements Zeichen verwendet werden, die in XML vorbelegt sind, dann muss das SQL-Statement mit einem CDATA-Block escaped werden.

Parameters 

Element innerhalb des Elements Preparedstatement. Darf nur genau einmal innerhalb von Preparedstatement verwendet werden. Enthält beliebig viele Elemente parameter mit Parameterwerten.

parameter 

Element innerhalb des Elements Parameters. Kann beliebig oft innerhalb von Parameters verwendet werden.

Attribute:

Mögliche Parametertypen für type

type

Beschreibung

TEXT

UTF-8-kodierter Text

VARCHAR

UTF-8-kodierter Text

ASCII

US-ASCII-kodierter Text

BLOB

Hexadezimal kodierte Binärdateien ohne Validierung

BOOLEAN

Bool'sche Werte

BIGINT

64-Bit-Ganzzahl

COUNTER

64-Bit-Zählerwert

INT

32-Bit-Ganzzahl

SMALLINT

2-Byte-Ganzzahl

TINYINT

1-Byte-Ganzzahl

DATE

Datum im Format yyyy-mm-dd

Hinweis:

Apacha Cassandra kodiert Datumsangaben als 32-Bit-Ganzzahl, die die Tage seit dem 1. Januar 1970 repräsentiert.

DECIMAL

Dezimalzahl

DOUBLE

64-Bit-IEEE-Fließkommazahl

FLOAT

32-Bit-IEEE-Fließkommazahl

INET

IP-Adresse im IPv4- oder IPv6-Format

TIME

Uhrzeit

Hinweis:

Apache Cassandra kodiert Zeitangaben als 64-Bit-Ganzzahl, die die Nanosekunden seit Mitternacht repräsentiert.

TIMESTAMP

Datum und Uhrzeit

Das Format muss über das Attribut format  angegeben werden, z. B.:

CODE
<parameter index="n" type="TIMESTAMP" format="yyyy-MM-dd HH:mm:ss">2012-06-01 08:00:00</parameter>

TIMEUUID

Version 1 UUID

UUID

UUID im Standard UUID-Format

VARINT

Ganzzahl

MAP

Array von Zeichen im JSON-Format

LIST

Sammlung eines oder mehrerer geordneter Elemente, z. B.

CODE
<parameter index="n" type="LIST">["tcodd@relational.com","ted.codd@relational.com"]</parameter>

Hinweis:

Die Verwendung der Anführungszeichen ist erforderlich.

SET

Sammlung eines oder mehrerer Elemente, z. B.:

CODE
<parameter index="n" type="SET">["Element 1","Element 1","Element 3"]</parameter>

Hinweis:

Die Verwendung der Anführungszeichen ist erforderlich.

TUPLE

Gruppe von Komma-getrennten Feldern. Kann verschiedene Simple Types enthalten:

  • keySpace: Name des Key Spaces der Tabelle

  • table: Name der Tabelle

  • column: Name der Spalte

Hinweis:

Wenn das TUPLE-Feld DATE-, TIME- oder TIMESTAMP-Felder enthält sind folgende Attribute erforderlich:

  • formatWithoutTime: Erforderlich, falls das TUPLE-Feld DATE-Felder enthält.

  • format: Erforderlich, falls das TUPLE-Feld TIMESTAMP-Felder enthält.

  • formatTime: Erforderlich, falls das TUPLE-Feld TIME-Felder enthält.

TUPLE-Beispiel
CODE
<parameter index="n" 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>

Im obigen Beispiel wird das TUPLE-Feld während der Tabellenerstellung wie folgt definiert:

CODE
tupleColl tuple<int, text, varchar, float, time, timestamp, date, inet, decimal, uuid, boolean, ascii, blob>   

Output

Der Output ist ein XML-Dokument mit den Fehlern und dem Ergebnis der Adapter-Ausführung. Je nach Operation gibt der Adapter Daten in verschiedenen XML-Strukturen aus:

Batch-Operationen (INSERT, UPDATE, DROP, CREATE, ...)

XML
<Result>
	<resulttag_name> Operation executed successfully</resulttag_name>
</Result>

Operation: SELECT

XML
<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>

Hinweis:

Wenn das Feld den Datentyp MAP hat, wird sein Wert durch einen Objektknoten repräsentiert. Wenn das Feld den Datentyp LISTSET oder TUPLE hat, wird sein Wert durch einen Array-Knoten repräsentiert. Wenn das Feld ein Simple Type ist, wird sein Wert innerhalb des Value-Knotens repräsentiert.

Beispiele

Hier finden Sie Beispielinputs für die unterschiedlichen Preparedstatements der Operation Execute.

Beispiel: CREATE
CODE
<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>
Beispiel: DROP
CODE
<RootElement>
	<Preparedstatement resulttag="drop_Users">
		<Cql>
			<![CDATA[DROP TABLE IF EXISTS videodb.users;]]>
		</Cql>
	</Preparedstatement>
</RootElement>
Beispiel: INSERT
CODE
<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>
Beispiel: UPDATE
CODE
<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>
Beispiel: SELECT
CODE
<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>
Beispiel: DELETE
CODE
<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>
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.