翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Neptune ローダーコマンド
Amazon S3 バケットから Neptune DB インスタンスにデータをロードします。
データをロードするには、POST エンドポイントに、HTTP https:// リクエストを送信する必要があります。your-neptune-endpoint:port/loaderloader リクエストのパラメータは、POST 本文、または URL エンコードされたパラメータとして送信できます。
重要
MIME タイプは、application/json である必要があります。
Amazon S3 バケットは、クラスターと同じ AWS リージョンにある必要があります。
注記
Amazon S3 SSE-S3 モードを使用して暗号化されている場合は、Amazon S3 から暗号化されたデータを読み込むことができます。その場合、Neptune はユーザーの認証情報を偽装し、ユーザーに代わって s3:getObject 呼び出しを発行することができます。
また、IAM ロールに AWS KMSにアクセスするために必要なアクセス権限が含まれている限り、SSE-KMS モードを使用して暗号化された Amazon S3 から、暗号化されたデータをロードすることもできます。適切な AWS KMS アクセス許可がない場合、一括ロードオペレーションは失敗し、LOAD_FAILEDレスポンスを返します。
Neptune は現在 SSE-C モードを使用して暗号化された Amazon S3 データのロードをサポートしていません。
別のジョブを開始する前に、1 つのロードジョブが完了するのを待つ必要はありません。Neptune は、queueRequest パラメータがすべて "TRUE" に設定されている場合、一度に最大 64 個のロードリクエストをキューに入れることができます。ジョブのキューの順序は、FIFO (先入れ先出し) です。一方、ロードジョブをキューに入れたくない場合は、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"] }
edgeOnlyLoad 構文
の場合edgeOnlyLoad、構文は次のとおりです。
{ "source" : "string", "format" : "string", "iamRoleArn" : "string", "mode": "NEW|RESUME|AUTO", "region" : "us-east-1", "failOnError" : "string", "parallelism" : "string", "edgeOnlyLoad" : "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パラメータは、単一のファイル、複数のファイル、1 つのフォルダ、または複数のフォルダを識別する Amazon S3 URI を受け入れます。Neptune は、指定されたフォルダ内のすべてのデータファイルをロードします。URI は、以下の形式のいずれかになります。
s3://bucket_name/object-key-namehttps://s3.amazonaws.com/bucket_name/object-key-namehttps://s3.us-east-1.amazonaws.com/bucket_name/object-key-name
URI の
object-key-name要素は、Amazon S3 の ListObjects API コール内のプレフィックスパラメータと同等です。これは、名前がそのプレフィックスで始まる指定された 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- データの形式。NeptuneLoaderコマンドのデータ形式の詳細については、Amazon Neptune バルクローダーを使用してデータを取り込む を参照してください。許可される値
csvGremlin CSV データ形式用。opencypheropenCypher CSV データ形式用。ntriplesN-Triples RDF データ形式用。 nquadsN-Quads RDF データ形式用。 rdfxmlRDF\XML RDF データ形式用。 turtleTurtle RDF データ形式用。
-
iamRoleArn- S3 バケットにアクセスするために、Neptune DB インスタンスによって想定される IAM ロールの Amazon リソースネーム (ARN)。Amazon S3 にアクセスできるロールを作成し、Neptune クラスターに関連付ける方法の詳細については、前提条件: IAM ロールと Amazon S3 アクセス を参照してください。エンジンリリース 1.2.1.0.R3 以降、Neptune DB インスタンスと Amazon S3 バケットが異なる AWS アカウントにある場合、複数の IAM ロールを連鎖させることもできます。この場合、Amazon Neptune で IAM ロールを連鎖する で説明されているように、
iamRoleArnにはロール ARN のカンマ区切りのリストが含まれます。例: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" }' -
region–regionパラメータは、クラスターの AWS リージョンと S3 バケットと一致する必要があります。Amazon Neptune は、次のリージョンで利用できます。
米国東部 (バージニア北部):
us-east-1米国東部 (オハイオ):
us-east-2米国西部 (北カリフォルニア):
us-west-1米国西部 (オレゴン):
us-west-2カナダ (中部):
ca-central-1カナダ西部 (カルガリー):
ca-west-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中東 (アラブ首長国連邦):
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-southeast-4アジアパシフィック (マレーシア):
ap-southeast-5アジアパシフィック (ムンバイ):
ap-south-1中国 (北京):
cn-north-1中国 (寧夏):
cn-northwest-1AWS GovCloud (米国西部):
us-gov-west-1AWS GovCloud (米国東部):
us-gov-east-1
-
mode- ロードジョブモード。使用できる値:
RESUME、NEW、AUTO。デフォルト値:
AUTO-
RESUME- RESUME モードでは、ローダーはこのソースからの以前のロードを検索し、見つかった場合は、そのロードジョブを再開します。以前のロードジョブが見つからない場合、ローダーは停止します。ローダーは、以前のジョブで正常にロードされたファイルの再ロードを回避します。失敗したファイルの処理のみを試行します。以前にロードしたデータを Neptune クラスターから削除している場合、そのデータはこのモードでは再ロードされません。以前のロードジョブが同じソースからすべてのファイルを正常にロードした場合、何も再ロードされず、ローダーは成功を返します。
NEW- NEW モードでは、以前のロードに関係なく、新しいロードリクエストが作成されます。このモードを使用して、以前にロードされたデータを Neptune クラスターから削除した後にソースからすべてのデータを再ロードしたり、同じソースから利用可能な新しいデータをロードしたりするために使用できます。-
AUTO- AUTO モードでは、ローダーは同じソースから以前のロードジョブを検索し、見つかった場合は、RESUMEモードと同様にそのジョブを再開します。ローダーが同じソースから以前のロードジョブを見つけられない場合、
NEWモードの場合と同様に、ソースからすべてのデータがロードされます。
-
-
edgeOnlyLoad– 一括ロード中のファイル処理順序を制御するフラグ。使用できる値:
"TRUE"、"FALSE"。デフォルト値:
"FALSE"。このパラメータを「FALSE」に設定すると、ローダーは最初に頂点ファイルを自動的にロードし、次にエッジファイルをロードします。これを行うには、まずすべてのファイルをスキャンしてその内容 (頂点またはエッジ) を決定します。このパラメータを「TRUE」に設定すると、ローダーは最初のスキャンフェーズをスキップし、表示された順序ですべてのファイルをすぐにロードします。詳細については、「一括ロードの最適化」を参照してください。
-
failOnError- エラー時に完全な停止を切り替えるフラグ。使用できる値:
"TRUE"、"FALSE"。デフォルト値:
"TRUE"。このパラメータを
"FALSE"に設定すると、ローダーは指定された場所のすべてのデータをロードし、エラーのあるエントリはスキップします。このパラメータを
"TRUE"に設定すると、ローダーはエラー発生時にすぐに停止します。その時点までロードされたデータは保持されます。 -
parallelism- これは、一括ロードプロセスで使用されるスレッド数を減らすように設定することができるオプションのパラメータです。許可される値:
LOW- 使用されるスレッドの数は、コア数を 8 で割った値です。MEDIUM- 使用されるスレッドの数は、コア数を 2 で割った値です。HIGH- 使用されるスレッドの数は、コア数と同じです。-
OVERSUBSCRIBE- 使用されるスレッドの数は、コア数に 2 をかけた値です。この値を使用する場合、バルクローダーは利用可能なすべてのリソースを消費します。ただし、これは、
OVERSUBSCRIBE設定すると、CPU 使用率が 100% になります。ロードオペレーションは I/O バウンドであるため、予想される CPU 最高使用率は 60% ~ 70% の範囲にあります。
デフォルト値:
HIGHparallelismopenCypher データをロードするときに、設定によってスレッド間でデッドロックが発生することがあります。こうなると、Neptune はLOAD_DATA_DEADLOCKというエラーを返します。通常、この問題は次のようにして修正できます。parallelismより低い設定にし、ロードコマンドを再試行します。 -
parserConfiguration- 追加のパーサー設定値のあるオプションのオブジェクト。それぞれの子パラメータもオプションです。名前 値の例 説明 namedGraphUrihttp://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraphThe default graph for all RDF formats when no graph is specified (for non-quads formats and NQUAD entries with no graph). The default is http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraphbaseUrihttp://aws.amazon.com/neptune/defaultThe base URI for RDF/XML and Turtle formats. The default is http://aws.amazon.com/neptune/default.allowEmptyStringstrueGremlin ユーザーは、CSV データをロードするときに、ノードおよびエッジプロパティとして空の文字列値 ("") を渡す必要があります。
allowEmptyStringsがfalse(デフォルト) に設定されている場合、そのような空の文字列は NULL として扱われ、ロードされません。allowEmptyStringsがtrueに設定されている場合、ローダーは空の文字列を有効なプロパティ値として扱い、それに応じてロードします。詳細については、「SPARQL デフォルトグラフと名前が付いたグラフ」を参照してください。
-
updateSingleCardinalityProperties- これは、バルクローダーが単一濃度の頂点またはエッジプロパティの新しい値を処理する方法を制御するオプションのパラメータです。これは openCypher データのロードではサポートされていません (openCypher データをロードする を参照)。使用できる値:
"TRUE"、"FALSE"。デフォルト値:
"FALSE"。デフォルトでは、または
updateSingleCardinalityPropertiesが明示的に"FALSE"に設定されている場合、ローダーは単一の濃度に違反するため、新しい値をエラーとして扱います。一方、
updateSingleCardinalityPropertiesが"TRUE"に設定されている場合、バルクローダーは既存の値を新しい値に置き換えます。ロードされるソースファイルで複数のエッジまたは単一濃度の頂点プロパティ値が指定されている場合、バルクロードの終了時の最終値は、これらの新しい値のいずれかになります。ローダーは、既存の値が新しい値の 1 つに置き換えられたことを保証します。 -
queueRequest- これは、ロードリクエストをキューに入れることができるかどうかを示すオプションのフラグパラメータです。queueRequestパラメータをすべて"TRUE"に設定している場合、Neptune は一度に最大 64 個のジョブをキューに入れることができるので、次のジョブを発行する前に 1 つのロードジョブが完了するのを待つ必要はありません。ジョブのキューの順序は、FIFO (先入れ先出し) です。queueRequestパラメータを省略するるか、"FALSE"に設定した場合、別のロードジョブがすでに実行されていると、ロードリクエストは失敗します。使用できる値:
"TRUE"、"FALSE"。デフォルト値:
"FALSE"。 -
dependencies- これは、キュー内の 1 つ以上の前のジョブが正常に完了することを条件に、キューに入れられたロードリクエストを作成することができるオプションのパラメータです。Neptune は、
queueRequestパラメータが"TRUE"に設定されている場合、一度に最大 64 個のロードリクエストをキューに入れることができます。dependenciesパラメータを使用すると、キュー内で指定された 1 つ以上前のリクエストが正常に完了したかどうかに応じて、キューに入れられたそのようなリクエストを実行できます。たとえば、ロード
Job-AとJob-Bが互いに独立しているものの、ロードJob-Cを開始する前にJob-AおよびJob-Bを終了する必要がある場合は、次の手順を実行します。任意の順序で
load-job-Aとload-job-Bを 1 つずつ送信し、load-id を保存します。dependenciesフィールドで 2 つのジョブの load-id を付けてload-job-Cを送信します。
"dependencies" : ["job_A_load_id", "job_B_load_id"]dependenciesパラメータのため、Job-AとJob-Bが正常に完了するまで、バルクローダーはJob-Cを起動しません。いずれかが失敗すると、Job-C は実行されず、そのステータスはLOAD_FAILED_BECAUSE_DEPENDENCY_NOT_SATISFIEDに設定されます。この方法で複数のレベルの依存関係を設定できます。これにより、1 つのジョブが失敗すると、直接的または間接的に依存するすべてのリクエストがキャンセルされます。
-
userProvidedEdgeIds— このパラメータは、リレーションシップ ID を含む openCypher データをロードする場合にのみ必要です。openCypher 関係 ID がロードデータに明示的に指定されている場合 (推奨)、必ず含められTrueに設定されています。userProvidedEdgeIdsがないか、Trueに設定されている場合、:ID列は、ロード内のすべてのリレーションシップファイルにある必要があります。userProvidedEdgeIdsがあり、Falseに設定されている場合、ロード内のリレーションシップファイルに:ID列があってはなりません。代わりに、Neptune ローダーは各リレーションシップの ID を自動的に生成します。CSV データのエラーが修正された後にローダーがロードを再開できるように、リレーションシップ ID を明示的に指定すると便利です。すでにロードされているリレーションシップをリロードする必要はありません。リレーションシップ ID が明示的に割り当てられていない場合、リレーションシップファイルを修正する必要があれば、ローダーは失敗したロードを再開できず、代わりにすべてのリレーションシップを再ロードする必要があります。
-
accessKey– [非推奨] S3 バケットおよびデータファイルにアクセスするための IAM ロールのアクセスキー ID。代わりに、
iamRoleArnパラメータを使用することをお勧めします。Amazon S3 にアクセスできるロールを作成し、Neptune クラスターに関連付ける方法の詳細については、前提条件: IAM ロールと Amazon S3 アクセス を参照してください。詳細については、「アクセスキー (アクセスキー ID とシークレットアクセスキー)」を参照してください。
-
secretKey– [非推奨] 代わりにiamRoleArnパラメータを使用することをお勧めします。Amazon S3 にアクセスできるロールを作成し、Neptune クラスターに関連付ける方法の詳細については、前提条件: IAM ロールと Amazon S3 アクセス を参照してください。詳細については、「アクセスキー (アクセスキー ID とシークレットアクセスキー)」を参照してください。
openCypher データのロードに関する特別な考慮事項
openCypher データを CSV 形式でロードする場合、形式パラメータを
opencypherに設定する必要があります。すべての openCypher プロパティが単一のカーディナリティを持つため、
updateSingleCardinalityPropertiesパラメータはopenCypher のロードではサポートされていません。openCypher ロードフォーマットは配列をサポートしておらず、ID 値が複数回表示される場合は、重複エラーまたは挿入エラーとして扱われます (下記参照)。-
Neptune ローダーは openCypher データで検出された重複を次のように処理します。
-
ローダーが同じノードIDを持つ複数の行を検出すると、次のルールを使用してマージされます。
行のすべてのラベルがノードに追加されます。
各プロパティには、プロパティ値が 1 つだけ読み込まれます。ロードする値の選択は決定的ではありません。
ローダーが同じリレーションシップ ID を持つ複数の行を検出すると、そのうちの 1 つだけがロードされます。ロードする行の選択は決定的ではありません。
ローダーは、既存のノードまたはリレーションシップの ID を持つロード・データに遭遇した場合、データベース内の既存のノードまたはリレーションシップのプロパティ値を更新することはありません。ただし、既存のノードやリレーションシップには存在しないノードラベルやプロパティがロードされます。
-
-
リレーションシップに ID を割り当てる必要はありませんが、通常はお勧めします (上記の
userProvidedEdgeIdsパラメータを参照)。明示的なリレーションシップ ID がない場合、ローダーは、リレーションシップファイルにエラーが発生した場合にロードが失敗した場所からロードを再開するのではなく、すべてのリレーションシップをリロードする必要があります。また、ロードデータに明示的なリレーションシップ ID が含まれていない場合、ローダーは重複リレーションシップを検出することはありません。
以下に示しているのは openCypher ロードコマンドの例です。
curl -X POST https://your-neptune-endpoint:port/loader \ -H 'Content-Type: application/json' \ -d ' { "source" : "s3://bucket-name/object-key-name", "format" : "opencypher", "userProvidedEdgeIds": "TRUE", "iamRoleArn" : "arn:aws:iam::account-id:role/role-name", "region" : "region", "failOnError" : "FALSE", "parallelism" : "MEDIUM", }'
ローダーの応答は通常と同じです。例:
{ "status" : "200 OK", "payload" : { "loadId" : "guid_as_string" } }
Neptune ローダーレスポンスの構文
{ "status" : "200 OK", "payload" : { "loadId" : "guid_as_string" } }
200 OK
ロードジョブが正常に開始されると 200 コードが返されます。