MongoDBソース
データベース取り込みとレプリケーションタスクでMongoDBソースを使用するには、以下の考慮事項を確認してください。
ソースの準備:
- •増分ロードジョブ、および初期ロードと増分ロードの組み合わせジョブの場合は、MongoDB接続で指定するデータベースユーザーにreadAnyDatabaseロールがあることを確認します。また、changestreamアクションとfindアクションをユーザーに付与します。
- • アプリケーションで1つのデータベースに対する変更ストリームを開くには、データベース内のすべての非システムコレクションに対するchangeStreamアクションとfindアクションを付与します。次の文を使用して、これらの特権を付与します。
{ resource:
{ db: <dbname>, collection: "" }
, actions: [ "find", "changeStream" ] }
例:
db.createRole({ role: "readAnyDatabase", privileges: [{ resource:
{ db: "<Database>", collection: "" }
, actions: [ "find", "changeStream" ] }], roles: []})
- •アプリケーションでデプロイメント全体に対する変更ストリームを開くには、デプロイメント内のすべてのデータベースのすべての非システムコレクションに対するchangeStreamアクションとfindアクションを付与します。次の文を使用して、これらの特権を付与します。
{ resource:
{ db: "", collection: "" }
, actions: [ "find", "changeStream" ] }
使用に関する考慮事項:
- •データベース取り込みとレプリケーションは、MongoDB変更ストリームを使用して、単一のコレクション、データベース、またはデプロイメント全体のリアルタイムのデータ変更にアクセスします。データベース取り込みとレプリケーションは変更データのキャプチャにMongoDB oplog(操作ログ)を使用しません。
- •データベース取り込みとレプリケーションタスクは、MongoDBデータをキーと値のペアとしてターゲットに移動します。ここで、キーはObjectIDであり、値はBSONドキュメントを構成するJSON文字列です。タスクでは、フラット化されたデータをターゲットに直接ロードすることはできません。
- •MongoDBソースではデータ型マッピングは使用できません。すべてのデータは、文字列データとしてターゲットに保持されます。
- •増分ロード操作は、ObjectIDを一意のキーとして使用して、ソースで変更データを追跡します。その後、変更されたJSON文字列をターゲットに適用できます。
- •データベース取り込みとレプリケーションは、MongoDBソースを持つ増分ロードジョブの時系列コレクションをサポートしていません。
- •増分ロード操作では、データベース取り込みとレプリケーションは、再開ポイントとして指定された日時から変更レコードを取得します。MongoDBソースの場合、再開ポイントのデフォルト値は現在の時刻です。別の日時をグリニッジ標準時(GMT)で指定できます。
- •MongoDBソースでスキーマドリフトが発生した場合、ターゲットに送信されるBSONドキュメントのデータにはスキーマの変更が反映されます。ただし、データベース取り込みとレプリケーションはスキーマの変更を具体的に検出して報告するわけではありません。
- •データベース取り込みとレプリケーションでは、MongoDBレプリカセットと共有クラスタをソースとしてサポートしています。
- •複数のエージェントが含まれるSecure Agentグループを使用していて、アクティブなエージェントが予期せずダウンした場合、データベース取り込みとレプリケーションジョブは、Secure Agentグループ内の別の使用可能なエージェントに自動的に切り替えることができます。自動スイッチオーバーは、15分のハートビート間隔が経過した後に行われます。MongoDBソースを持つデータベース取り込みとレプリケーションジョブの場合、自動スイッチオーバーに次の制限があります。
- - ジョブで永続ストレージを有効にすることはできません。
- - Kafkaターゲットを持つジョブでは、チェックポイント情報をKafkaヘッダーに格納する必要があります。2025年7月リリースより前に存在していたジョブの場合、チェックポイント情報はSecure Agentのチェックポイントファイルに格納されるため、自動スイッチオーバーを実行できません。