Neptune Streams を使用してグラフ変更をリアルタイムでキャプチャする - Amazon Neptune

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Neptune Streams を使用してグラフ変更をリアルタイムでキャプチャする

Neptune Streams は、グラフへのすべての変更を、発生した順序で、フルマネージド型の方法でログに記録します。Streams を有効にすると、Neptune は可用性、バックアップ、セキュリティ、有効期限を処理します。

注記

この機能は リリース 1.0.1.0.200463.0 (2019-10-15)ラボモードから提供開始となり、Neptune エンジンリリース 1.0.2.2.R2 を皮切りに本稼働環境用に公開されます。

以下は、発生したグラフへの変更をキャプチャするユースケースの例です。

  • 特定の変更が行われたときに、アプリケーションがユーザーに自動的に通知するようにする場合があります。

  • グラフデータの最新バージョンを Amazon OpenSearch Service、Amazon 、 ElastiCacheAmazon Simple Storage Service (Amazon S3) などの別のデータストアに保持することもできます。

Neptune は、グラフデータと同じネイティブストレージを変更ログストリームに使用します。変更ログエントリを、その変更を行うトランザクションと共に同期的に書き込みます。これらの変更レコードは、 を使用してログストリームから取得しますHTTPRESTAPI。(詳細については、「ストリームの呼び出し API」を参照してください。)

次の図は、Neptune Streams から変更ログデータを取得する方法を示しています。

ライターインスタンスとリードレプリカの両方から変更ログデータを取得する方法を示す図。
Neptune Streams 保証
  • トランザクションによって行われた変更は、トランザクションが完了するとすぐにライターとリーダーの両方から読み取ることができます (リーダーの通常のレプリケーション遅延は除く)。

  • 変更レコードは、発生した順序 (トランザクション内で行われた変更を含む) で厳密に連続して表示されます。

  • 変更ストリームに重複は含まれません。各変更は 1 回のみ記録されます。

  • 変更ストリームは完全です。変更が失われたり省略されたりすることはありません。

  • 変更ストリームには、開始状態がわかっている限り、任意の時点でデータベース自体の完全な状態を判断するために必要なすべての情報が含まれます。

  • Streams はいつでもオン/オフを切り替えることができます。

Neptune Streams 操作のプロパティ
  • 変更ログストリームはフルマネージド型です。

  • 変更ログデータは、変更を行う同じトランザクションの一部として同期的に書き込まれます。

  • Neptune Streams を有効にすると、変更ログデータに関連付けられた I/O およびストレージ料金が発生します。

  • デフォルトでは、変更レコードは、作成されてから 1 週間後に自動的に消去されます。エンジンリリース 1.2.0.0 以降、この保持期間は neptune_streams_expiry_days DB クラスターパラメータを使用して 1 から 90 までの任意の日数に変更できます。

  • ストリームの読み取りパフォーマンスは、インスタンスに応じてスケールされます。

  • リードレプリカを使用して、高可用性と高い読み込みスループットを達成できます。同時に作成して使用できるストリームリーダーの数に制限はありません。

  • 変更ログデータは、複数のアベイラビリティーゾーンにまたがってレプリケートされるため、高い耐久性を実現できます。

  • ログデータは、グラフデータ自体と同じくらい安全です。保管時および転送時に暗号化できます。アクセスは、、Amazon IAM、VPCおよび を使用して制御できます。 AWS Key Management Service (AWS KMS)。 グラフデータと同様に、復元 () を使用してバックアップしたり、後で point-in-time 復元したりできますPITR。

  • 各トランザクションの一部としてストリームデータを同期的に書き込むと、全体的な書き込みパフォーマンスがわずかに低下します。

  • Neptune は設計上シングルシャードされるため、ストリームデータはシャードされません。

  • ログストリームは、他のすべての Neptune グラフオペレーションと同じリソースGetRecordsAPIを使用します。つまり、クライアントはストリームリクエストと他の DB リクエスト間で負荷を分散する必要があります。

  • ストリームが無効になると、すべてのログデータにはすぐにアクセスできなくなります。つまり、ログ記録を無効にする前に、必要なすべてのログデータを読み取る必要があります。

  • 現在、 とのネイティブ統合はありません AWS Lambda。 ログストリームは、Lambda 関数をトリガーできるイベントを生成しません。