翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Neptune 一括ロードの最適化
Neptune 一括ロードのロード時間を最小限に抑えるには、次の方法を使用します。
-
データを消去します。
データを必ずロードする前にサポートされているデータ形式へ変換してください。
重複または既知のエラーをすべて削除します。
一意の述語 (エッジや頂点のプロパティなど) の数をできるだけ減らします。
-
ファイルを最適化します:
Amazon S3 バケットから CSV ファイルなどの大きなファイルをロードする場合、ローダーはそれらを並行してロードできるチャンクに解析することによって同時性を管理します。非常に多くの小さなファイルを使用すると、このプロセスが遅くなる可能性があります。
Amazon S3 フォルダから複数のファイルをロードする場合、ローダーは最初に頂点ファイルをロードし、次にエッジファイルをロードします。
ファイルを圧縮すると、転送時間が短縮されます。ローダーは
gzip
ソースファイルの圧縮をサポートしています。
-
ローダーの設定を確認します。
-
ロード中に他の操作を行う必要がない場合は、OVERSUBSCRIBEparallelism パラメータを使用します。このパラメータ設定では、一括ローダーは、実行時に使用可能なすべての CPU リソースを使用するようになります。一般に、I/O 制約が許す限り速くオペレーションを実行し続けるには、CPU 容量の 60%~ 70% が必要です。
注記
parallelism
がOVERSUBSCRIBE
またはHIGH
(デフォルト設定) に設定されていると、openCypher データをロードするときに、スレッドが競合状態となりデッドロックが発生する可能性があり、LOAD_DATA_DEADLOCK
というエラーが表示されます。この場合は、parallelism
を低い設定にして、ロードを再試行します。 ロードジョブに複数のロードリクエストが含まれる場合は、
queueRequest
パラメータを使用します。queueRequest
をTRUE
に設定すると、Neptune はリクエストをキューに入れるので、別のリクエストを発行する前にリクエストが完了するのを待つ必要がありません。ロードリクエストがキューに入れられている場合は、
dependencies
パラメータを指定すると、1 つのジョブが失敗すると、依存ジョブが失敗します。これにより、ロードされたデータの不整合を防ぐことができます。-
ロードジョブで以前にロードされた値の更新が含まれる場合は、必ず
updateSingleCardinalityProperties
パラメータをTRUE
に設定してください。そうでない場合、ローダーは既存の単一カーディナリティ値の更新試行をエラーとして扱います。Gremlin データの場合、カーディナリティはプロパティの列ヘッダーにも指定されます (プロパティ列ヘッダー)。注記
updateSingleCardinalityProperties
パラメータは Resource Description Framework (RDF) データには使用できません。 failOnError
パラメータを使用して、エラーが発生したときにバルクロード操作が失敗するか、続行するかを決定します。また、mode
パラメータを使用して、ロードジョブがすでにロードされたデータをリロードするのではなく、前のジョブが失敗した時点からロードを再開するようにします。
-
-
スケールアップ — 一括ロードする前に、DB クラスターのライターインスタンスを最大サイズに設定します。この場合、DB クラスター内のリードレプリカインスタンスもスケールアップするか、データのロードが完了するまで削除する必要があります。
一括ロードが完了したら、ライターインスタンスを再度スケールダウンしてください。
重要
一括ロード中のレプリケーション遅延が原因で、リードレプリカが繰り返し再起動されるサイクルが発生した場合、レプリカは DB クラスター内のライターに追いつけない可能性があります。リーダーをライターよりも大きくするか、一括ロード中にリーダーを一時的に削除し、完了後に再作成してください。
ローダーリクエストパラメータ設定の詳細については、リクエストパラメータ を参照してください。