sql >> データベース >  >> RDS >> Mysql

Neo4j-Cypherを使用してCSVファイルからデータをインポートする

    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アーカイブで圧縮されたリソースをサポートします。

    1. Where句内のIfステートメント

    2. OracleDatabaseのPL/SQLストアドプロシージャとは

    3. SQL Server2008でテーブルエイリアスを使用してUPDATESQLを作成するにはどうすればよいですか?

    4. YEAR()の例– MySQL