Amazon Neptune の開始方法 - Amazon Neptune

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

Amazon Neptune の開始方法

Amazon Neptune はフルマネージド型のグラフデータベースサービスで、数十億のリレーションシップを処理するように拡張でき、ミリ秒のレイテンシーでクエリを実行でき、その種類の容量に対して低コストでクエリを実行できます。

Neptune に関するより詳細な情報をお探しの場合は、Amazon Neptune の機能の概要

グラフについて既にわかっている場合は、先に進んでください。グラフノートブックを使用する。または、Neptune データベースをすぐに作成する場合は、AWS CloudFormation Stack を使用して Neptune DB クラスターを作成する

そうしないと、始める前にグラフデータベースについてもう少し詳しく知りたいかもしれません。

具体的に何ですかですグラフデータベース?

グラフデータベースは、関係データ項目間。

データアイテム自体を次のように格納します。頂点グラフの、およびそれらの間の関係は。各エッジにはタイプがあり、ある頂点 (始点) から別の頂点 (終点) に向けられます。関係を呼ぶことができる述語だけでなく、エッジや頂点と呼ばれることもあります。ノード。いわゆるプロパティグラフでは、頂点とエッジの両方が追加のものを持つことができます。物性彼らにも関連付けられています。

ソーシャルネットワーク内の友達や趣味を表す小さなグラフは次のとおりです。

ソーシャルネットワーク内の人々や趣味の関係を示す図。

エッジは名前の付いた矢印で表示され、頂点は接続する特定の人物や趣味を表します。

このグラフの単純な探索により、Justin の友だちについて知ることができます。

グラフデータベースを使用する理由

モデル化するデータの核となるのは、エンティティ間の接続またはリレーションシップの場合には常に、グラフデータベースが適しています。

一つは、データ相互接続をグラフとしてモデル化し、グラフから実世界の情報を抽出する複雑なクエリを作成するのは簡単です。

リレーショナルデータベースを使用して同等のアプリケーションを構築するには、複数の外部キーを持つ多数のテーブルを作成し、ネストされた SQL クエリと複雑な結合を記述する必要があります。このアプローチは、コーディングの観点からすぐに扱いにくくなるだけでなく、データ量が増えるにつれてパフォーマンスが急速に低下します。

対照的に、Neptune のようなグラフデータベースは、何十億もの頂点間の関係を乱すことなくクエリできます。

グラフデータベースで何ができるの?

グラフは、アクション、所有権、親子関係、購入の選択、個人的なつながり、家族の関係などの観点から、現実世界のエンティティの相互関係をさまざまな方法で表すことができます。

グラフデータベースが使用される最も一般的な領域を次に示します。

  • ナレッジグラフ:ナレッジグラフを使用すると、接続されているあらゆる種類の情報を整理してクエリして、一般的な質問に答えることができます。ナレッジグラフを使用して、トピック情報を製品カタログに追加し、に含まれるのような多様な情報をモデル化できます。ウィキデータ

    ナレッジグラフがどのように機能し、使用されているかについては、を参照してください。ナレッジグラフAWS

  • ID グラフ— グラフデータベースでは、顧客の興味、友人、購入履歴のような情報カテゴリの間の関係を格納し、データをクエリして、パーソナライズされた関連性のある推奨事項を作成できます。

    たとえば、グラフデータベースを使用して、同じスポーツに従う他のユーザーが購入し、同様の購入履歴を持つ他のユーザーが購入した製品に基づいて、ユーザーに製品の推奨を行うことができます。または、共通の友人がいて、お互いはまだ知り合っていない人物を特定し、友情の推奨を行うことができます。

    この種のグラフはアイデンティティグラフと呼ばれ、ユーザーとのインタラクションをパーソナライズするために広く使用されています。詳細については、「」を参照してください。上のアイデンティティグラフAWS。独自のアイデンティティグラフの作成を開始するには、まずAmazon Neptune を使用したアイデンティティグラフサンプル。

  • 不正グラフ— これは、グラフデータベースの一般的な使用法です。これらは、クレジットカードの購入と購入場所を追跡して、特徴的でない使用を検出したり、購入者が既知の不正行為で使用したのと同じメールアドレスとクレジットカードを使用しようとしていることを検出するのに役立ちます。ユーザーは、1 つの個人用 E メールアドレスに関連付けられている複数の人や、同じ IP アドレスを共有する異なる物理的な場所にいる複数の人物をチェックできます。

    次のグラフの場合を考えます。これは、3 人の関係と ID 関連情報を示しています。それぞれの人物に、住所、銀行口座、および社会保障番号があります。ただし、Matt と Justin は同じ社会保障番号を共有していることがわかります。これは不規則であり、そのうちの1つによる不正の可能性が示されています。不正グラフへのクエリは、この種の接続を明らかにし、レビューできます。

    人物と個人情報間の関係を示す図。

    不正グラフとその使用場所の詳細については、「」を参照してください。不正グラフAWS

  • ソーシャルネットワーキング— グラフデータベースが使用される最初で最も一般的な領域の 1 つは、ソーシャルネットワーキングアプリケーションです。

    たとえば、Web サイトにソーシャルフィードを構築するとします。バックエンドのグラフデータベースを使用して、家族、友人、更新に「好き」したユーザー、近くに住む人々からの最新の更新を反映した結果をユーザーに提供できます。

  • 道順— グラフは、現在のトラフィックと一般的なトラフィックパターンを考慮して、始点から目的地までの最適なルートを見つけるのに役立ちます。

  • ロジスティクス:グラフは、お客様の要件を満たすために利用可能な出荷および配送リソースを使用する最も効率的な方法を特定するのに役立ちます。

  • 診断機能— グラフは、観測された問題や障害の原因を特定するために照会できる複雑な診断ツリーを表すことができます。

  • 科学研究:グラフデータベースを使用すると、保存時の暗号化を使用して、科学データ、機密医療情報を保存およびナビゲートするCANアプリケーションを構築できます。たとえば、疾患と遺伝子の相互関係モデルを保存できます。タンパク質の経路内でグラフパターンを検索して、疾患と関連する可能性がある他の遺伝子を見つけることができます。化学物質をグラフとしてモデル化し、分子構造のパターンに対してクエリを実行できます。さまざまなシステムで医療記録の患者データを関連付けることができます。題目別に研究出版物を整理して関連する情報をすばやく見つけることができます。

  • 規制規則:複雑な規制要件をグラフとして保存し、クエリを実行して、その要件がお客様に適用される可能性のある状況を検出できます。day-to-dayビジネスオペレーション。

  • ネットワークトポロジとイベント:グラフデータベースは、IT ネットワークの管理と保護に役立ちます。ネットワークトポロジをグラフとして保存すると、ネットワーク上でさまざまな種類のイベントを保存して処理することもできます。特定のアプリケーションを実行しているホストの数などの質問に答えることができます。特定のホストが悪意のあるプログラムによって侵害されたことを示す可能性のあるパターンを照会し、そのホストをダウンロードした元のホストへのプログラムのトレースに役立つ接続データを照会できます。

