
Neo4j GraphDBブートキャンプ完全版: LOAD CSV (セクション30/49)
CSVファイルをNeo4jにロードするプロセスについて、ファイル構造、データ型、Cypherクエリなどの側面を説明。
ローカルドライブやインターネットからCSVファイルをロードし、選択した列を表示し、ラベルとプロパティを持つノードを作成する方法を示す。
CSVデータから作成されたプロパティのデータ型を変更し、Cypherの力を活用してグラフデータを効果的に操作・分析することの重要性を強調。
はじめに:
このブログ記事では、CSVファイルを人気のグラフデータベースであるNeo4jにロードするプロセスを探求します。CSVファイルはテーブル形式のデータを保存するための一般的な形式であり、Neo4jに簡単にインポートしてノードとリレーションシップを作成できます。ファイル構造、データ型、Cypherクエリなど、CSVファイルのロードに関するさまざまな側面について説明します。
CSVファイル構造の理解:
ロードプロセスに取り組む前に、CSVファイルの構造を理解することが重要です。CSVファイルは以下の要素で構成されています:
ヘッダー:ファイルの最初の行には、ノードまたはリレーションシップのプロパティを表す列名が含まれています。
列:ファイルの各列は、データの特定のプロパティまたは属性に対応しています。
行:それ以降の各行は、単一のノードまたはリレーションシップのインスタンスを表します。
ファイル名:CSVファイルの名前は、ノードまたはリレーションシップのテーブルタイトルまたはラベルとして使用されることがよくあります。
ローカルドライブからのCSVのロード:
ローカルドライブからCSVファイルをNeo4jにロードするには、次の手順に従います:
CSVファイルをNeo4jのインポートディレクトリに配置します。インポートディレクトリの場所は、オペレーティングシステムとNeo4jのインストールによって異なります。
Neo4jはCSVファイルを読み取り、ヘッダーをキーとし、対応する値を値とするマップとして各行を返します。
インターネットからのCSVのロード:
CSVファイルがインターネット上でホストされている場合は、ファイルのURLを使用して直接Neo4jにロードできます。次のCypherクエリを使用します:
LOAD CSV WITH HEADERS FROM "https://example.com/data.csv" AS row
RETURN row
URLを実際のCSVファイルのURLに置き換えてください。
選択した列の表示:
ロードされたCSVデータから特定の列を表示するには、Cypherクエリでドット記法またはインデックス記法を使用できます。例えば:
LOAD CSV WITH HEADERS FROM "file:///student.csv" AS row
RETURN row.FIRST_NAME, row.SCORE
このクエリは、CSVファイルから "FIRST_NAME" 列と "SCORE" 列のみを返します。
ラベルとプロパティを持つノードの作成:
CSVデータからラベルとプロパティを持つノードを作成するには、次のCypherクエリを使用します:
LOAD CSV WITH HEADERS FROM "file:///student.csv" AS row
CREATE (n:Student)
SET n = row
RETURN n
このクエリは、CSVファイルの各行に対して "Student" ラベルを持つノードを作成し、対応する列の値に基づいてノードのプロパティを設定します。
プロパティタイプの変更:
デフォルトでは、CSVデータから作成されたすべてのプロパティは文字列として保存されます。プロパティタイプを変更するには、 `toInteger()` や `toFloat()` などのCypher関数を使用できます。例えば:
LOAD CSV WITH HEADERS FROM "file:///student.csv" AS row
CREATE (n:Student)
SET n = row,
n.STUDENT_ID = toInteger(n.STUDENT_ID),
n.SCORE = toInteger(n.SCORE)
RETURN n
このクエリは、ノードに設定する前に、 "STUDENT_ID" プロパティと "SCORE" プロパティを整数に変換します。
結論:
CSVファイルをNeo4jにロードすることは、テーブル形式のデータをインポートしてグラフ構造に変換できる簡単なプロセスです。CSVファイルの構造を理解し、適切なCypherクエリを使用することで、目的のラベルとプロパティを持つノードとリレーションシップを簡単に作成できます。データ型を適切に処理し、Cypherの力を活用して、グラフデータを効果的に操作および分析することを忘れないでください。