接続の確立
CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でNeo4j Cmdlets を使用する例を示します。
インストールおよび接続
PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。
Install-Module Neo4jCmdlets
プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。
Import-Module Neo4jCmdlets;
Connect-Neo4j cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。
$conn = Connect-Neo4j -server "localhost" -port "7474" -user "neo4j" -password "password"
Neo4j への接続
CData Cmdlets PowerShell Module for Neo4j は、HTTP API を介したセルフマネージドNeo4j インスタンスへの接続をサポートします。次の接続プロパティを設定し、接続します。
- Server:Neo4j インスタンスをホスティングしているサーバー。サーバー名やアドレスの前にHTTP やHTTPS のプロトコルの接頭辞を付加することも可能です。
- Port:Neo4j サービスが稼働しているポート。プロバイダーは、デフォルトでHTTP (7474) ポートに接続します。HTTPS で接続する場合は、Server で指定したNeo4j インスタンスのHTTPS ポートを指定してください。
- User:Neo4j インスタンスを使用しているユーザーのユーザー名。
- Password:Neo4j インスタンスを使用しているユーザーのパスワード。
- Database:Neo4j インスタンスで対象とするデータベース。デフォルトは"Neo4j" です。
データの取得
Select-Neo4j cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。
$results = Select-Neo4j -Connection $conn -Table "ProductCategory" -Columns @("CategoryId, CategoryName") -Where "CategoryOwner='Bob'"Invoke-Neo4j cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。
cmdlet 出力のパイプ処理
cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。
Select-Neo4j -Connection $conn -Table ProductCategory -Where "CategoryOwner = 'Bob'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myProductCategoryData.csv -NoTypeInformation
Select-Neo4j からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。
ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。
PS C:\> $conn = Connect-Neo4j -server "localhost" -port "7474" -user "neo4j" -password "password" PS C:\> $row = Select-Neo4j -Connection $conn -Table "ProductCategory" -Columns (CategoryId, CategoryName) -Where "CategoryOwner = 'Bob'" | select -first 1 PS C:\> $row | ConvertTo-Json { "Connection": { }, "Table": "ProductCategory", "Columns": [ ], "CategoryId": "MyCategoryId", "CategoryName": "MyCategoryName" }