Neptune ローダーコマンド - Amazon Neptune

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

Neptune ローダーコマンド

Amazon S3 バケットから Neptune DB インスタンスにデータをロードします。

データをロードするには、https://your-neptune-endpoint:port/loaderエンドポイントにHTTPPOSTリクエストを送信する必要があります。loader リクエストのパラメータは、POST本文またはURLエンコードされたパラメータとして送信できます。

重要

MIME タイプは である必要がありますapplication/json

S3 バケットは、クラスターと同じ AWS リージョンにある必要があります。

注記

Amazon S3 SSE-S3 モードを使用して暗号化されている場合は、Amazon S3 から暗号化されたデータを読み込むことができます。その場合、Neptune はユーザーの認証情報を偽装し、ユーザーに代わって s3:getObject 呼び出しを発行することができます。

IAM ロールに へのアクセスに必要なアクセス許可が含まれている限り、 SSE-KMS を使用して暗号化された Amazon S3 から暗号化されたデータをロードすることもできます AWS KMS。適切な AWS KMS アクセス許可がない場合、一括ロードオペレーションは失敗し、LOAD_FAILEDレスポンスを返します。

Neptune は現在 SSE-C モードを使用して暗号化された Amazon S3 データのロードをサポートしていません。

別のジョブを開始する前に、1 つのロードジョブが完了するのを待つ必要はありません。Neptune は、queueRequest パラメータがすべて "TRUE" に設定されている場合、一度に最大 64 個のロードリクエストをキューに入れることができます。ジョブのキュー順序は () になります first-in-first-outFIFO。一方、ロードジョブをキューに入れたくない場合は、queueRequest パラメータを "FALSE" (デフォルト) に設定して、別のジョブがすでに進行中の場合にロードジョブが失敗するようにできます。

dependencies パラメータを使用して、キュー内で指定した以前のジョブが正常に完了した場合にのみ実行するジョブをキューに入れることができます。その場合、指定したジョブのいずれかが失敗すると、ジョブは実行されず、ステータスは LOAD_FAILED_BECAUSE_DEPENDENCY_NOT_SATISFIED に設定されます。

Neptune ローダーリクエストの構文

{ "source" : "string", "format" : "string", "iamRoleArn" : "string", "mode": "NEW|RESUME|AUTO", "region" : "us-east-1", "failOnError" : "string", "parallelism" : "string", "parserConfiguration" : { "baseUri" : "http://base-uri-string", "namedGraphUri" : "http://named-graph-string" }, "updateSingleCardinalityProperties" : "string", "queueRequest" : "TRUE", "dependencies" : ["load_A_id", "load_B_id"] }