グラフをどう照会しますか。

Neptune は、異なる種類のグラフデータをクエリするために設計された 3 つの特殊目的のクエリ言語をサポートしています。次の言語を使用して、Neptune グラフデータベース内のデータの追加、変更、削除、およびクエリを実行できます。

  • Gremlinは、プロパティグラフのトラバーサル言語です。Gremlin のクエリは個別のステップで構成されたトラバーサルであり、各ステップはノードへのエッジに従います。Gremlin のドキュメントを参照してください。アパッチTinkerPop3詳細については.

    Gremlin の実装には、他の実装とはいくつかの違いがあります。特に Gremlin-Groovy (シリアル化されたテキストとして送信されるGremlin クエリ) を使用している場合です。詳細については、「Amazon Neptune の Gremlin 標準への準拠」を参照してください。

  • openCypher— OpenencyPher は、プロパティグラフの宣言型クエリ言語である。当初はNeo4jが開発し、その後2015年にオープンソース化された。opencyPherApache 2 オープンソースライセンスの下でプロジェクト。フレームワークの使用の詳細については、Cypher クエリ言語リファレンス (バージョン 9)言語仕様については、サイファースタイルガイド詳細については.

  • SPARQLの宣言型クエリ言語ですかRDFデータ。World Wide Web Consortium (W3C) によって標準化され、で説明されているグラフパターンマッチングに基づいています。SPARQL 1.1 概要) とSPARQL 1.1 クエリ言語仕様。「」を参照してください。Amazon Neptune の SPARQL 標準への準拠SPARQL の Neptune 実装の詳細については。

Gremlin と SPARQL クエリの一致例

人物 (ノード) とその関係 (エッジ) の以下のグラフが与えられると、特定の人物の「友達の友達」(たとえば、Howard の友達の友達など) が誰かを調べることができます。

友達関係を含む人物間の関係を示す図。

グラフを見ると、Howard には Jack という 1 人の友達がいて、Jack には 4 人の友達がいることがわかります。アニー、ハリー、ダグ、マック。これは簡単なグラフを使用した単純な例ですが、これらのタイプのクエリは複雑性、データセット、および結果のサイズにおいてスケーリングできます。

以下は、Howard の友達の友達の名前を返す Gremlin トラバーサルクエリです。

g.V().has('name', 'Howard').out('friend').out('friend').values('name')

以下は、Howard の友達の友達の名前を返す SPARQL クエリです。

prefix : <#> select ?names where { ?howard :name "Howard" . ?howard :friend/:friend/:name ?names . }
注記

リソース記述フレームワーク (RDF) トリプルの各要素には、それに関連付けられた URI があります。上記の例では、URI プレフィックスは意図的に短くしています。

Amazon Neptune の使用に関するオンラインコースを受講する

動画で学ぶのが好きならAWSでオンラインコースを提供していますAWSオンライン技術トークあなたが行くのを助けるために:

    Amazon Neptune の開始方法

このコースは、Amazon Neptune のセットアップと使用の手順を示す 7 つのビデオで構成されています。

グラフのリファレンスアーキテクチャを深く掘り下げる

グラフデータベースがあなたのために解決できる問題と、それにどのようにアプローチするかについて考えるとき、まず第一に良い場所の1つはNeptune グラフのリファレンスアーキテクチャGitHub事業

ここでは、グラフ・ワークロード・タイプの詳細な説明と、効果的なグラフ・データベースの設計に役立つ3つのセクションがあります。

  • データモデルとクエリ言語— このセクションでは、Gremlin と SPARQL の違いと、それらの間の選択方法について説明します。

  • グラフデータモデリング— これは、グレムリンを使用したプロパティグラフモデリングの詳細なウォークスルーや、SPARQL を使用したRDFモデリングなど、グラフデータモデリングの決定方法に関する徹底的な議論です。

  • 他のデータモデルをグラフモデルに変換する— ここでは、リレーショナル・データ・モデルをグラフ・モデルに変換する方法について説明します。

また、Neptune を使用するための具体的な手順を説明する 3 つのセクションがあります。