こんにちは。CData Software Japan の杉本です。
CData Arc ではWeb コンソールで行える操作の多くを、管理API を通じて実現することができます。
この記事では、管理API 活用の一例として、ワークスペースの設定を自動エクスポート(でバックアップ)を行い、バックアップから復元を行う流れについてどのようなフローを構成するかをご紹介します。
管理API
CData Arc の管理API はArc 自身をAPI を通じて操作できる機能です。
管理API は一連のAPI リソースとアクションで構成されます。これらのリソースとアクションへのAPI 呼び出しを組み合わせて、Arc 外部のスクリプトやサーバー、アプリケーションからCData Arc を管理することができます。管理API について、詳しくはこちらをご覧ください。
CData Arc - 管理API | Version 24.3.9159
また管理API を利用するには、Professional 以上のライセンスが必要です。Professional 以上のライセンスエディションでは、管理API の他にも、エンタープライズ向けのデータ統合に活用頂ける機能を豊富に搭載しています。
ライセンス価格 | CData Arc
そして本記事では以下の管理APIを利用します。
/api.rsc/workspaces
「/api.rsc/workspaces」を利用して、CData Arc 内に存在するワークスペースの一覧を取得します。
/api.rsc/export
「/api.rsc/workspaces」で取得した各ワークスペースに対して、「/api.rsc/export」を利用して、ワークスペース設定をエクスポート(バックアップを取得)します。
/api.rsc/import
「/api.rsc/export」でエクスポートしたワークスペース設定を、「/api.rsc/import」を利用してインポートします
事前準備
認証トークンの取得
管理API へのアクセスに必要な認証トークンは、設定ページのユーザータブから「管理API をコールするときに利用するユーザーアカウント」で取得します。
対象のユーザーアカウントの編集で「API 接続」を有効にすると認証トークンが発行されます。こちらを利用しますので忘れずに控えておいてください。
バックアップを保存するテーブルの作成
「/api.rsc/export」ではbase64 でエンコードされ、ワークスペースの設定がエクスポートされます。そのため今回はエクスポートしたbase64 の値をデータベースに保存して、復元時に利用出来るようにします。本記事ではSQL Server を利用したいと思いますので、事前に以下のようなCreate 文を利用して、保存先のテーブルを作成します。
CREATE TABLE [dbo].[backup_workspace](
[Id] [int] IDENTITY(1,1) NOT NULL,
[WorkspaceId] [nvarchar](max) NULL,
[Arcflow] [nvarchar](max) NULL,
[Createdat] [datetime] NULL
)
自動でバックアップを取得するフロー
実際に作成した自動で各ワークスぺースのバックアップを取得するフローは以下のようになります。
各コネクタで行っている内容について解説します。
REST コネクタ
REST コネクタから「/api.rsc/workspaces」にGET リクエストを行い、CData Arc 内に存在するワークスペースの一覧を取得します。
ヘッダーには認証トークンをセットします。
以下のように各ワークスペースの情報が返ってきますが、ここで利用するのは赤枠のworkspaceid のみです。
JSON コネクタ
REST コネクタで取得したJSON のレスポンスをXML に変換します。
Split コネクタ
変換したXML をワークスペース毎に分割します。これは後続のREST コネクタで一つのXML から複数のリクエストを発行することは出来ないためです。
また受信後イベントでメッセージヘッダーにworkspaceid をセットしておきます。これは後続のREST コネクタでエクスポートの処理を行ったときに、レスポンスにはworkspaceid が含まれていないため、どのワークスペースのバックアップかが判断出来なくなるためです。
REST コネクタ
REST コネクタから「/api.rsc/export」にPOST リクエストを行い、ワークスペースの内容をエクスポート(バックアップを取得)します。
ヘッダーには同様に認証トークンをセットして、ボディの種類には「x-www-form-urlencoded」を選択し、インプットのXML に含まれるworkspaceid をセットします。
JSON コネクタ
REST コネクタで取得したJSON のレスポンスをXML に変換します。
XMLMap コネクタ
REST コネクタで取得レスポンスの値をSQL Server のどの値に保存するかをマッピングをします。
具体的にはレスポンスに含まれるArcflowの値をSQL Server の Arcflowカラムにマッピングします。
Createdat カラムにはnowフォーマッタを利用して、現在日時をセットします。
そしてWorkspaceId カラムにはSplit コネクタのイベントでセットしたメッセージヘッダーのworkspaceidをセットします。
SQL Server コネクタ
今回は特にupdateを行う必要がなく全件insertで問題がないため、対象のカラムからidカラムを外して、またUPSERTのスライダーもOFFにしています。
フローの実行
フローを実行すると以下のようにSQL Server内のテーブルに取得したバックアップが保存されます。
取得したバックアップを元に復元するフロー
取得したバックアップからワークスペースを復元する場合は「/api.rsc/import」を利用してワークスペースをインポートを行う必要があります。
復元作業自体は定期的に行う必要はないため、フローを作成する必要性は薄いですが、今回は参考として以下のようなフローを作成しました。
こちらのフローでは特定のワークスペースの最新のバックアップをSQL Server のテーブルから取得して、復元するフローになっています。
SQL Server コネクタ
カスタムクエリを利用して、特定のワークスペースの最新のバックアップ内容を取得しています。
今回は「salesforce」というワークスペースの最新のバックアップを取得するようにしています。
SELECT * FROM `dbo`.`backup_workspace` WHERE `createdat` = (SELECT MAX(`createdat`) FROM `dbo`.`backup_workspace` WHERE `workspaceid` = 'salesforce') and `workspaceid` = 'salesforce'
REST コネクタ
REST コネクタから「/api.rsc/import」にPOST リクエストを行い、取得したワークスペースのバックアップをインポートします。
ヘッダーには同様に認証トークンをセットして、ボディの種類には「x-www-form-urlencoded」を選択し、インプットのXML に含まれる「Arcflow」と「WorkspaceId」をセットします。
フローの実行
バックアップを取得した時点では対象のワークスペースにはSalesforceコネクタが存在します。
一度こちらのコネクタを削除します。
対象のワークスペースに他のフローやコネクタが存在しないことを確認して、フローを実行します。フローの実行後に先ほど削除したコネクタが復元されていることが確認出来ます。
おわりに
この記事では、CData Arc の管理API 利用の一例として、ワークスペースの設定を自動エクスポート(バックアップ)を行い、バックアップから復元を行う方法をご紹介しました。
CData Arc をRESTful なAPI を通じて管理できる「管理API」はArc の大きな特長の1つです。送受信のトリガーはもちろん、ワークスペースやフローの構成、処理したファイルのメタデータやログデータの取得など、Web コンソールで行えるほとんどを管理API から実行することができます。管理API を上手く利用すれば、Arc への構成や設定そのものを自動化することが可能です。
皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください
CData Arc | データ連携、EAI、マネージドファイル転送(MFT)、電子データ交換(EDI)のオールインワンツール
この記事ではCData Arc™ 2025 - 25.1.9211.0を利用しています。