17.2. MongoDB コレクションの更新時にインテグレーションをトリガー
ドキュメントが MongoDB コレクションに追加されたときにインテグレーションの実行をトリガーするには、MongoDB コネクションを最初のコネクションとしてシンプルなインテグレーションに追加します。インテグレーションの稼働時、MongoDB コネクションはインテグレーションの作成時に指定したデータベースコレクションを監視します。コネクションが監視するように設定されたコレクションに新しいドキュメントを挿入すると、インテグレーションの実行がトリガーされます。MongoDB コネクションによって新しいドキュメントがインテグレーションに返されます。このデータはインテグレーションの次のステップで使用できます。
前提条件
- MongoDB コネクションが作成されている必要があります。
- コネクションが読み取る MongoDB コレクションの名前を知っておく必要があります。
コネクションが監視するコレクションが Capped Collection である場合、以下も知っておく必要があります。
- 受信ドキュメントを追跡する MongoDB コレクションフィールドの名前。
- コレクションが含まれるデータベースの永続追跡が有効になっているかどうか。
- コネクションが読み取るデータに関連するテールトラッキング (Tail tacking) 情報の指定方法。MongoDB コネクションは、コネクションが予期せず終了した後に、テールトラッキング情報を使用してアクションを再開します。テールトラッキングは、コネクションがアクティビティーを再開したときに、重複したデータをインテグレーションに返さないようにしたり、インテグレーションに返す必要のあるデータを失わないようにします。
手順
- Fuse Online パネルの左側にある Integrations をクリックします。
- Create Integration をクリックします。
- Choose a connection ページで、インテグレーションが更新を取得するデータベースにアクセスするよう設定された、MongoDB コネクションをクリックします。
Choose an action ページで、以下のアクションの 1 つを選択します。
- 通常、Retrieve documents (stream) をアクションとして選択します。Capped Collection でないものからデータを取得します。
- Retrieve documents (tail) は Capped Collection からデータを取得するアクションです。
アクションを設定するには以下を行います。
Collection name フィールドに、コネクションが読み取る MongoDB コレクションの名前を入力します。
Retrieve documents (stream) アクションを設定する場合、これが唯一必要なパラメーターになります。ステップ 6 に移動します。Retrieve document (tail) アクションを設定する場合は、残りのサブステップにしたがいます。
- Collection field used to track incoming documents フィールドに、関連する MongoDB コレクションフィールドの名前を入力します。このフィールドには、日付や ID などのソート可能なデータが含まれます。
- コネクションが読み取るデータベースの永続追跡が有効になっている場合は、Persistent tracking enabled チェックボックスを選択します。
- 任意手順:同じコレクションを監視する複数のコンシューマーがある場合は、Unique id to identify this tracking process フィールドに、一意の ID を指定します。詳細は、Camel ドキュメントの Tailable Cursor Consumer を参照してください。
- 任意手順:DB used to store tail tracking フィールドにテールトラッキング情報が含まれる MongoDB データベースの名前を入力します。
- 任意手順:Collection used to store tail tracking フィールドにテールトラッキング情報が含まれるコレクションの名前を入力します。
- 任意手順:Field used to store tail tracking フィールドに、このコネクションが読み取るコレクションのテールトラッキング情報を保存するフィールドの名前を入力します。
テールトラッキングフィールドを特定するために、テールトラッキングデータベースまたはテールトラッキングコレクションを指定できます。いずれかの情報を指定すると、コネクションはテールトラッキングフィールドを特定できます。
- Next をクリックして、アクションの出力タイプを指定します。
データタイプの認識が必要がない場合は、Select Type フィールドに Type specification not required を使用し、Next をクリックします。残りの手順を行う必要はありません。
ただし、構造化データタイプが推奨されます。たとえば、コネクション出力をデータマッパーステップでマップする場合、データタイプを指定する必要があります。データマッパーは、非構造化データのフィールドを表示できません。
データタイプを指定するには、Select Type フィールドをクリックし、以下の 1 つをスキーマタイプとして選択します。
-
JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは
application/schema+json
です。 -
JSON instance は JSON データが含まれるドキュメントです。ドキュメントのメディアタイプは
application/json
です。 -
XML schema は XML データの構造を記述するドキュメントです。ドキュメントのファイル拡張子は
.xsd
です。 -
XML instance は XML データが含まれるドキュメントです。このドキュメントのファイル拡張子は
.xml
です。
-
JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは
-
Definition 入力ボックスに、選択したスキーマタイプに準拠する定義を貼り付けます。たとえば、JSON schema を選択した場合は、メディアタイプが
application/schema+json
の JSON スキーマファイルの内容を貼り付けます。 Data Type Name フィールドにはデータタイプに選択した名前を入力します。たとえば、ベンダーの JSON スキーマを指定する場合は、
Vendor
をデータタイプ名として指定することができます。このタイプを指定するコネクションを使用するインテグレーションを作成または編集するときにこのデータタイプ名が表示されます。Fuse Online では、インテグレーションビジュアライゼーションとデータマッパーにタイプ名が表示されます。
- Data Type Description フィールドには、このタイプを区別するのに便利な情報を提供します。データマッパーでこのタイプを処理するステップにカーソルを合わせると、この説明が表示されます。
- Next をクリックします。
結果
インテグレーションに最初のコネクションが追加され、Fuse Online は最後のコネクションを選択するよう要求します。
実行中、コネクションは挿入されたドキュメントを JSON 形式で返します。