Neptune ローダーのリクエストパラメータ

  • source – Amazon S3 URI。

    SOURCE パラメータは、単一のファイル、複数のファイル、フォルダ、または複数のフォルダURIを識別する Amazon S3 を受け入れます。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

    object-key-name要素は、Amazon S3 ListObjectsAPI呼び出しのプレフィックスパラメータと同等URIです。これは、名前がそのプレフィックスで始まる指定された Amazon S3 バケット内のすべてのオブジェクトを識別します。これは、単一のファイルまたはフォルダ、または複数のファイルやフォルダにすることができます。

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

    例えば、 という名前の Amazon S3 バケットに次のフォルダ構造とファイルがある場合ですbucket-name

    s3://bucket-name/a/bc s3://bucket-name/ab/c s3://bucket-name/ade s3://bucket-name/bcd

    ソースパラメータが として指定されている場合s3://bucket-name/a、最初の 3 つのファイルがロードされます。

    s3://bucket-name/a/bc s3://bucket-name/ab/c s3://bucket-name/ade
  • format - データの形式。Neptune Loader コマンドのデータ形式の詳細については、Amazon Neptune バルクローダーを使用してデータを取り込む を参照してください。

    許可される値
  • iamRoleArn – S3 バケットにアクセスするために Neptune DB インスタンスが引き受けるIAMロールの Amazon リソースネーム (ARN)。Amazon S3 にアクセスできるロールを作成し、Neptune クラスターに関連付ける方法の詳細については、前提条件: IAMロールと Amazon S3 アクセス を参照してください。

    エンジンリリース 1.2.1.0.R3 以降では、Neptune DB インスタンスと Amazon S3 バケットが異なる AWS アカウントにある場合、複数のIAMロールを連鎖させることもできます。この場合、 iamRoleArnには、「」で説明されているようにARNs、ロール のカンマ区切りリストが含まれていますAmazon Neptune でのIAMロールの連鎖。例:

    curl -X POST https://localhost:8182/loader \ -H 'Content-Type: application/json' \ -d '{ "source" : "s3://(the target bucket name)/(the target date file name)", "iamRoleArn" : "arn:aws:iam::(Account A ID):role/(RoleA),arn:aws:iam::(Account B ID):role/(RoleB),arn:aws:iam::(Account C ID):role/(RoleC)", "format" : "csv", "region" : "us-east-1" }'
  • regionregionパラメータは、クラスターの AWS リージョンと S3 バケットと一致する必要があります。

    Amazon Neptune は、次のリージョンで利用できます。

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

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

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

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

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

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

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

    • 欧州 (スペイン): eu-south-2

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

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

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

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

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

    • 中東 (UAE): me-central-1

    • イスラエル (テルアビブ): il-central-1

    • アフリカ (ケープタウン): af-south-1

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

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

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

    • アジアパシフィック (大阪): ap-northeast-3

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

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

    • アジアパシフィック (ジャカルタ): ap-southeast-3

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

    • 中国 (北京): cn-north-1

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

    • AWS GovCloud (米国西部): us-gov-west-1

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

  • mode - ロードジョブモード。

    使用できる値: RESUMENEWAUTO

    デフォルト値: AUTO

    • RESUME – RESUMEモードでは、ローダーはこのソースからの以前のロードを検索し、検出されると、そのロードジョブを再開します。以前のロードジョブが見つからない場合、ローダーは停止します。

      ローダーは、以前のジョブで正常にロードされたファイルの再ロードを回避します。失敗したファイルの処理のみを試行します。以前にロードしたデータを Neptune クラスターから削除している場合、そのデータはこのモードでは再ロードされません。以前のロードジョブが同じソースからすべてのファイルを正常にロードした場合、何も再ロードされず、ローダーは成功を返します。

    • NEW – NEWモードでは、 は以前のロードに関係なく新しいロードリクエストを作成します。このモードを使用して、以前にロードされたデータを Neptune クラスターから削除した後にソースからすべてのデータを再ロードしたり、同じソースから利用可能な新しいデータをロードしたりするために使用できます。

    • AUTO – AUTOモードでは、ローダーは同じソースから以前のロードジョブを検索し、検出された場合、 はRESUMEモードと同様にそのジョブを再開します。

      ローダーが同じソースから以前のロードジョブを見つけられない場合、NEW モードの場合と同様に、ソースからすべてのデータがロードされます。

  • failOnError - エラー時に完全な停止を切り替えるフラグ。

    使用できる値: "TRUE""FALSE"

    デフォルト値: "TRUE"

    このパラメータを "FALSE" に設定すると、ローダーは指定された場所のすべてのデータをロードし、エラーのあるエントリはスキップします。

    このパラメータを "TRUE" に設定すると、ローダーはエラー発生時にすぐに停止します。その時点までロードされたデータは保持されます。

  • parallelism - これは、一括ロードプロセスで使用されるスレッド数を減らすように設定することができるオプションのパラメータです。

    許可される値:

    • LOW – 使用されるスレッドの数は、使用可能な数を 8 で vCPUs 割ったものです。

    • MEDIUM – 使用されるスレッドの数は、使用可能な数を 2 で vCPUs 割ったものです。

    • HIGH – 使用されるスレッドの数は、使用可能な の数と同じですvCPUs。

    • OVERSUBSCRIBE – 使用されるスレッドの数は、使用可能な数に 2 を vCPUs 掛けたものです。この値を使用する場合、バルクローダーは利用可能なすべてのリソースを消費します。

      ただし、OVERSUBSCRIBEこの設定によってCPU使用率が 100% になるわけではありません。ロードオペレーションは I/O バウンドであるため、予想される最大CPU使用率は 60%~70% の範囲です。

    デフォルト値: HIGH

    parallelism この設定により、 openCypher データのロード時にスレッド間でデッドロックが発生することがあります。こうなると、Neptune は LOAD_DATA_DEADLOCK というエラーを返します。通常、この問題は次のようにして修正できます。parallelism より低い設定にし、ロードコマンドを再試行します。

  • parserConfiguration - 追加のパーサー設定値のあるオプションのオブジェクト。それぞれの子パラメータもオプションです。

    名前 値の例 説明
    namedGraphUri http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph グラフが指定されていない場合の、すべてのRDF形式のデフォルトグラフ (非クワッド形式とグラフなしNQUADのエントリの場合)。デフォルトは です。http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph
    baseUri http://aws.amazon.com/neptune/default RDF/ URI XML およびタートル形式のベース。デフォルト: http://aws.amazon.com/neptune/default
    allowEmptyStrings true

    Gremlin ユーザーは、CSVデータをロードするときに、空の文字列値 (「」) をノードおよびエッジプロパティとして渡す必要があります。allowEmptyStringsfalse (デフォルト) に設定されている場合、そのような空の文字列は NULL として扱われ、ロードされません。

    allowEmptyStringstrue に設定されている場合、ローダーは空の文字列を有効なプロパティ値として扱い、それに応じてロードします。

    詳細については、「SPARQL デフォルトのグラフと名前付きグラフ」を参照してください。

  • updateSingleCardinalityProperties - これは、バルクローダーが単一濃度の頂点またはエッジプロパティの新しい値を処理する方法を制御するオプションのパラメータです。これは openCypher データのロードではサポートされていません (「」を参照 openCypher データのロード)。

    使用できる値: "TRUE""FALSE"

    デフォルト値: "FALSE"

    デフォルトでは、または updateSingleCardinalityProperties が明示的に "FALSE" に設定されている場合、ローダーは単一の濃度に違反するため、新しい値をエラーとして扱います。

    一方、updateSingleCardinalityProperties"TRUE" に設定されている場合、バルクローダーは既存の値を新しい値に置き換えます。ロードされるソースファイルで複数のエッジまたは単一濃度の頂点プロパティ値が指定されている場合、バルクロードの終了時の最終値は、これらの新しい値のいずれかになります。ローダーは、既存の値が新しい値の 1 つに置き換えられたことを保証します。

  • queueRequest - これは、ロードリクエストをキューに入れることができるかどうかを示すオプションのフラグパラメータです。

    queueRequest パラメータをすべて "TRUE"に設定している場合、Neptune は一度に最大 64 個のジョブをキューに入れることができるので、次のジョブを発行する前に 1 つのロードジョブが完了するのを待つ必要はありません。ジョブのキュー順序は () になります first-in-first-outFIFO。

    queueRequest パラメータを省略するるか、"FALSE" に設定した場合、別のロードジョブがすでに実行されていると、ロードリクエストは失敗します。

    使用できる値: "TRUE""FALSE"

    デフォルト値: "FALSE"

  • dependencies - これは、キュー内の 1 つ以上の前のジョブが正常に完了することを条件に、キューに入れられたロードリクエストを作成することができるオプションのパラメータです。

    Neptune は、queueRequest パラメータが "TRUE" に設定されている場合、一度に最大 64 個のロードリクエストをキューに入れることができます。dependencies パラメータを使用すると、キュー内で指定された 1 つ以上前のリクエストが正常に完了したかどうかに応じて、キューに入れられたそのようなリクエストを実行できます。

    たとえば、ロード Job-AJob-B が互いに独立しているものの、ロード Job-C を開始する前に Job-A および Job-B を終了する必要がある場合は、次の手順を実行します。

    1. 任意の順序で load-job-Aload-job-B を 1 つずつ送信し、load-id を保存します。

    2. dependencies フィールドで 2 つのジョブの load-id を付けて load-job-C を送信します。

    "dependencies" : ["job_A_load_id", "job_B_load_id"]

    dependencies パラメータのため、Job-AJob-B が正常に完了するまで、バルクローダーは Job-C を起動しません。いずれかが失敗すると、Job-C は実行されず、そのステータスは LOAD_FAILED_BECAUSE_DEPENDENCY_NOT_SATISFIED に設定されます。

    この方法で複数のレベルの依存関係を設定できます。これにより、1 つのジョブが失敗すると、直接的または間接的に依存するすべてのリクエストがキャンセルされます。

  • userProvidedEdgeIds – このパラメータは、関係 を含む openCypher データをロードする場合にのみ必要ですIDs。ロードデータに openCypher 関係IDsが明示的に提供されるTrue場合 (推奨)、含めて に設定する必要があります。

    userProvidedEdgeIds がないか、True に設定されている場合、:ID 列は、ロード内のすべてのリレーションシップファイルにある必要があります。

    userProvidedEdgeIds があり、False に設定されている場合、ロード内のリレーションシップファイルに :ID 列があってはなりません。代わりに、Neptune ローダーは各リレーションシップの ID を自動的に生成します。

    すでにロードされているリレーションシップを再ロードしなくても、CSVデータのエラーが修正された後にローダーがロードを再開できるように、リレーションシップをIDs明示的に提供しておくと便利です。関係IDsが明示的に割り当てられていない場合、関係ファイルを修正する必要がある場合、ローダーは失敗したロードを再開できず、代わりにすべての関係を再ロードする必要があります。

  • accessKey〔非推奨〕 S3 バケットとデータファイルにアクセスできるIAMロールのアクセスキー ID。

    代わりに、iamRoleArn パラメータを使用することをお勧めします。Amazon S3 にアクセスできるロールを作成し、Neptune クラスターに関連付ける方法の詳細については、前提条件: IAMロールと Amazon S3 アクセス を参照してください。

    詳細については、「アクセスキー (アクセスキー ID とシークレットアクセスキー)」を参照してください。

  • secretKey   –   [非推奨] 代わりに iamRoleArn パラメータを使用することをお勧めします。Amazon S3 にアクセスできるロールを作成し、Neptune クラスターに関連付ける方法の詳細については、前提条件: IAMロールと Amazon S3 アクセス を参照してください。

    詳細については、「アクセスキー (アクセスキー ID とシークレットアクセスキー)」を参照してください。

Neptune ローダーレスポンスの構文

{ "status" : "200 OK", "payload" : { "loadId" : "guid_as_string" } }
200 OK

ロードジョブが正常に開始されると 200 コードが返されます。