

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

# Amazon Neptune 一括ロードの最適化
<a name="bulk-load-optimize"></a>

Neptune 一括ロードのロード時間を最小限に抑えるには、次の方法を使用します。
+ **データを消去します。**
  + データを必ずロードする前に[サポートされているデータ形式](bulk-load-tutorial-format.md)へ変換してください。
  + 重複または既知のエラーをすべて削除します。
  + 一意の述語 (エッジや頂点のプロパティなど) の数をできるだけ減らします。
+ **ファイルを最適化します:**
  + Amazon S3 バケットから CSV ファイルなどの大きなファイルをロードする場合、ローダーはそれらを並行してロードできるチャンクに解析することによって同時性を管理します。非常に多くの小さなファイルを使用すると、このプロセスが遅くなる可能性があります。
  +  Amazon S3 プレフィックスから複数のファイルをロードする場合、ローダーは最初に頂点ファイルをロードし、次にエッジファイルをロードします。ただし、エッジファイルのみをロードすることがわかっている場合は、`edgeOnlyLoad` を `TRUE` に設定して、すべてのファイルがスキャンされる最初のパスをスキップしてコンテンツ (頂点またはエッジ) を判別し、検出された頂点ファイルがエッジファイルの前にロードされるようにできます。これにより、特に多くのエッジファイルが関係している場合に、ロード時間を大幅に短縮できます。一部の頂点ファイルが同じ Amazon S3 プレフィックス (`source` パラメータ) にも存在する場合、それらはロードされますが、他のファイルに対する順序の保証はありません。また、データベースに一部の `from` または `to` の頂点が存在しない場合、エッジ挿入でメッセージ `FROM_OR_TO_VERTEX_ARE_MISSING` によりエラーが報告される可能性があります。ベストプラクティスとして、ノードとエッジを個別の Amazon S3 プレフィックスに配置します。
+ **ローダーの設定を確認します。**
  + ロード中に他の操作を行う必要がない場合は、[`OVERSUBSCRIBE``parallelism`](load-api-reference-load.md#load-api-reference-load-syntax) パラメータを使用します。このパラメータ設定では、一括ローダーは、実行時に使用可能なすべての CPU リソースを使用するようになります。一般に、I/O 制約が許す限り速くオペレーションを実行し続けるには、CPU 容量の 60%～70% が必要です。
**注記**  
`parallelism` が `OVERSUBSCRIBE` または `HIGH` (デフォルト設定) に設定されていると、openCypher データをロードするときに、スレッドが競合状態となりデッドロックが発生する可能性があり、`LOAD_DATA_DEADLOCK` というエラーが表示されます。この場合は、`parallelism` を低い設定にして、ロードを再試行します。
  + ロードジョブに複数のロードリクエストが含まれる場合は、`queueRequest` パラメータを使用します。`queueRequest` を `TRUE` に設定すると、Neptune はリクエストをキューに入れるので、別のリクエストを発行する前にリクエストが完了するのを待つ必要がありません。
  +  ロードリクエストがキューに入れられている場合は、`dependencies` パラメータを指定すると、1 つのジョブが失敗すると、依存ジョブが失敗します。これにより、ロードされたデータの不整合を防ぐことができます。
  + ロードジョブで以前にロードされた値の更新が含まれる場合は、必ず `updateSingleCardinalityProperties` パラメータを `TRUE` に設定してください。そうでない場合、ローダーは既存の単一カーディナリティ値の更新試行をエラーとして扱います。Gremlin データの場合、カーディナリティはプロパティの列ヘッダーにも指定されます ([プロパティ列ヘッダー](bulk-load-tutorial-format-gremlin.md#bulk-load-tutorial-format-gremlin-propheaders))。
**注記**  
`updateSingleCardinalityProperties` パラメータは Resource Description Framework (RDF) データには使用できません。
  + `failOnError` パラメータを使用して、エラーが発生したときにバルクロード操作が失敗するか、続行するかを決定します。また、`mode` パラメータを使用して、ロードジョブが既にロードされたデータをリロードするのではなく、前のジョブが失敗した時点からロードを再開するようにします。
+ **スケールアップ** — 一括ロードする前に、DB クラスターのライターインスタンスを最大サイズに設定します。この場合、DB クラスター内のリードレプリカインスタンスもスケールアップするか、データのロードが完了するまで削除する必要があります。

   一括ロードが完了したら、ライターインスタンスを再度スケールダウンしてください。

**重要**  
一括ロード中のレプリケーション遅延が原因で、リードレプリカが繰り返し再起動されるサイクルが発生した場合、レプリカは DB クラスター内のライターに追いつけない可能性があります。リーダーをライターよりも大きくするか、一括ロード中にリーダーを一時的に削除し、完了後に再作成してください。

ローダーリクエストパラメータ設定の詳細については、[リクエストパラメーター](load-api-reference-load.md#load-api-reference-load-parameters) を参照してください。