12.3.5. 他のスクリプト言語によるコンテンツベースのルーティング条件の設定

コンテンツベースのルーティング条件を記述する方法は、使用するスクリプト言語によって異なります。たとえば、基本設定の例 に示すように、式言語として Groovy を使用する場合、以下の式はすべて更新(u)レコードを更新 トピックに再ルーティング し、他のレコードをデフォルトのトピックにルーティングします。

value.op == 'u' ? 'updates' : null

他の言語では、同じ条件を表すのに異なる方法が使用されます。

ヒント

Debezium MongoDB コネクターは after および patch フィールドを構造体ではなくシリアライズされた JSON ドキュメントとして出力します。MongoDB コネクターでフィルター ContentBasedRouting SMT を使用するには、まず ExtractNewDocumentState SMT を適用してフィールドを解放する必要があります。

式の中で JSON パーサを使用する方法もあります。たとえば、式言語に Groovy を使用する場合、groovy-json アーティファクトをクラスパスに追加し、その後に (new groovy.json.JsonSlurper()).parseText(value.after).last_name == 'Kretchmar' などの式を追加します。

JavaScript

式言語に JavaScript を使用する場合、以下の例のように Struct#get() メソッドを呼び出してコンテンツベースのルーティング条件を指定できます。

value.get('op') == 'u' ? 'updates' : null

JavaScript with Graal.js

JavaScript with Graal.js を使用してコンテンツベースのルーティング条件を作成する場合、Groovy で使用する方法と類似の方法を使用します。以下は例になります。

value.op == 'u' ? 'updates' : null