You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2021/12/10 13:51:09 UTC

[camel-kamelets] branch aws-redshift-sink created (now c24e580)

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a change to branch aws-redshift-sink
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git.


      at c24e580  Added AWS Redshift SQL Sink Kamelet - Template

This branch includes the following new commits:

     new 21b38ea  Added AWS Redshift SQL Sink Kamelet
     new bc99fa6  Added AWS Redshift SQL Sink Kamelet
     new fd9ee2c  Added AWS Redshift SQL Sink Kamelet
     new 332f1ee  Added AWS Redshift SQL Sink Kamelet - Docs
     new c24e580  Added AWS Redshift SQL Sink Kamelet - Template

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[camel-kamelets] 04/05: Added AWS Redshift SQL Sink Kamelet - Docs

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch aws-redshift-sink
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git

commit 332f1eec772d2b3b7ffa6856137ab6a6d359f82b
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Dec 10 14:49:32 2021 +0100

    Added AWS Redshift SQL Sink Kamelet - Docs
---
 .../assets/images/kamelets/aws-redshift-sink.svg   |   1 +
 docs/modules/ROOT/pages/aws-redshift-sink.adoc     | 170 +++++++++++++++++++++
 2 files changed, 171 insertions(+)

diff --git a/docs/modules/ROOT/assets/images/kamelets/aws-redshift-sink.svg b/docs/modules/ROOT/assets/images/kamelets/aws-redshift-sink.svg
new file mode 100644
index 0000000..44542ec
--- /dev/null
+++ b/docs/modules/ROOT/assets/images/kamelets/aws-redshift-sink.svg
@@ -0,0 +1 @@
+<svg enable-background="new 0 0 1615 1783.7" viewBox="0 0 1615 1783.7" xmlns="http://www.w3.org/2000/svg"><path d="m807.5 1363.8 678.3 161.5v-1270.5l-678.3 161.5z" fill="#205b97"/><path d="m1485.8 254.8 129.2 64.6v1141.3l-129.2 64.6zm-678.3 1109-678.3 161.5v-1270.5l678.3 161.5z" fill="#5193ce"/><path d="m129.2 254.8-129.2 64.6v1141.3l129.2 64.6z" fill="#205b97"/><path d="m979.8 1783.7 258.4-129.2v-1525.3l-258.4-129.2-79 847z" fill="#5193ce"/><path d="m635.2 1783.7-258.4-129.2v-1525.3l258 [...]
\ No newline at end of file
diff --git a/docs/modules/ROOT/pages/aws-redshift-sink.adoc b/docs/modules/ROOT/pages/aws-redshift-sink.adoc
new file mode 100644
index 0000000..aebecf0
--- /dev/null
+++ b/docs/modules/ROOT/pages/aws-redshift-sink.adoc
@@ -0,0 +1,170 @@
+// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT
+
+= image:kamelets/aws-redshift-sink.svg[] AWS Redshift Sink
+
+*Provided by: "Apache Software Foundation"*
+
+*Support Level for this Kamelet is: "Preview"*
+
+Send data to an AWS Redshift Database.
+
+This Kamelet expects a JSON as body. The mapping between the JSON fields and parameters is done by key, so if you have the following query:
+
+'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'
+
+The Kamelet needs to receive as input something like:
+
+'{ "username":"oscerd", "city":"Rome"}'
+
+== Configuration Options
+
+The following table summarizes the configuration options available for the `aws-redshift-sink` Kamelet:
+[width="100%",cols="2,^2,3,^2,^2,^3",options="header"]
+|===
+| Property| Name| Description| Type| Default| Example
+| *databaseName {empty}* *| Database Name| The Database Name we are pointing| string| | 
+| *password {empty}* *| Password| The password to use for accessing a secured AWS Redshift Database| string| | 
+| *query {empty}* *| Query| The Query to execute against the AWS Redshift Database| string| | `"INSERT INTO accounts (username,city) VALUES (:#username,:#city)"`
+| *serverName {empty}* *| Server Name| Server Name for the data source| string| | `"localhost"`
+| *username {empty}* *| Username| The username to use for accessing a secured AWS Redshift Database| string| | 
+| serverPort| Server Port| Server Port for the data source| string| `5439`| 
+|===
+
+NOTE: Fields marked with an asterisk ({empty}*) are mandatory.
+
+
+== Dependencies
+
+At runtime, the `aws-redshift-sink` Kamelet relies upon the presence of the following dependencies:
+
+- camel:jackson
+- camel:kamelet
+- camel:sql
+- mvn:com.amazon.redshift:redshift-jdbc42:2.1.0.3
+- mvn:org.apache.commons:commons-dbcp2:2.8.0 
+
+== Usage
+
+This section describes how you can use the `aws-redshift-sink`.
+
+=== Knative Sink
+
+You can use the `aws-redshift-sink` Kamelet as a Knative sink by binding it to a Knative object.
+
+.aws-redshift-sink-binding.yaml
+[source,yaml]
+----
+apiVersion: camel.apache.org/v1alpha1
+kind: KameletBinding
+metadata:
+  name: aws-redshift-sink-binding
+spec:
+  source:
+    ref:
+      kind: Channel
+      apiVersion: messaging.knative.dev/v1
+      name: mychannel
+  sink:
+    ref:
+      kind: Kamelet
+      apiVersion: camel.apache.org/v1alpha1
+      name: aws-redshift-sink
+    properties:
+      databaseName: "The Database Name"
+      password: "The Password"
+      query: "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
+      serverName: "localhost"
+      username: "The Username"
+  
+----
+
+==== *Prerequisite*
+
+You have xref:{camel-k-version}@camel-k::installation/installation.adoc[Camel K installed] on the cluster.
+
+==== *Procedure for using the cluster CLI*
+
+. Save the `aws-redshift-sink-binding.yaml` file to your local drive, and then edit it as needed for your configuration.
+
+. Run the sink by using the following command:
++
+[source,shell]
+----
+kubectl apply -f aws-redshift-sink-binding.yaml
+----
+
+==== *Procedure for using the Kamel CLI*
+
+Configure and run the sink by using the following command:
+
+[source,shell]
+----
+kamel bind channel:mychannel aws-redshift-sink -p "sink.databaseName=The Database Name" -p "sink.password=The Password" -p "sink.query=INSERT INTO accounts (username,city) VALUES (:#username,:#city)" -p "sink.serverName=localhost" -p "sink.username=The Username"
+----
+
+This command creates the KameletBinding in the current namespace on the cluster.
+
+=== Kafka Sink
+
+You can use the `aws-redshift-sink` Kamelet as a Kafka sink by binding it to a Kafka topic.
+
+.aws-redshift-sink-binding.yaml
+[source,yaml]
+----
+apiVersion: camel.apache.org/v1alpha1
+kind: KameletBinding
+metadata:
+  name: aws-redshift-sink-binding
+spec:
+  source:
+    ref:
+      kind: KafkaTopic
+      apiVersion: kafka.strimzi.io/v1beta1
+      name: my-topic
+  sink:
+    ref:
+      kind: Kamelet
+      apiVersion: camel.apache.org/v1alpha1
+      name: aws-redshift-sink
+    properties:
+      databaseName: "The Database Name"
+      password: "The Password"
+      query: "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
+      serverName: "localhost"
+      username: "The Username"
+  
+----
+
+==== *Prerequisites*
+
+* You've installed https://strimzi.io/[Strimzi].
+* You've created a topic named `my-topic` in the current namespace.
+* You have xref:{camel-k-version}@camel-k::installation/installation.adoc[Camel K installed] on the cluster.
+
+==== *Procedure for using the cluster CLI*
+
+. Save the `aws-redshift-sink-binding.yaml` file to your local drive, and then edit it as needed for your configuration.
+
+. Run the sink by using the following command:
++
+[source,shell]
+----
+kubectl apply -f aws-redshift-sink-binding.yaml
+----
+
+==== *Procedure for using the Kamel CLI*
+
+Configure and run the sink by using the following command:
+
+[source,shell]
+----
+kamel bind kafka.strimzi.io/v1beta1:KafkaTopic:my-topic aws-redshift-sink -p "sink.databaseName=The Database Name" -p "sink.password=The Password" -p "sink.query=INSERT INTO accounts (username,city) VALUES (:#username,:#city)" -p "sink.serverName=localhost" -p "sink.username=The Username"
+----
+
+This command creates the KameletBinding in the current namespace on the cluster.
+
+== Kamelet source file
+
+https://github.com/apache/camel-kamelets/blob/main/kamelets/aws-redshift-sink.kamelet.yaml
+
+// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT

