接続の確立
CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でCouchbase Cmdlets を使用する例を示します。
インストールおよび接続
PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。
Install-Module CouchbaseCmdlets
プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。
Import-Module CouchbaseCmdlets;
Connect-Couchbase cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。
$conn = Connect-Couchbase -User 'myusername' -Password 'mypassword' -Server 'http://couchbase40'
Connecting to Couchbase
To connect to data, set the Server property to the hostname or IP address of the Couchbase server(s) you are authenticating to.
If your Couchbase server is configured to use SSL, you can enable it either by using an https URL for Server (like https://couchbase.server), or by setting the UseSSL property to True.
Couchbase Analytics
By default, the 本製品 connects to the N1QL Query service. In order to connect to the Couchbase Analytics service, you will also need to set the CouchbaseService property to Analytics.
Couchbase Cloud
Set the following to connect to Couchbase Cloud:
- AuthScheme: Set this to Basic.
- ConnectionMode: Set this to Cloud.
- DNSServer: Set this to a DNS server. In most cases, this should be a public DNS service like 1.1.1.1 or 8.8.8.8.
- SSLServerCert: Set this to the TLS/SSL certificate to be accepted from the server. Any other certificate that is not trusted by the machine is rejected. Alternatively, set "*" to accept all certificates.
Authenticating to Couchbase
The 本製品 supports several forms of authentication. Couchbase Cloud only accepts Standard authentication, while Couchbase Server accepts Standard authentication, client certificates, and credentials files.
Standard Authentication
To authenticate with standard authentication, set the following:
- AuthScheme: Set this to Basic.
- User: The user authenticating to Couchbase.
- Password: The password of the user authenticating to Couchbase.
Client Certificates
The 本製品 supports authenticating with client certificates when SSL is enabled. To use client certificate authentication, set the following properties:
- AuthScheme: Set this to SSLCertificate.
- SSLClientCertType: The type of client certificate set within SSLClientCert.
- SSLClientCert: The client certificate in the format given by SSLClientCertType.
- SSLClientCertPassword (optional): The password of the client certificate, if it is encrypted.
- SSLClientCertSubject (optional): The subject of the client certificate, which, by default, is the first certificate found in the store. This is required if more than one certificate is available in the certificate store.
Credentials File
You can also authenticate using using a credentials file containing multiple logins. This is included for legacy use and is not recommended when connecting to a Couchbase Server that supports role-based authentication.
- AuthScheme: Set this to CredentialsFile.
- CredentialsFile: The path to the credentials file. Refer to Couchbase's documentation for more information on the format of this file.
データの取得
Select-Couchbase cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。
$results = Select-Couchbase -Connection $conn -Table "Customer" -Columns @("Name, TotalDue") -Where "CustomerId='12345'"Invoke-Couchbase cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。
cmdlet 出力のパイプ処理
cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。
Select-Couchbase -Connection $conn -Table Customer -Where "CustomerId = '12345'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myCustomerData.csv -NoTypeInformation
Select-Couchbase からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。
ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。
PS C:\> $conn = Connect-Couchbase -User 'myusername' -Password 'mypassword' -Server 'http://couchbase40' PS C:\> $row = Select-Couchbase -Connection $conn -Table "Customer" -Columns (Name, TotalDue) -Where "CustomerId = '12345'" | select -first 1 PS C:\> $row | ConvertTo-Json { "Connection": { }, "Table": "Customer", "Columns": [ ], "Name": "MyName", "TotalDue": "MyTotalDue" }
データの削除
以下は、抽出条件に合うあらゆるレコードを削除します。
Select-Couchbase -Connection $conn -Table Customer -Where "CustomerId = '12345'" | Remove-Couchbase
データの変更
cmdlet はデータクレンジング同様、データの変換を容易にします。次の例は、レコードがすでに存在するかどうか、挿入する前に更新が必要かどうかをチェックしてから、CSV ファイルのデータをCouchbase にロードします。
Import-Csv -Path C:\MyCustomerUpdates.csv | %{ $record = Select-Couchbase -Connection $conn -Table Customer -Where ("Id = `'"+$_.Id+"`'") if($record){ Update-Couchbase -Connection $conn -Table Customer -Columns @("Name","TotalDue") -Values @($_.Name, $_.TotalDue) -Where "Id = `'$_.Id`'" }else{ Add-Couchbase -Connection $conn -Table Customer -Columns @("Name","TotalDue") -Values @($_.Name, $_.TotalDue) } }