Cmdlets for Couchbase

Build 21.0.7930

接続の確立

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

A few special settings are required to connect to Couchbase Cloud:

  • Set the AuthScheme to Basic
  • Set the Server option to the domain listed in the Couchbase Cloud console.
  • Enable the UseSSL option.
  • Set the ConnectionMode to Cloud
  • Set the DNSServer option to a DNS server. In most cases this should be a public DNS service like 1.1.1.1 or 8.8.8.8.
  • Set the SSLServerCert option to * to trust the Couchbase server certificate. You can also provide the certificate using that option or your trust store if you want the 本製品 to validate it.

Authenticating with Couchbase

The 本製品 supports several forms of authentication depending upon how your Couchbase Server is configured. Couchbase Cloud only accepts Standard Authentication, while Couchbase Server accepts all forms.

Authenticating with Standard Authentication

To authenticate with standard authentication, set the following:

  • AuthScheme: Use the Basic option.
  • User: The user authenticating to Couchbase.
  • Password: The password of the user authenticating to Couchbase.

Authenticating with Client Certificates

The 本製品 supports authenticating with client certificates when SSL is enabled. To use client certificate authentication, set the following properties.

  • AuthScheme: Required. Use the SSLCertificate option.
  • SSLClientCertType: Required. The type of client certificate set within SSLClientCert.
  • SSLClientCert: Required. The client certificate in the format given by SSLClientCertType. Usually the path to your private key file.
  • SSLClientCertPassword: Optional. The password of the client certificate if it is encrypted.
  • SSLClientCertSubject: Optional. The subject of the client certificate, by default the first certificate found in the store. This is required if more than one certificate is available in the certificate store.

Authenticating with a 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: Use the CredentialsFile option.
  • 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)
  }
}

Copyright (c) 2021 CData Software, Inc. - All rights reserved.
Build 21.0.7930