[camel-kamelets] 03/05: Added AWS Redshift SQL Sink Kamelet

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch aws-redshift-sink
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git

commit fd9ee2cdd8f30f4bbb746c3599e38129c0749c24
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Dec 10 14:49:23 2021 +0100

    Added AWS Redshift SQL Sink Kamelet
---
 docs/modules/ROOT/nav.adoc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 6547b0f..9539f5d 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -8,6 +8,7 @@
 * xref:ROOT:aws-kinesis-sink.adoc[image:kamelets/aws-kinesis-sink.svg[] AWS Kinesis Sink]
 * xref:ROOT:aws-kinesis-source.adoc[image:kamelets/aws-kinesis-source.svg[] AWS Kinesis Source]
 * xref:ROOT:aws-lambda-sink.adoc[image:kamelets/aws-lambda-sink.svg[] AWS Lambda Sink]
+* xref:ROOT:aws-redshift-sink.adoc[image:kamelets/aws-redshift-sink.svg[] AWS Redshift Sink]
 * xref:ROOT:aws-redshift-source.adoc[image:kamelets/aws-redshift-source.svg[] AWS Redshift Source]
 * xref:ROOT:aws-s3-sink.adoc[image:kamelets/aws-s3-sink.svg[] AWS S3 Sink]
 * xref:ROOT:aws-s3-source.adoc[image:kamelets/aws-s3-source.svg[] AWS S3 Source]

