CSV(カンマ区切り値)ファイルからNeo4jデータベースにデータをインポートできます。これを行うには、LOAD CSV
を使用します 条項。
CSVファイルをNeo4jにロードできるため、別のデータベースモデル(リレーショナルデータベースなど)からデータを簡単にインポートできます。
Neo4jを使用すると、ローカルまたはリモートのURLからCSVファイルを読み込むことができます。
ローカルに(データベースサーバーに)保存されているファイルにアクセスするには、file:///
を使用します URL。それ以外の場合は、HTTPS、HTTP、およびFTPプロトコルのいずれかを使用してリモートファイルをインポートできます。
CSVファイルを読み込む
genres.csv というCSVファイルをロードしてみましょう HTTPプロトコルを使用します。大きなファイルではありません。115の音楽ジャンルのリストが含まれているため、115のノード(および230のプロパティ)が作成されます。
このファイルはQuackit.comに保存されているため、Neo4jブラウザーからこのコードを実行でき、データベースに直接インポートする必要があります(インターネットに接続している場合)。
こちらからファイルをダウンロードすることもできます:genres.csv
LOAD CSV FROM 'https://www.quackit.com/neo4j/tutorial/genres.csv' AS line CREATE (:Genre { GenreId: line[0], Name: line[1]})
必要に応じて、CSVファイルから特定のフィールドを省略できます。たとえば、最初のフィールドをデータベースにインポートしたくない場合は、GenreId: line[0],
を省略できます。 上記のコードから。
上記のステートメントを実行すると、次の成功メッセージが生成されます。
その後、クエリを実行して、新しく作成されたノードを確認できます。
MATCH (n:Genre) RETURN n
これにより、ノードがデータ視覚化フレームの周りに散らばるはずです:
ヘッダーを含むCSVファイルをインポートする
以前のCSVファイルにはヘッダーが含まれていませんでした。 CSVファイルにヘッダーが含まれている場合は、WITH HEADERS
を使用できます 。
この方法を使用すると、各フィールドを列/ヘッダー名で参照することもできます。
別のCSVファイルがありますが、今回はヘッダーが含まれています。このファイルには、アルバムトラックのリストが含まれています。
繰り返しになりますが、これは大きなファイルではありません。32トラックのリストが含まれているため、32ノード(および96プロパティ)が作成されます。
このファイルはQuackit.comにも保存されているため、Neo4jブラウザーからこのコードを実行でき、データベースに直接インポートする必要があります(インターネットに接続している場合)。
こちらからファイルをダウンロードすることもできます:tracks.csv
LOAD CSV WITH HEADERS FROM 'https://www.quackit.com/neo4j/tutorial/tracks.csv' AS line CREATE (:Track { TrackId: line.Id, Name: line.Track, Length: line.Length})
これにより、次の成功メッセージが生成されます。
新しく作成されたノードを表示するためのクエリをフォローアップしました:
MATCH (n:Track) RETURN n
これにより、新しいノードがデータ視覚化フレームの周りに散らばるはずです。
行をクリックします 各ノードとその3つのプロパティを表示するアイコン:
カスタムフィールド区切り文字
必要に応じて、カスタムフィールド区切り文字を指定できます。たとえば、CSVファイルのフォーマット方法である場合は、カンマの代わりにセミコロンを指定できます。
これを行うには、FIELDTERMINATOR
を追加するだけです。 ステートメントの句。このように:
LOAD CSV WITH HEADERS FROM 'https://www.quackit.com/neo4j/tutorial/tracks.csv' AS line FIELDTERMINATOR ';' CREATE (:Track { TrackId: line.Id, Name: line.Track, Length: line.Length})
大きなファイルのインポート
大量のデータを含むファイルをインポートする場合は、PERODIC COMMIT
句は便利です。
PERIODIC COMMIT
の使用 特定の行数の後にデータをコミットするようにNeo4jに指示します。これにより、トランザクション状態のメモリオーバーヘッドが削減されます。
デフォルトは1000行であるため、データは1000行ごとにコミットされます。
PERIODIC COMMIT
を使用するには USING PERIODIC COMMIT
を挿入するだけです ステートメントの先頭(LOAD CSV
の前) )
次に例を示します:
USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM 'https://www.quackit.com/neo4j/tutorial/tracks.csv' AS line CREATE (:Track { TrackId: line.Id, Name: line.Track, Length: line.Length})
定期的なコミット率の設定
レートをデフォルトの1000行から別の数値に変更することもできます。 USING PERIODIC COMMIT
の後に番号を追加するだけです :
このように:
USING PERIODIC COMMIT 800 LOAD CSV WITH HEADERS FROM 'https://www.quackit.com/neo4j/tutorial/tracks.csv' AS line CREATE (:Track { TrackId: line.Id, Name: line.Track, Length: line.Length})
CSV形式/要件
LOAD CSV
を使用する場合のCSVファイルのフォーマット方法に関する情報を以下に示します。 :
- 文字エンコードはUTF-8である必要があります。
- エンドラインの終了はシステムに依存します(例:
\n
) Unixまたは\r\n
Windowsの場合。 - ターミネータはコンマである必要があります
,
FIELDTERMINATOR
を使用して特に指定されていない限り、 オプション。 - 文字列引用符の文字は二重引用符です
"
(これらはデータが読み込まれるときに削除されます。) - エスケープする必要のある文字は、バックスラッシュ
\
でエスケープできます。 キャラクター。 -
LOAD CSV
gzip、Deflate、およびZIPアーカイブで圧縮されたリソースをサポートします。