製品をチェック

Certinia Cmdlets の30日間無償トライアルをダウンロード

 30日間の無償トライアルへ

製品の詳細

Certinia アイコン Certinia Data Cmdlets 相談したい

Certinia データにリアルタイム連携を実現するPowerShell Cmdlets。Cmdlets を使って、SQL Server と同感覚で多様なデータにリアルタイムアクセス。

Certinia データをPowerShell でMySQL にレプリケーションする方法

PowerShell のシンプルなスクリプトで、Certinia データ をMySQL データベースにレプリケーション(複製)する方法を紹介します。

古川えりか
コンテンツスペシャリスト

最終更新日:2023-09-26
certinia ロゴ

CData

powershell ロゴ画像
MySQL ロゴ

こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。

CData Cmdlets for Certinia を使えば、PowerShell からCertinia データ データにリアルタイムで連携できます。データ同期などのタスクの連携にぴったりの製品です。 本記事では、PowerShell からCData Cmdlets for Certinia およびCData Cmdlets for MySQL を使って、同期スクリプトを作成して実行します。

まずは、PowerShell でCertinia への接続を行います。レプリケーションは4つのステップがあります。

Certinia 接続プロパティの取得・設定方法

デフォルトでは、CData 製品は本番環境に接続します。サンドボックスアカウントを使用するには、UseSandboxtrue に設定します。User にサンドボックスのユーザー名を指定してください。

Certinia への認証

Certinia への接続に使用できる認証方法は以下のとおりです。

  • ログイン認証
  • SSO
  • OAuth

ログインおよびトークン

User およびPassword をログインクレデンシャルに設定します。さらにSecurityToken を設定します。SecurityToken については、信頼できるIP アドレスに利用中のIP を追加することで指定する必要がなくなります。

セキュリティトークンを無効にするには、以下の手順を実行してください。

  1. Certinia にログインして、「設定」セクションの「Quick Find」ボックスに「Network Access」と入力します。
  2. 使用しているIP アドレスを信頼できるIP アドレスのリストに追加します。

セキュリティトークンの取得には、以下を実行してください。

  1. Certinia の個人情報設定用ページを開きます。
  2. セキュリティトークンリセット用のリンクをクリックすると、トークンが指定したメールアドレスに送信されます。
  3. 取得したセキュリティトークンを、SecurityToken 接続プロパティに指定するか、Password に追加してください。

OAuth

すべてのOAuth フローで、AuthSchemeOAuth に設定する必要があります。詳しい設定方法については、ヘルプドキュメントの「OAuth」セクションを参照してください。

Certinia データの取得

  1. モジュールのインストール:

    Install-Module CertiniaCmdlets
  2. Certinia への接続:

    $certinia = Connect-Certinia -User $User -Password $Password -Security Token $Security Token
  3. 取得ターゲットのリソースの取得:

    $data = Select-Certinia -Connection $certinia -Table "Account"

    Invoke-Certinia cmdlet を使って、SQL-92 クエリを使用することもできます:

    $data = Invoke-Certinia -Connection $certinia -Query 'SELECT * FROM Account WHERE Industry = @Industry' -Params @{'@Industry'='Floppy Disks'}
  4. 戻り値からカラム名のリストを保存します。

    $columns = ($data | Get-Member -MemberType NoteProperty | Select-Object -Property Name).Name

Certinia データをMySQL データベースにレプリケーション

カラム名を指定できるようにして、データをMySQL データベースにレプリケーションします。

  1. モジュールのインストール:

    Install-Module MySQLCmdlets
  2. MySQL DB に、MySQL Server 名、ユーザー、パスワード、レプリケーション先のデータベース名を指定して、接続します:

    $mysql = Connect-MySQL -User $User -Password $Password -Database $Database -Server $Server -Port $Port
  3. Certinia、保存された値、そしてAdd-MySQL Cmdlet を使って、MySQL にデータを1レコードずつ挿入します。この例では、MySQL 側のテーブルは、Certinia のリソース(Account)と同じテーブル名を持っている必要があります。

    $data | % { $row = $_ $values = @() $columns | % { $col = $_ $values += $row.$($col) } Add-MySQL -Connection $mysql -Table "Account" -Columns $columns -Values $values }

次回以降のレプリケーションをシンプルに実現

  • 一度PowerShell でCertinia とMySQL に接続したら、次からは1行のコマンドでレプリケーションを実施できます:

    Select-Certinia -Connection $certinia -Table "Account" | % { $row = $_ $values = @() $columns | % { $col = $_ $values += $row.$($col) } Add-MySQL -Connection $mysql -Table "Account" -Columns $columns -Values $values }
  • 別のPowerShell モジュールで、Certinia を別のデータベースに複製する場合、Select-Certinia cmdlet のデータから、カラム、接続およびテーブルを除外しておきましょう。これらのデータはデータ移動のときだけ必要となるためです。

    $columns = ($data | Get-Member -MemberType NoteProperty | Select-Object -Property Name).Name | ? {$_ -NotIn @('Columns','Connection','Table')}

おわりに

これで、Certinia データをMySQL に複製できました。分析、BI などでCertinia データをMySQL から使うことができるようになります。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。