[camel-kamelets] 05/05: Added AWS Redshift SQL Sink Kamelet - Template

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch aws-redshift-sink
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git

commit c24e5804632403b485e624ab45e3dcd15ae50a22
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Dec 10 14:49:46 2021 +0100

    Added AWS Redshift SQL Sink Kamelet - Template
---
 .../camel-k/aws-redshift-sink-binding.yaml         | 22 ++++++++++++++++++++++
 .../bindings/core/aws-redshift-sink-binding.yaml   | 16 ++++++++++++++++
 2 files changed, 38 insertions(+)

diff --git a/templates/bindings/camel-k/aws-redshift-sink-binding.yaml b/templates/bindings/camel-k/aws-redshift-sink-binding.yaml
new file mode 100644
index 0000000..3b53536
--- /dev/null
+++ b/templates/bindings/camel-k/aws-redshift-sink-binding.yaml
@@ -0,0 +1,22 @@
+apiVersion: camel.apache.org/v1alpha1
+kind: KameletBinding
+metadata:
+  name: aws-redshift-sink-binding
+spec:
+  source:
+    ref:
+      kind: KafkaTopic
+      apiVersion: kafka.strimzi.io/v1beta1
+      name: my-topic
+  sink:
+    ref:
+      kind: Kamelet
+      apiVersion: camel.apache.org/v1alpha1
+      name: aws-redshift-sink
+    properties:
+      databaseName: "The Database Name"
+      password: "The Password"
+      query: "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
+      serverName: "localhost"
+      username: "The Username"
+  
\ No newline at end of file
diff --git a/templates/bindings/core/aws-redshift-sink-binding.yaml b/templates/bindings/core/aws-redshift-sink-binding.yaml
new file mode 100644
index 0000000..8831065
--- /dev/null
+++ b/templates/bindings/core/aws-redshift-sink-binding.yaml
@@ -0,0 +1,16 @@
+- route:
+    from:
+      uri: "kamelet:timer-source"
+      parameters:
+        period: 1000
+        message: "Hello Camel JBang"
+    steps:
+      - to:
+          uri: "kamelet:aws-redshift-sink"
+          parameters:
+            databaseName: "The Database Name"
+            password: "The Password"
+            query: "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
+            serverName: "localhost"
+            username: "The Username"
+    
\ No newline at end of file

[camel-kamelets] 01/05: Added AWS Redshift SQL Sink Kamelet

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch aws-redshift-sink
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git

commit 21b38ead8876a119ae7b3eceab5df99a77516305
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Dec 10 14:48:31 2021 +0100

    Added AWS Redshift SQL Sink Kamelet
---
 kamelets/aws-redshift-sink.kamelet.yaml | 114 ++++++++++++++++++++++++++++++++
 1 file changed, 114 insertions(+)

