fbpx

Neo4j Desktop, Neo4j ETLの紹介 #neo4j

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

こんにちは。木内です。こちらではご無沙汰しております。

最近Neo4jではNeo4jデータベースの改良に加えて、エコシステムの拡充が続いています。今回はNeo4jデータベースと連携して使用する、開発・管理の環境としてのNeo4j Desktop、簡便なインポートツールとしての Neo4j ETL を紹介します。

Neo4j Desktop, Neo4j ETLについて

従来 Neo4j にはデータベースとしてのNeo4jしかありませんでしたが、2017年10月の Neo4j 3.3 のリリースと同時にデスクトップ版として Neo4j Desktop 1.0 がリリースされました。それに伴い従来の Neo4j は Neo4j Server という名称になっています。

Neo4j Desktop は Electron を土台としたUI(シェル)を持ち、Enterprise版の Neo4j server がビルトインされています。ただし Neo4j Desktop 内で動作するデータベースはローカルホストからの接続しか受け付けません。開発用と割り切って使用することを目的としています。そのかわりにNeo4j Desktopには手元のNeo4j Desktopから遠隔のNeo4j Serverに接続することもできる機能を持っています。これにより開発環境、運用環境を手元のNeo4j Desktopから管理することができるため、Neo4j Desktopを管理インターフェイスにしてもいいかもしれません。

加えて Neo4j Desktop には従来 Neo4j Server から提供されていたブラウザ(Neo4j Browser)の他にも様々なアプリケーションや機能プラグインで追加していくことができるようになっています。現時点でどのようなアプリケーション・プラグインを使用できるかはリポジトリページ( https://github.com/neo4j-apps/awesome-graph-apps )を参照してみてください。

Neo4j ETL( https://neo4j.com/developer/neo4j-etl/ ) はNeo4j Desktopに追加することができる支援アプリケーションで、リレーショナルデータベース(RDB)から簡便にデータを抜き出し、Neo4jデータベースに投入することができます。従来RDBのデータをNeo4jに投入するためにはいったんデータをCSVでエクスポートし、Cypherクエリ、ないしはneo4j-importコマンドによってインポートする方法しかなく、Cypherクエリを覚えたり、neo4j-importコマンドが理解できるようCSVを構成することを自力で行う必要がありました。Neo4j ETLはこれらの処理をGUIで効率的に行い、Cypherクエリなどを覚えることなくデータのインポートを行うことができます。

Neo4j Desktopのインストールと起動

Neo4j Desktop はWindows, Mac, Linuxの各OS用のパッケージがリリースされており、簡単にインストールすることができます。

まずブラウザで https://neo4j.com を開き、画面右上の "Download" ボタンを押します。

画面中央の "Download" ボタンを押します。

各入力欄に情報を入力し、"Download Desktop" ボタンを押すと、各OSに対応したパッケージのダウンロードが開始されます。

インストール後 Neo4j Desktop を起動すると、ソーシャルアカウントでのログイン画面となります。これは各サブスクリプションとアカウントを紐づけるものです。ログインすると以下のような画面になります。

データベースの作成・接続

Neo4jでは複数の「プロジェクト」によって環境を切り分けることができます。初期状態では "My Project" という空のプロジェクトだけがある状態です。

データベースを作成するにはプロジェクト内の "Add Graph" ボタンを押し、"Create a Local Graph" を選択します。ハードウェアのスペックにもよりますが1分程度で新しい Neo4j データベースが作成されます。

作成された Neo4j データベースは開始されていない状態ですので "Start" ボタンを押して Neo4j Server を起動します。これでデータベースを操作できる状態になりました。

Neo4j ETLの追加

Neo4j ETLを使用するためには事前に有償サブスクリプションに付属するアクティベーションコードを入力する必要があります。次のURLからNeo4j ETLのアクティベーションキーがほしい、という旨を伝えて入手してください。
アクティベーションキーの入手

正しくアクティベートされると、プロジェクトの "Add Application"から Neo4j ETL を追加できるようになります。

データの吸出しとNeo4jへのインポート

Neo4j ETLは標準で以下のRDBに対応したJDBCドライバに対応しています。

  • PostgreSQL
  • MySQL
  • Microsoft SQL Server
  • Oracle
  • DB2

データベースを選択し、接続情報を入力します。 "Test and Save Connection" ボタンを押すと接続テストが行われ、成功すると設定が保存されます。

次にデータインポート画面でソースとなるRDB、インポート先のNeo4jデータベースを選択します。 "Start Mapping"ボタンを押すとRDB上のテーブル構造を読み込みます。

次にNeo4j上でのデータの表現を設定します。各プロパティの型や、ラベル名などを設定します。

最後に設定を確認し、インポート方法を選択します。データ量が少なければ "Direct Cypher", "Cypher Shell"を選択してもよいかもしれません。デフォルトは "Neo4j import"です。特に問題がない限りはデフォルトの "Neo4j import"を選択しておけばよいかと思います。

注意事項として、Neo4j ETLがインポートを実行すると、インポート元のデータベース情報をローカルにダウンロードしますので、ディスク容量に気を付ける必要があります。

"Import Data"ボタンを押して、インポートを実行します。これでNeo4jデータベースにデータをインポートすることができました。

さいごに

Neo4j Desktopで利用できるアプリケーションは、他にも大量のグラフデータをGPUを使用して高速表示する "Neo4j Bloom" や、Neo4jの動作状況を確認できる "Neo4j DB Analyzer" などが用意されています。また自分でアプリケーションを作成することもできますので、業務に特化した開発も可能です。クリエーションラインでも徐々にNeo4jを活用した様々な業界向けシステム開発の経験が積みあがっています。ご興味のある方はお気軽にお問い合わせください(営業窓口: https://www.creationline.com/contact )。

新規CTA