# Neo4jの機能と実践的な使い方
🚪 データ投入の方法選びを最初に間違えると、後工程がすべて遅くなります。Neo4jの「インポート方法 選択ガイド」は、規模と頻度から最適な入口を決めるためのハブページです。
🏷️ タイトル: インポート方法の選択ガイド
🔗 URL:
📘 概要
Neo4jへのデータ投入には複数の手段があり、それぞれ得意な規模・実行モード(オンライン/オフライン)・権限要件が異なります。このページは個別の手順書ではなく、「どの方法を選ぶべきか」を最初に判断するための入口にあたります。
⚙️ 機能の説明
主な選択肢は次のとおりです。
・Data Importer: ブラウザGUIでCSVをドラッグ&ドロップし、ノード/リレーションシップに視覚的にマッピング。Cypher不要で、検証・プロトタイピング向き。
・`LOAD CSV`: Cypherで書く汎用的な取り込み。オンライン(DB稼働中)で動き、非管理者でも実行可能。数十万〜数百万行クラスまで。
・`neo4j-admin database import`: オフラインのバルクローダ。空のDBに対し、ストアファイルへ直接書き込むため最速。数十億規模の初期構築向け。
・コネクタ/APOC: Apache Spark / Kafka / CDC による継続的同期や、JSON/XML/XLSなど多様な形式の取り込み。
🛠️ 実践的な使い方
規模と頻度で入口を決めるのが実践の第一歩です。
・数千件のマスタを手早く → Data Importer(GUI)
・数百万件の定期ロード/差分ロード → `LOAD CSV`(`MERGE`で冪等化)
・数十億件のワンショット初期構築 → `neo4j-admin database import`(オフライン)
・常時の継続同期 → Kafka / CDC / Spark コネクタ
いずれの経路でも、取り込み前にキー列へ一意制約を張るのが共通の定石です。
```cypher
CREATE CONSTRAINT person_id IF NOT EXISTS
FOR (p:Person) REQUIRE IS UNIQUE;
```
💡 ユースケース
プロジェクト初期に、PoCはData Importer、本番初期構築は`neo4j-admin import`、日次差分は`LOAD CSV`、というように経路を分けて設計します。これにより「検証は軽く速く、本番投入は最速」を両立できます。
⚠️ 注意点
・`neo4j-admin import`は空のDB専用かつオフラインのため、稼働中DBには使えません。
・`LOAD CSV`は行数が数十万〜数百万に近づくとメモリ問題が出やすく、`CALL { } IN TRANSACTIONS`での分割が必要です。
・継続同期(Kafka/CDC)は初期ロードとは別物として、組み合わせて設計します。
・このページは入口です。各方式の細部は必ずリンク先の個別ドキュメントで確認してください。
#
Neo4j# #
DataImport#