DEAデータストアの管理
あるオンライン銀行が不正検知システムを AWS で構築しています。以下の要件があります。
・数百万件の口座と送金取引の「関係性」を分析する
・「特定口座から3ホップ以内に接続された疑わしい口座を全て検出」などのグラフトラバーサルクエリが必要
・既存の不正検知モデルは Gremlin クエリで実装されており、移行時の書き換えを最小化したい
・クエリ応答は1秒未満
この要件に最も適したデータストアはどれですか?
AAmazon DynamoDB でアジャセンシーリスト(隣接リスト)パターンを実装し、GSI と複数クエリを組み合わせて多ホップのグラフトラバーサルを実現する
Amazon DynamoDB のアジャセンシーリストパターンは隣接ノードの取得は効率的だが、3ホップ以上の多段トラバーサルには複数回のクエリ発行が必要で、1秒未満のレイテンシを安定して保証することは困難。
BAmazon Redshift で再帰 CTE を使用してグラフトラバーサルを実装し、大規模集計クエリとして処理する
Amazon Redshift の再帰 CTE はグラフ的な構造を分析クエリとして表現できるが、データウェアハウス向けの並列スキャン設計のため低レイテンシのグラフトラバーサルに不向きで、Gremlin との互換性もない。
CAmazon Neptune を使用して Gremlin クエリをそのまま移行し、多ホップのグラフトラバーサルをサブ秒レイテンシで処理する
✓ 正解
Amazon Neptune は Gremlin(Property Graph)と SPARQL(RDF)の両クエリ言語をサポートするグラフ特化型マネージド DB で、多ホップトラバーサルをサブ秒で処理でき、既存 Gremlin クエリを移行コストなしで利用できる。
DAmazon Aurora PostgreSQL で WITH RECURSIVE 構文を使用して自己結合クエリを多段階に実行する
Amazon Aurora PostgreSQL の WITH RECURSIVE 構文はグラフ的な再帰処理を SQL で表現できるが、トラバーサル深度が増すにつれてパフォーマンスが指数的に劣化し、Gremlin クエリとの互換性もなく移行コストが大きい。
解説
Amazon Neptune はグラフデータベースのマネージドサービスで、Property Graph(Gremlin)と RDF(SPARQL)の両クエリ言語をサポートする。グラフトラバーサルに最適化されたクエリエンジンを持ち、数百万ノード・エッジ間の多ホップ接続をサブ秒で処理できる。既存の Gremlin クエリをそのまま移行できるため書き換えコストも最小化できる。
選択肢Aの Amazon DynamoDB アジャセンシーリストパターンは隣接ノードの取得は可能だが、不特定ホップ数のグラフトラバーサルには多数回のクエリが必要で、1秒未満のレイテンシ要件を安定して満たせない。
選択肢Bの Amazon Redshift 再帰 CTE はリレーショナルデータのグラフ分析に利用できるが、データウェアハウス向けの設計でリアルタイムの低レイテンシトラバーサルには不向きで、Gremlin との互換性もない。
選択肢Dの Amazon Aurora PostgreSQL WITH RECURSIVE 構文は少ホップなら機能するが、不特定深度のトラバーサルではパフォーマンスが急激に低下し、Gremlin クエリとの互換性もなく移行コストが高い。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →