5.15. SQL
5.15.1. camel-sql-kafka-connector シンク設定 リンクのコピーリンクがクリップボードにコピーされました!
コネクターの説明: Spring JDBC を使用して SQL クエリーを実行します。
camel-sql-kafka-connector をシンクとして使用する場合、以下の Maven 依存関係を使用してコネクターをサポートするようにしてください。
<dependency>
<groupId>org.apache.camel.kafkaconnector</groupId>
<artifactId>camel-sql-kafka-connector</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel Kafka connector version -->
</dependency>
Kafka コネクションでこのシンクコネクターを使用するには、以下の connector.class を設定する必要があります。
connector.class=org.apache.camel.kafkaconnector.sql.CamelSqlSinkConnector
camel-sql シンクコネクターは、以下に示す 22 のオプションをサポートしています。
| 名前 | 説明 | デフォルト | 必要性 | 優先順位 |
|---|---|---|---|---|
| camel.sink.path.query | 実行する SQL クエリーを設定します。file: または classpath: を接頭辞として使用してクエリーを外部化し、ファイルの場所を指定できます。 | null | true | HIGH |
| camel.sink.endpoint.allowNamedParameters | クエリーで名前付きパラメーターの使用を許可するかどうか。 | true | false | MEDIUM |
| camel.sink.endpoint.dataSource | エンドポイントレベルでデータベースと通信するために使用する DataSource を設定します。 | null | false | MEDIUM |
| camel.sink.endpoint.dataSourceRef | データベースとの通信に使用するために、レジストリーから参照する DataSource への参照を設定します。 | null | false | 低度の影響 |
| camel.sink.endpoint.outputClass | outputType=SelectOne の場合、変換として使用する完全なパッケージとクラス名を指定します。 | null | false | MEDIUM |
| camel.sink.endpoint.outputHeader | メッセージ本文ではなく、ヘッダーにクエリー結果を格納します。デフォルトでは、outputHeader == null で、クエリー結果はメッセージ本文に格納され、メッセージ本文の既存のコンテンツは破棄されます。outputHeader が設定されている場合、値はクエリー結果を格納するヘッダーの名前として使用され、元のメッセージ本文は保持されます。 | null | false | MEDIUM |
| camel.sink.endpoint.outputType | 以下の方法で、コンシューマーまたはプロデューサの出力を Map のリストとして SelectList、または単一の Java オブジェクトとして SelectOne にします。a) クエリーが単一の列を持っている場合、その JDBC 列オブジェクトが返されます。(SELECT COUNT( ) FROM PROJECT のような場合、Long オブジェクトを返します。) b) クエリーが複数の列を持つ場合、その結果の Map を返します。c) 出力クラスが設定されている場合、列名に一致するすべてのセッターを呼び出して、クエリーの結果を Java Bean オブジェクトに変換します。クラスには、インスタンスを作成するためのデフォルトのコンストラクターがあると想定されます。d) クエリーの結果が複数の行になった場合、一意でない結果の例外が出力されます。StreamList は、Iterator を使用してクエリーの結果をストリーミングします。これは、ストリーミング方式で ResultSet を処理するために、ストリーミングモードでスプリッタ EIP とともに使用できます。One of: [SelectOne] [SelectList] [StreamList] | "SelectList" | false | MEDIUM |
| camel.sink.endpoint.separator | パラメーター値がメッセージ本文 (本文が文字列型の場合) から取得されるときに使用するセパレーターで、# プレースホルダーに挿入されます。名前付きパラメーターを使用する場合は、代わりに Map タイプが使用されることに注意してください。デフォルト値は、コンマです。 | "," | false | MEDIUM |
| camel.sink.endpoint.batch | バッチモードを有効または無効にします | false | false | MEDIUM |
| camel.sink.endpoint.lazyStartProducer | 最初のメッセージでプロデューサーをレイジーに起動すべきかどうか。レイジーに起動することで、起動時にプロデューサーが失敗し、それによりルートが失敗する可能性がある状況で、CamelContext およびルートの起動を許可します。レイジーな起動を延期すると、Camel のルーティングエラーハンドラー経由でメッセージのルーティング中に起動の失敗を処理できます。最初のメッセージが処理されるときに、プロデューサーの作成および起動に若干時間がかかり、合計処理時間が長くなる可能性があることに注意してください。 | false | false | MEDIUM |
| camel.sink.endpoint.noop | 設定されている場合、SQL クエリーの結果を無視し、既存の IN メッセージを OUT メッセージとして使用して処理を続行します。 | false | false | MEDIUM |
| camel.sink.endpoint.useMessageBodyForSql | メッセージ本文を SQL として使用し、次にパラメーターのヘッダーを使用するかどうか。このオプションを有効にすると、URI の SQL は使用されません。メッセージ本文のクエリーパラメーターは、# 記号ではなく疑問符で表されることに注意してください。 | false | false | MEDIUM |
| camel.sink.endpoint.alwaysPopulateStatement | 有効にすると、org.apache.camel.component.sql.SqlPrepareStatementStrategy の populateStatement メソッドが常に呼び出されます。また、準備する必要のあるパラメーターがない場合も同様です。これが false の場合、populateStatement は、1 つ以上の予期されるパラメーターが設定される場合にのみ呼び出されます。たとえば、これにより、パラメーターのない SQL クエリーのメッセージ本文/ヘッダーの読み取りが回避されます。 | false | false | MEDIUM |
| camel.sink.endpoint.parametersCount | 0 より大きい値を設定すると、Camel は JDBC メタデータ API を介してクエリーを実行する代わりに、このパラメーターのカウント値を使用して置き換えます。これは、JDBC ベンダーが正しいパラメーター数を返すことができず、ユーザーが代わりにオーバーライドできる場合に役立ちます。 | null | false | MEDIUM |
| camel.sink.endpoint.placeholder | SQL クエリーで置換される文字を指定します。これは単純な String.replaceAll() 操作であり、SQL 解析が含まれていないことに注意してください (引用符で囲まれた文字列も変更されます)。 | "#" | false | MEDIUM |
| camel.sink.endpoint.prepareStatementStrategy | プラグインでカスタム org.apache.camel.component.sql.SqlPrepareStatementStrategy を使用して、クエリーと準備済みステートメントの準備を制御できるようにします。 | null | false | MEDIUM |
| camel.sink.endpoint.templateOptions | マップからのキー/値を使用して Spring JdbcTemplate を設定します | null | false | MEDIUM |
| camel.sink.endpoint.usePlaceholder | SQL クエリーでプレースホルダーを使用し、すべてのプレースホルダー文字を符号に置き換えるかどうかを設定します。 | true | false | MEDIUM |
| camel.component.sql.dataSource | データベースとの通信に使用する DataSource を設定します。 | null | false | MEDIUM |
| camel.component.sql.lazyStartProducer | 最初のメッセージでプロデューサーをレイジーに起動すべきかどうか。レイジーに起動することで、起動時にプロデューサーが失敗し、それによりルートが失敗する可能性がある状況で、CamelContext およびルートの起動を許可します。レイジーな起動を延期すると、Camel のルーティングエラーハンドラー経由でメッセージのルーティング中に起動の失敗を処理できます。最初のメッセージが処理されるときに、プロデューサーの作成および起動に若干時間がかかり、合計処理時間が長くなる可能性があることに注意してください。 | false | false | MEDIUM |
| camel.component.sql.autowiredEnabled | 自動ワイヤリングが有効になっているかどうか。これは、コンポーネントで設定される一致するタイプのインスタンスが 1 つあるかどうかを検出するためにレジストリーを検索することで、自動ワイアリングオプションに使用されます (オプションは自動ワイアとマーク付けされる必要があります)。これは、JDBC データソース、JMS 接続ファクトリー、AWS クライアントなどの自動設定に使用できます。 | true | false | MEDIUM |
| camel.component.sql.usePlaceholder | SQL クエリーでプレースホルダーを使用し、すべてのプレースホルダー文字を符号に置き換えるかどうかを設定します。このオプションのデフォルトは true です | true | false | MEDIUM |
camel-sql シンクコネクターには、すぐに使えるコンバーターはありません。
camel-sql シンクコネクターには、すぐに使える変換はありません。
camel-sql シンクコネクターには、すぐに使用できる集計ストラテジーはありません。