例: Neptune DB インスタンスにデータをロードする - Amazon Neptune

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

例: Neptune DB インスタンスにデータをロードする

この例では、Amazon Neptune にデータをロードする方法を示しています。別途指定されていない限り、Neptune DB インスタンス として、同じ Amazon Virtual Private Cloud (VPC) の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスからの手順に従います。

データをロードする例の前提条件

始めるには以下のものが必要です。

  • A Neptune DB インスタンス。

    Neptune DB インスタンス の起動方法についての詳細は、「Neptune の使用開始」を参照してください。

  • データファイルを格納する Amazon Simple Storage Service (Amazon S3) バケット。

    既存のバケットを使用することもできます。S3 バケットがない場合は、『Amazon S3 入門ガイド』の「バケットの作成」を参照してください。

  • ロードするグラフデータ (Neptune ローダーでサポートされている形式のいずれか):

    Gremlin を使用してグラフのクエリを実行している場合、Neptune では、Gremlin ロードデータ形式 の説明に従って、カンマ区切り値 (CSV) 形式でデータをロードできます。

    SPARQL を使用している場合、Neptune は多くの RDF 形式でデータをロードできます (「RDF ロードデータ形式」を参照)。

  • S3 バケット内のデータファイルへのアクセスを許可する IAM ポリシーが設定されている Neptune DB インスタンス の IAM ロール。このポリシーが読み取りとリストアクセス許可を付与する必要があります。

    Amazon S3 にアクセスできるロールを作成し、Neptune クラスターに関連付ける方法の詳細については、「前提条件: IAM ロールと Amazon S3 アクセス」を参照してください。

    注記

    Neptune Load API には、データファイルへの読み取りアクセスが必要です。IAM ポリシーに書き込みアクセスまたはバケット全体へのアクセスを許可する必要はありません。

  • Amazon S3 VPC エンドポイント。詳細については、「Amazon S3 VPC エンドポイントの作成」セクションを参照してください。

Amazon S3 VPC エンドポイントの作成

Neptune ローダーには Amazon S3 の VPC エンドポイントが必要です。

Amazon S3 のアクセスをセットアップするには

  1. AWS マネジメントコンソールにサインインし、Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. 左のナビゲーションペインで [エンドポイント] を選択します。

  3. [Create Endpoint] を選択します。

  4. [Service Name] (サービス名) com.amazonaws.region.s3 を選択します。

    注記

    このリージョンが正しくない場合は、コンソールのリージョンが正しいことを確認してください。

  5. Neptune DB インスタンス を含む VPC を選択します。

  6. クラスターに関連するサブネットに関連付けられているルートテーブルの横にあるチェックボックスをオンにします。ルートテーブルが 1 つだけの場合は、そのボックスを選択する必要があります。

  7. [Create Endpoint] を選択します。

エンドポイントの作成の詳細については、『Amazon VPC ユーザーガイド』の「VPC エンドポイント」を参照してください。VPC エンドポイントの制限については、「Amazon S3 の VPC エンドポイント 」を参照してください。