diff --git a/kamelets/aws-redshift-sink.kamelet.yaml b/kamelets/aws-redshift-sink.kamelet.yaml
new file mode 100644
index 0000000..b325bdf
--- /dev/null
+++ b/kamelets/aws-redshift-sink.kamelet.yaml
@@ -0,0 +1,114 @@
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
+apiVersion: camel.apache.org/v1alpha1
+kind: Kamelet
+metadata:
+  name: aws-redshift-sink
+  annotations:
+    camel.apache.org/kamelet.support.level: "Preview"
+    camel.apache.org/catalog.version: "main-SNAPSHOT"
+    camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxNjE1IDE3ODMuNyIgdmlld0JveD0iMCAwIDE2MTUgMTc4My43IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Im04MDcuNSAxMzYzLjggNjc4LjMgMTYxLjV2LTEyNzAuNWwtNjc4LjMgMTYxLjV6IiBmaWxsPSIjMjA1Yjk3Ii8+PHBhdGggZD0ibTE0ODUuOCAyNTQuOCAxMjkuMiA2NC42djExNDEuM2wtMTI5LjIgNjQuNnptLTY3OC4zIDExMDktNjc4LjMgMTYxLjV2LTEyNzAuNWw2NzguMyAxNjEuNXoiIGZpbGw9IiM1MTkzY2UiLz48cGF0aCBkPSJtMTI5LjIgMjU0LjgtMTI5Lj [...]
+    camel.apache.org/provider: "Apache Software Foundation"
+    camel.apache.org/kamelet.group: "AWS Redshift"
+  labels:
+    camel.apache.org/kamelet.type: "sink"
+spec:
+  definition:
+    title: "AWS Redshift Sink"
+    description: |-
+      Send data to an AWS Redshift Database.
+
+      This Kamelet expects a JSON as body. The mapping between the JSON fields and parameters is done by key, so if you have the following query:
+
+      'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'
+
+      The Kamelet needs to receive as input something like:
+
+      '{ "username":"oscerd", "city":"Rome"}'
+    required:
+      - serverName
+      - username
+      - password
+      - query
+      - databaseName
+    type: object
+    properties:
+      serverName:
+        title: Server Name
+        description: Server Name for the data source
+        type: string
+        example: localhost
+      serverPort:
+        title: Server Port
+        description: Server Port for the data source
+        type: string
+        default: 5439
+      username:
+        title: Username
+        description: The username to use for accessing a secured AWS Redshift Database
+        type: string
+        x-descriptors:
+        - urn:camel:group:credentials
+      password:
+        title: Password
+        description: The password to use for accessing a secured AWS Redshift Database
+        type: string
+        format: password
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:password
+        - urn:camel:group:credentials
+      query:
+        title: Query
+        description: The Query to execute against the AWS Redshift Database
+        type: string
+        example: 'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'
+      databaseName:
+        title: Database Name
+        description: The Database Name we are pointing
+        type: string
+  types:
+    in:
+      mediaType: application/json
+  dependencies:
+  - "camel:jackson"
+  - "camel:kamelet"
+  - "camel:sql"
+  - "mvn:com.amazon.redshift:redshift-jdbc42:2.1.0.3"
+  - "mvn:org.apache.commons:commons-dbcp2:2.8.0"
+  flow:
+    beans:
+      - name: dsBean
+        type: "#class:org.apache.commons.dbcp2.BasicDataSource"
+        property:
+          - key: username
+            value: '{{username}}'
+          - key: password
+            value: '{{password}}'
+          - key: url
+            value: 'jdbc:redshift://{{serverName}}:{{serverPort}}/{{databaseName}}'
+          - key: driverClassName
+            value: 'com.amazon.redshift.jdbc.Driver'
+    from:
+      uri: "kamelet:source"
+      steps:
+      - unmarshal:
+          json: 
+            library: Jackson
+      - to: 
+          uri: "sql:{{query}}"
+          parameters:
+            dataSource: "#bean:{{dsBean}}"

[camel-kamelets] 02/05: Added AWS Redshift SQL Sink Kamelet

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch aws-redshift-sink
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git

commit bc99fa6985fd9ad0a1ace52667231d6c2dda71fb
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Dec 10 14:49:08 2021 +0100

    Added AWS Redshift SQL Sink Kamelet
