Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerNeo4j Connector v3.0
Neo4j 用 Anypoint Connector では、CQL ステートメントを実行、および Neo4j Graph データベースインスタンスに対してノードの作成、更新、削除、選択などの基本操作を実行することができます。
リリースノート: Neo4j Connector リリースノート
Exchange: Neo4j Connector
この情報を使用するには、Neo4j、Mule、Anypoint Connector、Anypoint Studio、Mule の概念、Mule フローの要素、グローバル要素に精通している必要があります。
対象リソースへの接続をテストするには、ログイン情報が必要です。
ソフトウェアの要件および互換性情報については、「コネクタリリースノート」を参照してください。
<dependency>
<groupId>com.mulesoft.connectors</groupId>
<artifactId>mule-neo4j-connector</artifactId>
<version>x.x.x</version>
<classifier>mule-plugin</classifier>
</dependency>
x.x.x
を使用しているコネクタに対応するバージョンに置き換えます。
最新の pom.xml
ファイル情報を取得するには、 Anypoint Exchange でコネクタにアクセスし、[Dependency Snippets (連動関係スニペット)] をクリックします。
Neo4j Connector のメタデータは、次の前提に基づいています。
操作の表示ラベルは、データベースでインスタンス化される表示ラベルである。
データベースにはノードに対する次の制約がある。
一意のプロパティの制約。
プロパティ存在の制約。
データベースで制約値が定義されたノードが少なくとも 1 つある。
Anypoint Studio には、Studio プロジェクトにコネクタを追加する 2 つの方法があります。Studio タスクバーの Exchange ボタンから追加するか、[Mule Palette (Mule パレット)] ビューから追加します。
Studio で Mule プロジェクトを作成します。
Studio タスクバーの左上にある Exchange アイコン (X) をクリックします。
Exchange で、[Login (ログイン)] をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。
Exchange で、「neo4j」を検索します。
コネクタを選択して [Add to project (プロジェクトに追加)] をクリックします。
画面の指示に従ってコネクタをインストールします。
Studio で Mule プロジェクトを作成します。
[Mule Palette (Mule パレット)] ビューで、[(X) Search in Exchange ((X) Exchange 内を検索)] をクリックします。
[Add Modules to Project (モジュールをプロジェクトに追加)] で、検索項目に「neo4j」と入力します。
[Available modules (使用可能なモジュール)] で、このコネクタの名前をクリックします。
[Add (追加)] をクリックします。
[Finish (完了)] をクリックします。
Neo4j の操作を Studio キャンバスにドラッグします。
操作を選択します。
名前 | 説明 |
---|---|
Execute |
データベースに対して任意の CQL ステートメントを実行します。 |
Create Node |
特定の初期表示ラベルを使用してノードを作成します。必要に応じてノードにプロパティを追加できます。 |
Select Nodes |
特定の表示ラベルを使用するノードを照会します。必要に応じて、検索条件として使用するプロパティを指定できます。 |
Update Nodes |
特定の表示ラベルを使用する 1 つまたは複数のノードのプロパティを変更します。必要に応じて検索条件としてプロパティを追加できます。 |
Delete Nodes |
特定の表示ラベルに基づいて 1 つまたは複数のノードを削除します。インバウンド/アウトバウンドリレーションのあるノードを削除できます。必要に応じて検索条件としてプロパティを追加できます。 |
注意: Neo4j Connector の基本操作では、クエリで表示ラベルを 1 つだけ使用してノードを絞り込むことができます。クエリ内で複数の表示ラベルを使用して絞り込む場合は、[Execute (実行)] 操作で適切な CQL ステートメントを実行します。
コネクタのグローバル要素を設定します。
項目 | 説明 |
---|---|
Username (ユーザー名) |
ログインに使用するユーザー名を入力します。 |
Password (パスワード) |
対応するパスワードを入力します。 |
BOLT URL |
Bolt エンドポイント。 |
REST URL |
Rest エンドポイント URL (HTTP または HTTPS で使用できる)。 |
Anypoint Studio で新しい Mule プロジェクトを作成し、src/main/resources/automation-credentials.properties
で Neo4j 環境プロパティを設定します。
config.username=<USERNAME>
config.password=<PASSWORD>
config.boltUrl=<BOLT_URL_ENDOPOINT>
config.restUrl=<REST_URL_ENDPOINT>
HTTP Connector をキャンバスにドラッグし、デフォルト値で設定します。
[Transform Message (メッセージの変換)] をキャンバスにドラッグし、次のコードを使用して params という名前でフロー変数を作成します。
%dw 2.0
%output application/json
---
{
"name":"Tom Hanks",
"born": 1956
}
Neo4j Connector をキャンバスにドラッグし、次の表に従って新しいグローバル要素を設定します。
パラメーター | 値 |
---|---|
Username (ユーザー名) |
|
Password (パスワード) |
|
BOLT URL |
|
REST URL |
|
<neo4j:config name="Neo4j_Config" doc:name="Neo4j Config">
<neo4j:connection username="${config.username}"
password="${config.password}"
boltUrl="${config.boltUrl}"
restUrl="${config.restUrl}" />
</neo4j:config>
</neo4j:config>
プロパティエディターで次のように設定します。
パラメーター | 値 |
---|---|
Display Name (表示名) |
Create node |
Connector Configuration (コネクタ設定) |
Neo4j__Basic_Authentication |
操作 |
Create node |
Label (表示ラベル) |
Person |
パラメーターリファレンス |
|
注意: [Test Connection (接続をテスト)] をクリックして、Mule が Neo4j インスタンスに接続できることを確認します。正常に接続できた場合は、[OK] をクリックして設定を保存します。失敗した場合は、パラメーターを確認して修正し、もう一度テストを実行してください。
Neo4j Connector をキャンバスにドラッグして、プロパティエディターで次のパラメーターを設定します。
パラメーター | 値 |
---|---|
操作 |
Select nodes |
Label (表示ラベル) |
Person |
Neo4j Connector をキャンバスにドラッグして、プロパティエディターで次のパラメーターを設定します。
パラメーター | 値 |
---|---|
操作 |
Delete nodes |
Label (表示ラベル) |
Person |
[Transform Message (メッセージの変換)] をキャンバスにドラッグします。
%dw 2.0
%output application/json
---
payload
変更内容を保存して、Mule アプリケーションとしてプロジェクトをデプロイします。ブラウザーを開いて、次の URL に要求を送信します。
http://localhost:8081/CRUD
ノードが正常に作成および削除されたら、情報が JSON 形式で表示されます。
{"born":1956,"name":"Tom Hanks"}
Anypoint Studio で新しい Mule プロジェクトを作成し、src/main/resources/automation-credentials.properties
で Neo4j 環境プロパティを設定します。
config.username=<USERNAME>
config.password=<PASSWORD>
config.boltUrl=<BOLT_URL_ENDOPOINT>
config.restUrl=<REST_URL_ENDPOINT>
HTTP Connector をキャンバスにドラッグし、デフォルト値で設定します。
[Transform Message (メッセージの変換)] をキャンバスにドラッグし、次のコードを使用して 2 つのフロー変数を作成します。
Variable-create
%dw 2.0
%output application/json
---
"CREATE (a:ACTOR:PERSON { name:\"Tom Hanks\", born:1956 })"
Variable-select
%dw 2.0
%output application/json
---
"MATCH (a:ACTOR:PERSON) RETURN a"
Neo4j Connector をキャンバスにドラッグし、次の表に従って新しいグローバル要素を設定します。
パラメーター | 値 |
---|---|
Username (ユーザー名) |
|
Password (パスワード) |
|
BOLT URL |
|
REST URL |
|
<neo4j:config name="Neo4j_Config" doc:name="Neo4j Config">
<neo4j:connection username="${config.username}"
password="${config.password}"
boltUrl="${config.boltUrl}"
restUrl="${config.restUrl}" />
</neo4j:config>
</neo4j:config>
プロパティエディターで次のように設定します。
パラメーター | 値 |
---|---|
Display Name (表示名) |
Create node (advanced) |
Connector Configuration (コネクタ設定) |
Neo4j__Basic_Authentication |
操作 |
Execute |
Query (クエリ) |
|
パラメーターリファレンス |
|
[Test Connection (接続をテスト)] をクリックして、Mule が Neo4j インスタンスに接続できることを確認します。正常に接続できた場合は、[OK] をクリックして設定を保存します。失敗した場合は、パラメーターを確認して修正し、もう一度テストを実行してください。
Neo4j Connector をキャンバスにドラッグして、プロパティエディターで次のパラメーターを設定します。
パラメーター | 値 |
---|---|
Display Name (表示名) |
Select node (Multi-label) |
操作 |
Execute |
Query (クエリ) |
|
[Transform Message (メッセージの変換)] をキャンバスにドラッグします。
[Logger (ロガー)] をキャンバスにドラッグします。
変更内容を保存して、Mule アプリケーションとしてプロジェクトをデプロイします。ブラウザーを開いて、次の URL に要求を送信します。
http://localhost:8081/createNodeMultiLabel
ノードが正常に作成および削除されたら、情報が JSON 形式で表示されます。
[{"a":{"born":1956,"name":"Tom Hanks"}}]
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:neo4j="http://www.mulesoft.org/schema/mule/neo4j"
xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/neo4j
http://www.mulesoft.org/schema/mule/neo4j/current/mule-neo4j.xsd">
<http:listener-config name="HTTP_Listener_config"
doc:name="HTTP Listener config" basePath="/" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<neo4j:config name="Neo4j_Config" doc:name="Neo4j Config">
<neo4j:connection username="${config.username}"
password="${config.password}" boltUrl="${config.boltUrl}"
restUrl="${config.restUrl}" />
</neo4j:config>
<flow name="CRUD" >
<http:listener doc:name="Listener"
config-ref="HTTP_Listener_config" path="/CRUD"/>
<ee:transform doc:name="Transform Message" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
"name":"Tom Hanks",
"born": "1956"
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<neo4j:create-node label="Person" doc:name="Create node"
config-ref="Neo4j_Config" input="#[payload]"/>
<neo4j:select-nodes label="Person" doc:name="Select nodes"
config-ref="Neo4j_Config" input="#[payload]"/>
<neo4j:delete-nodes label="Person" doc:name="Delete nodes"
config-ref="Neo4j_Config" parameters="#[payload]"/>
<ee:transform doc:name="Transform Message">
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
</flow>
<flow name="createNodeWithMultiLabels">
<http:listener doc:name="Listener"
config-ref="HTTP_Listener_config"
path="/createNodeMultiLabel"/>
<ee:transform doc:name="Transform Message">
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
}]]></ee:set-payload>
</ee:message>
<ee:variables >
<ee:set-variable variableName="select" ><![CDATA[%dw 2.0
output application/json
---
"MATCH (a:ACTOR:PERSON) RETURN a"]]></ee:set-variable>
<ee:set-variable variableName="create" ><![CDATA[%dw 2.0
output application/json
---
"CREATE (a:ACTOR:PERSON { name:\"Tom Hanks\", born:1956 })"]]></ee:set-variable>
</ee:variables>
</ee:transform>
<neo4j:execute doc:name="Create node (advanced)" config-ref="Neo4j_Config" input="#[payload]">
<neo4j:query ><![CDATA[#[vars.create]]]></neo4j:query>
</neo4j:execute>
<neo4j:execute doc:name="Select node (Multi-label)" config-ref="Neo4j_Config">
<neo4j:query ><![CDATA[#[vars.select]]]></neo4j:query>
</neo4j:execute>
<ee:transform doc:name="Transform Message">
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
</flow>
</mule>