Cmdlets for Google Data Catalog

Build 21.0.7930

接続の確立

CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でGoogleDataCatalog Cmdlets を使用する例を示します。

インストールおよび接続

PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。

Install-Module GoogleDataCatalogCmdlets

プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。

Import-Module GoogleDataCatalogCmdlets;

Connect-GoogleDataCatalog cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。

$conn = -InitiateoAuth "GETANDREFRESH" -ProjectId "YourProjectId"

Google Data Catalog への接続

Provide the following connection properties before adding the authentication properties.

  • OrganizationId: The ID associated with the Google Cloud Platform organization resource you would like to connect to. Find this by navigating to the cloud console.
    Click the project selection drop-down, and select your organization from the list. Then, click More -> Settings. The organization ID is displayed on this page.
  • ProjectId The ID associated with the Google Cloud Platform project resource you would like to connect to.
    Find this by navigating to the cloud console dashboard and selecting your project from the Select from drop-down. The project ID will be present in the Project info card.

Google Data Catalog への認証

Google Data Catalog へのすべての接続は、OAuth を使用して認証されます。本製品 では、認証にユーザーアカウント、サービスアカウント およびGCP インスタンスアカウントの使用をサポートします。

ユーザーアカウントで認証する

すべてのユーザーアカウントフローで、AuthSchemeOAuth に設定されている必要があります。 デスクトップアプリケーションでは、本製品 のデフォルトアプリケーションが最も簡単な認証方法です。 追加条件は、InitiateOAuthGETANDREFRESH に設定することだけです。

ドライバーが起動すると、ブラウザが開き、Google Data Catalog がログイン情報を要求します。 本製品 は提供された資格情報を使用してGoogle Data Catalog データにアクセスします。 これらの資格情報は保存され、必要に応じて自動的にリフレッシュされます。

サポートされているすべての方法を詳しく説明する認証ガイドは、OAuth 認証の使用 を参照してください。

サービスアカウントで認証する

サービスアカウントを使用して認証するには、新しいサービスアカウントを作成し、アカウント証明書のコピーを用意する必要があります。

JSON ファイルの場合は、以下のプロパティを設定する必要があります。

  • AuthScheme:必須。OAuthJWT に設定。
  • InitiateOAuth:必須。GETANDREFRESH に設定。
  • OAuthJWTCertType:必須。GOOGLEJSON に設定。
  • OAuthJWTCert:必須。Google が提供する.json ファイルへのパスに設定。
  • OAuthJWTSubject:オプション。この値は、サービスアカウントがGSuite ドメインの一部で、委任を有効にする場合にのみ設定します。このプロパティの値は、データにアクセスしたいユーザーのE メールアドレスでなければなりません。

PFX ファイルの場合は、代わりに以下のプロパティを設定する必要があります。

  • AuthScheme:必須。OAuthJWT に設定。
  • InitiateOAuth:必須。GETANDREFRESH に設定。
  • OAuthJWTCertType:必須。PFXFILE に設定。
  • OAuthJWTCert:必須。Google が提供する.pfx ファイルへのパスに設定。
  • OAuthJWTCertPassword:オプション。.pfx ファイルのパスワードに設定。Google はPFX 証明書を暗号化するため、ほとんどの場合、これを提供する必要があります。
  • OAuthJWTCertSubject:オプション。複数の証明書を格納するOAuthJWTCertType を使用している場合にのみ設定します。Google によって生成されたPFX 証明書には設定しないでください。
  • OAuthJWTIssuer:必須。サービスアカウントのE メールアドレスに設定。このアドレスには、通常iam.gserviceaccount.com ドメインが含まれます。
  • OAuthJWTSubject:オプション。この値は、サービスアカウントがGSuite ドメインの一部で、委任を有効にする場合にのみ設定します。このプロパティの値は、データにアクセスしたいユーザーのE メールアドレスでなければなりません。

サービスアカウントを持っていない場合は、カスタムOAuth アプリの作成 の手順に従って作成できます。

GCP インスタンスアカウントで認証する

GCP 仮想マシン上で実行している場合は、本製品 は仮想マシンに関連付けられたサービスアカウントを使用して認証できます。 このモードを使用するには、AuthSchemeGCPInstanceAccount に設定します。

データの取得

Select-GoogleDataCatalog cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。

$results = Select-GoogleDataCatalog -Connection $conn -Table "Schemas" -Columns @("Type, DatasetName") -Where "ProjectId='bigquery-public-data'"
Invoke-GoogleDataCatalog cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。

cmdlet 出力のパイプ処理

cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。

Select-GoogleDataCatalog -Connection $conn -Table Schemas -Where "ProjectId = 'bigquery-public-data'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\mySchemasData.csv -NoTypeInformation

Select-GoogleDataCatalog からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。

ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。

 
PS C:\> $conn  = -InitiateoAuth "GETANDREFRESH" -ProjectId "YourProjectId"
PS C:\> $row = Select-GoogleDataCatalog -Connection $conn -Table "Schemas" -Columns (Type, DatasetName) -Where "ProjectId = 'bigquery-public-data'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
  "Connection":  {

  },
  "Table":  "Schemas",
  "Columns":  [

  ],
  "Type":  "MyType",
  "DatasetName":  "MyDatasetName"
} 

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