---
 .../kamelets/aws-redshift-sink.kamelet.yaml        | 114 +++++++++++++++++++++
 1 file changed, 114 insertions(+)

diff --git a/library/camel-kamelets/src/main/resources/kamelets/aws-redshift-sink.kamelet.yaml b/library/camel-kamelets/src/main/resources/kamelets/aws-redshift-sink.kamelet.yaml
new file mode 100644
index 0000000..b325bdf
--- /dev/null
+++ b/library/camel-kamelets/src/main/resources/kamelets/aws-redshift-sink.kamelet.yaml
@@ -0,0 +1,114 @@
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
+apiVersion: camel.apache.org/v1alpha1
+kind: Kamelet
+metadata:
+  name: aws-redshift-sink
+  annotations:
+    camel.apache.org/kamelet.support.level: "Preview"
+    camel.apache.org/catalog.version: "main-SNAPSHOT"
+    camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxNjE1IDE3ODMuNyIgdmlld0JveD0iMCAwIDE2MTUgMTc4My43IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Im04MDcuNSAxMzYzLjggNjc4LjMgMTYxLjV2LTEyNzAuNWwtNjc4LjMgMTYxLjV6IiBmaWxsPSIjMjA1Yjk3Ii8+PHBhdGggZD0ibTE0ODUuOCAyNTQuOCAxMjkuMiA2NC42djExNDEuM2wtMTI5LjIgNjQuNnptLTY3OC4zIDExMDktNjc4LjMgMTYxLjV2LTEyNzAuNWw2NzguMyAxNjEuNXoiIGZpbGw9IiM1MTkzY2UiLz48cGF0aCBkPSJtMTI5LjIgMjU0LjgtMTI5Lj [...]
+    camel.apache.org/provider: "Apache Software Foundation"
+    camel.apache.org/kamelet.group: "AWS Redshift"
+  labels:
+    camel.apache.org/kamelet.type: "sink"
+spec:
+  definition:
+    title: "AWS Redshift Sink"
+    description: |-
+      Send data to an AWS Redshift Database.
+
+      This Kamelet expects a JSON as body. The mapping between the JSON fields and parameters is done by key, so if you have the following query:
+
+      'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'
+
+      The Kamelet needs to receive as input something like:
+
+      '{ "username":"oscerd", "city":"Rome"}'
+    required:
+      - serverName
+      - username
+      - password
+      - query
+      - databaseName
+    type: object
+    properties:
+      serverName:
+        title: Server Name
+        description: Server Name for the data source
+        type: string
+        example: localhost
+      serverPort:
+        title: Server Port
+        description: Server Port for the data source
+        type: string
+        default: 5439
+      username:
+        title: Username
+        description: The username to use for accessing a secured AWS Redshift Database
+        type: string
+        x-descriptors:
+        - urn:camel:group:credentials
+      password:
+        title: Password
+        description: The password to use for accessing a secured AWS Redshift Database
+        type: string
+        format: password
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:password
+        - urn:camel:group:credentials
+      query:
+        title: Query
+        description: The Query to execute against the AWS Redshift Database
+        type: string
+        example: 'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'
+      databaseName:
+        title: Database Name
+        description: The Database Name we are pointing
+        type: string
+  types:
+    in:
+      mediaType: application/json
+  dependencies:
+  - "camel:jackson"
+  - "camel:kamelet"
+  - "camel:sql"
+  - "mvn:com.amazon.redshift:redshift-jdbc42:2.1.0.3"
+  - "mvn:org.apache.commons:commons-dbcp2:2.8.0"
+  flow:
+    beans:
+      - name: dsBean
+        type: "#class:org.apache.commons.dbcp2.BasicDataSource"
+        property:
+          - key: username
+            value: '{{username}}'
+          - key: password
+            value: '{{password}}'
+          - key: url
+            value: 'jdbc:redshift://{{serverName}}:{{serverPort}}/{{databaseName}}'
+          - key: driverClassName
+            value: 'com.amazon.redshift.jdbc.Driver'
+    from:
+      uri: "kamelet:source"
+      steps:
+      - unmarshal:
+          json: 
+            library: Jackson
+      - to: 
+          uri: "sql:{{query}}"
+          parameters:
+            dataSource: "#bean:{{dsBean}}"