Neptune DB インスタンス にデータをロードするには

  1. データファイルを Amazon S3 バケットにコピーします。S3 バケットは、データをロードするクラスターと同じ AWS リージョンにあることが必要です。

    次の AWS CLI コマンドを使用して、ファイルをバケットにコピーできます。

    注記

    このコマンドは、Amazon EC2 インスタンスから実行する必要はありません。

    aws s3 cp data-file-name s3://bucket-name/object-key-name
    注記

    Amazon S3 で、オブジェクトキー名は、ファイル名を含むファイルの完全なパスです。

    例: コマンド aws s3 cp datafile.txt s3://examplebucket/mydirectory/datafile.txt では、オブジェクトキー名は mydirectory/datafile.txt です。

    または、AWS マネジメントコンソール を使用して、ファイルを S3 バケットにアップロードできます。https://console.aws.amazon.com/s3/ で Amazon S3 コンソールを開き、バケットを選択します。左上隅の [Upload] (アップロード) を選択して、ファイルをアップロードします。

  2. コマンドラインウィンドウから以下のように入力して、Neptune ローダーを実行します。エンドポイント、Amazon S3 パス、形式、およびアクセスキーの値を置き換えます。

    format パラメータには次のいずれかの値を指定できます。csv (Gremlin)、ntriplesnquadsturtle、および rdfxml (RDF)。他のパラメータについての詳細は、「Neptune ローダーコマンド」を参照してください。

    Neptune DB インスタンス のホスト名を見つける方法については、「Amazon Neptune エンドポイントへの接続」セクションを参照してください。

    region パラメータの値はクラスターおよび S3 バケットのリージョンと一致する必要があります。

    Amazon Neptune は以下の AWS リージョンで利用できます。

    • 米国東部(バージニア北部):   us-east-1

    • 米国東部 (オハイオ):   us-east-2

    • 米国西部 (北カリフォルニア):   us-west-1

    • 米国西部 (オレゴン):   us-west-2

    • カナダ (中部):   ca-central-1

    • 南米 (サンパウロ):   sa-east-1

    • 欧州 (ストックホルム):   eu-north-1

    • 欧州 (アイルランド):   eu-west-1

    • 欧州 (ロンドン):   eu-west-2

    • 欧州 (パリ):   eu-west-3

    • 欧州 (フランクフルト):   eu-central-1

    • 中東 (バーレーン):   me-south-1

    • アジアパシフィック (香港):   ap-east-1

    • アジアパシフィック (東京):   ap-northeast-1

    • アジアパシフィック (ソウル):   ap-northeast-2

    • アジアパシフィック (シンガポール):   ap-southeast-1

    • アジアパシフィック (シドニー):   ap-southeast-2

    • アジアパシフィック (ムンバイ):   ap-south-1

    • 中国 (寧夏):   cn-northwest-1

    • AWS GovCloud (US-West):   us-gov-west-1

    • AWS GovCloud (米国東部):   us-gov-east-1

    curl -X POST \ -H 'Content-Type: application/json' \ https://your-neptune-endpoint:port/loader -d ' { "source" : "s3://bucket-name/object-key-name", "format" : "format", "iamRoleArn" : "arn:aws:iam::account-id:role/role-name", "region" : "region", "failOnError" : "FALSE", "parallelism" : "MEDIUM", "updateSingleCardinalityProperties" : "FALSE", "queueRequest" : "TRUE", "dependencies" : ["load_A_id", "load_B_id"] }'

    Neptune クラスターへの IAM ロールの作成と関連付けの詳細については、「前提条件: IAM ロールと Amazon S3 アクセス」を参照してください。

    注記

    ロードリクエストパラメータの詳細については、Neptune ローダーのリクエストパラメータ を参照してください。概要:

    source パラメータは、単一のファイルまたはフォルダを指す Amazon S3 URl を受け取ります。フォルダを指定すると、Neptune はフォルダ内のすべてのデータファイルをロードします。

    フォルダには複数の頂点ファイルおよび複数のエッジファイルが含まれている場合があります。

    URI は、以下の形式のいずれかになります。

    • s3://bucket_name/object-key-name

    • https://s3.amazonaws.com/bucket_name/object-key-name

    • https://s3-us-east-1.amazonaws.com/bucket_name/object-key-name

    この format パラメータは、次のいずれかになります。

    • プロパティグラフの CSV 形式 (csv) / Gremlin

    • RDF の N -Triples (ntriples) 形式 / SPARQL

    • RDF の N-Quads (nquads) 形式 / SPARQL

    • RDF の RDF/XML (rdfxml) 形式 / SPARQL

    • RDF の Turtle (turtle) 形式 / SPARQL

    オプションの parallelism パラメータを使用すると、バルクロードプロセスで使用されるスレッドの数を制限できます。LOWMEDIUMHIGH、または OVERSUBSCRIBE に設定できます。

    updateSingleCardinalityProperties"FALSE" に設定すると、エッジまたは単一カーディナリティ頂点プロパティにロードされているソースファイルに複数の値が指定されている場合、ローダーはエラーを返します。

    queueRequest"TRUE" に設定すると、ロードジョブがすでに実行されている場合、キューにロードリクエストが配置されます。

    dependencies パラメータは、すでにキューに配置されている 1 つ以上のロードジョブが正常に完了した場合に、ロードリクエストを実行します。

  3. Neptune ローダーは、ステータスを確認したり、ロードプロセスをキャンセルしたりできるジョブ id を返します。

    { "status" : "200 OK", "payload" : { "loadId" : "ef478d76-d9da-4d94-8ff1-08d9d4863aa5" } }
  4. ステップ 3loadId でロードのステータスを取得するには、次のように入力します。

    curl -G 'https://your-neptune-endpoint:port/loader/ef478d76-d9da-4d94-8ff1-08d9d4863aa5'

    ロードのステータスにエラーが表示されている場合は、より詳細なステータスとエラーのリストをリクエストできます。詳細な説明と例については、「Neptune Loader Get-Status API」を参照してください。

  5. (オプション) Load ジョブをキャンセルします。

    ステップ 3 のジョブ id で、ローダージョブを Delete するには、次のように入力します。

    curl -X DELETE 'https://your-neptune-endpoint:port/loader/ef478d76-d9da-4d94-8ff1-08d9d4863aa5'

    この DELETE コマンドを使用すると、キャンセルが成功したときに HTTP コード 200 OK が返されます。

    ロードが完了したロードジョブのファイルからのデータはロールバックされません。データは Neptune DB インスタンス に残ります。