Chapter 20. Cassandra Source Query a Cassandra cluster table. 20.1. Configuration Options The following table summarizes the configuration options available for the cassandra-source Kamelet: Property Name Description Type Default Example connectionHost * Connection Host Hostname(s) cassandra server(s). Multiple hosts can be separated by comma. string "localhost" connectionPort * Connection Port Port number of cassandra server(s) string 9042 keyspace * Keyspace Keyspace to use string "customers" password * Password The password to use for accessing a secured Cassandra Cluster string query * Query The query to execute against the Cassandra cluster table string username * Username The username to use for accessing a secured Cassandra Cluster string consistencyLevel Consistency Level Consistency level to use. The value can be one of ANY, ONE, TWO, THREE, QUORUM, ALL, LOCAL_QUORUM, EACH_QUORUM, SERIAL, LOCAL_SERIAL, LOCAL_ONE string "QUORUM" resultStrategy Result Strategy The strategy to convert the result set of the query. Possible values are ALL, ONE, LIMIT_10, LIMIT_100... string "ALL" Note Fields marked with an asterisk (*) are mandatory. 20.2. Dependencies At runtime, the cassandra-source Kamelet relies upon the presence of the following dependencies: camel:jackson camel:kamelet camel:cassandraql 20.3. Usage This section describes how you can use the cassandra-source . 20.3.1. Knative Source You can use the cassandra-source Kamelet as a Knative source by binding it to a Knative object. cassandra-source-binding.yaml apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: cassandra-source-binding spec: source: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: cassandra-source properties: connectionHost: "localhost" connectionPort: 9042 keyspace: "customers" password: "The Password" query: "The Query" username: "The Username" sink: ref: kind: Channel apiVersion: messaging.knative.dev/v1 name: mychannel 20.3.1.1. Prerequisite Make sure you have "Red Hat Integration - Camel K" installed into the OpenShift cluster you're connected to. 20.3.1.2. Procedure for using the cluster CLI Save the cassandra-source-binding.yaml file to your local drive, and then edit it as needed for your configuration. Run the source by using the following command: oc apply -f cassandra-source-binding.yaml 20.3.1.3. Procedure for using the Kamel CLI Configure and run the source by using the following command: kamel bind cassandra-source -p "source.connectionHost=localhost" -p source.connectionPort=9042 -p "source.keyspace=customers" -p "source.password=The Password" -p "source.query=The Query" -p "source.username=The Username" channel:mychannel This command creates the KameletBinding in the current namespace on the cluster. 20.3.2. Kafka Source You can use the cassandra-source Kamelet as a Kafka source by binding it to a Kafka topic. cassandra-source-binding.yaml apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: cassandra-source-binding spec: source: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: cassandra-source properties: connectionHost: "localhost" connectionPort: 9042 keyspace: "customers" password: "The Password" query: "The Query" username: "The Username" sink: ref: kind: KafkaTopic apiVersion: kafka.strimzi.io/v1beta1 name: my-topic 20.3.2.1. Prerequisites Ensure that you've installed the AMQ Streams operator in your OpenShift cluster and created a topic named my-topic in the current namespace. Make also sure you have "Red Hat Integration - Camel K" installed into the OpenShift cluster you're connected to. 20.3.2.2. Procedure for using the cluster CLI Save the cassandra-source-binding.yaml file to your local drive, and then edit it as needed for your configuration. Run the source by using the following command: oc apply -f cassandra-source-binding.yaml 20.3.2.3. Procedure for using the Kamel CLI Configure and run the source by using the following command: kamel bind cassandra-source -p "source.connectionHost=localhost" -p source.connectionPort=9042 -p "source.keyspace=customers" -p "source.password=The Password" -p "source.query=The Query" -p "source.username=The Username" kafka.strimzi.io/v1beta1:KafkaTopic:my-topic This command creates the KameletBinding in the current namespace on the cluster. 20.4. Kamelet source file https://github.com/openshift-integration/kamelet-catalog/cassandra-source.kamelet.yaml

Commands:
apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: cassandra-source-binding spec: source: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: cassandra-source properties: connectionHost: "localhost" connectionPort: 9042 keyspace: "customers" password: "The Password" query: "The Query" username: "The Username" sink: ref: kind: Channel apiVersion: messaging.knative.dev/v1 name: mychannel
apply -f cassandra-source-binding.yaml
kamel bind cassandra-source -p "source.connectionHost=localhost" -p source.connectionPort=9042 -p "source.keyspace=customers" -p "source.password=The Password" -p "source.query=The Query" -p "source.username=The Username" channel:mychannel
apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: cassandra-source-binding spec: source: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: cassandra-source properties: connectionHost: "localhost" connectionPort: 9042 keyspace: "customers" password: "The Password" query: "The Query" username: "The Username" sink: ref: kind: KafkaTopic apiVersion: kafka.strimzi.io/v1beta1 name: my-topic
apply -f cassandra-source-binding.yaml
kamel bind cassandra-source -p "source.connectionHost=localhost" -p source.connectionPort=9042 -p "source.keyspace=customers" -p "source.password=The Password" -p "source.query=The Query" -p "source.username=The Username" kafka.strimzi.io/v1beta1:KafkaTopic:my-topic