接続の確立
CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でGreenplum Cmdlets を使用する例を示します。
インストールおよび接続
PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。
Install-Module GreenplumCmdlets
プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。
Import-Module GreenplumCmdlets;
Connect-Greenplum cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。
$conn = Connect-Greenplum -User 'user' -Password 'admin' -Server '127.0.0.1' -Port '5432' -Database 'dbname'
Connecting to Greenplum
To connect to Greenplum, set the Server, Port (the default port is 5432), and Database connection properties and set the User and Password you want to use to authenticate to the server. If the Database property is not specified, the 本製品 connects to the user's default database (it is the same name as the user).
Authenticating to Greenplum
The CData Cmdlets PowerShell Module for Greenplum supports the md5, password, Kerberos and SASL (particulary, SCRAM-SHA-256) authentication methods.The specific authentication method is setup in the pg_hba.conf file on the Greenplum Server. You can find instructions about authentication setup on the Greenplum Server here. The md5, password and SASL authentication methods do not require additional setup by the CData Cmdlets PowerShell Module for Greenplum.
Kerberos
The Greenplum Server initiates authentication with the Kerberos Server when the CData Cmdlets PowerShell Module for Greenplum attempts a connection. You need to setup Kerberos on the Greenplum Server to activate this authentication method. After you have Kerberos authentication setup on the Greenplum Server, see Kerberos の使用 for details on how to authenticate with Kerberos by the 本製品.
データの取得
接続の作成が完了したら、リレーショナルデータベースに対して通常行える操作を
別のcmdlet を使って実行できます。 Select-Greenplum cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。
$results = Select-Greenplum -Connection $conn -Table ""template1"."public".Orders" -Columns @("ShipName, ShipCity") -Where "ShipCountry='USA'"Invoke-Greenplum cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。
cmdlet 出力のパイプ処理
cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。
Select-Greenplum -Connection $conn -Table "template1"."public".Orders -Where "ShipCountry = 'USA'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\my"template1"."public".OrdersData.csv -NoTypeInformation
Select-Greenplum からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。
ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。
PS C:\> $conn = Connect-Greenplum -User 'user' -Password 'admin' -Server '127.0.0.1' -Port '5432' -Database 'dbname' PS C:\> $row = Select-Greenplum -Connection $conn -Table ""template1"."public".Orders" -Columns (ShipName, ShipCity) -Where "ShipCountry = 'USA'" | select -first 1 PS C:\> $row | ConvertTo-Json { "Connection": { }, "Table": ""template1"."public".Orders", "Columns": [ ], "ShipName": "MyShipName", "ShipCity": "MyShipCity" }
データの削除
以下は、抽出条件に合うあらゆるレコードを削除します。
Select-Greenplum -Connection $conn -Table "template1"."public".Orders -Where "ShipCountry = 'USA'" | Remove-Greenplum
データの変更
cmdlet はデータクレンジング同様、データの変換を容易にします。次の例は、レコードがすでに存在するかどうか、挿入する前に更新が必要かどうかをチェックしてから、CSV ファイルのデータをGreenplum にロードします。
Import-Csv -Path C:\My"template1"."public".OrdersUpdates.csv | %{ $record = Select-Greenplum -Connection $conn -Table "template1"."public".Orders -Where ("Id = `'"+$_.Id+"`'") if($record){ Update-Greenplum -Connection $conn -Table "template1"."public".Orders -Columns @("ShipName","ShipCity") -Values @($_.ShipName, $_.ShipCity) -Where "Id = `'$_.Id`'" }else{ Add-Greenplum -Connection $conn -Table "template1"."public".Orders -Columns @("ShipName","ShipCity") -Values @($_.ShipName, $_.ShipCity) } }