CData API Serverでいろいろなデータソースへ接続しAPIを作成する

2020.06.24

はじめに

データアナリティクス事業本部のkobayashiです。

つい先日、REST API構築ツール CData API Server を扱う機会がありました。CData API Serverは多種多様のデータソースを元にノーコードでREST APIサーバーを作成することができる製品です。以下の画像はCData API Serverのサイトに記載されている画像ですがこれを見れば何ができるかが一目瞭然です。

CData API Server より引用

より詳しい説明は公式サイトをご確認ください。

CData API Server: データベースから簡単にREST API を開発・運用

今回はCData API ServerでAPIを作成する際に最初に設定が必要になるデータソースへの接続方法をまとめたいと思います。今回設定したのは次の4つのデータソースになります。

  • Amazon Redshift
  • Amazon DynamoDB
  • Google BigQuery
  • Snowflake

無償版のCData API Serverでも上記のデータソースで接続設定は行なえAPIも作成できますが、APIを叩くとエラーが返ります。SQLite、Apache Derby、MySQL、Excel以外のデータソースを試してみたい場合は無償版ではなくトライアル版をご利用ください。

CData API Serverのインストール方法やデータソースがMySQLの場合の設定は下記エントリーをご確認ください。

環境

  • Windows 10
  • CData API Server - 19.0.7362.0

CData API Serverへの接続設定

各データソース用のドライバーインストール

CData社はあらゆるデータソースに対応したドライバーを販売しており、同社のサイト( CData Drivers )からドライバーの評価版がダウンロードできますのでこれを使用します。

  1. CData API Serverをインストールした環境がWindowsですのでADO.NET版を選択する。
  2. ダウンロードボタン → ダウンロード評価版ボタンを押下してダウンロード画面に進む。
  3. Eメール他必要情報を入力してダウンロードボタンを押下し.exeファイルを ダウンロードする。
  4. ダウンロードした.exeファイルをダブルクリックしインストーラーを立ちあげドライバーをインストールする。(複数選択画面が出るが設定を変更する必要はほぼないと思うので次へを押していく。)

「インストールが正常に完了しました。」の文言が出たらインストールの完了なのでCData API Serverを再起動します。

ここまで行うと下記画面の様にCData API Serverの接続画面にデータソースが表示されるようになります。

ここからは各データソースごとに接続設定をしていきます。

Amazon Redshiftの設定

Redshiftへの接続情報で必要なものは以下の情報ですが、必要に応じでセキュリティグループでCData API Serverをホストしているサーバーからのアクセスに制限したほうが良いと思います。

  • ホスト名
  • ポート番号
  • データベース名
  • ユーザー名
  • パスワード
  1. CData API Serverへアクセスし、設定 > 接続と進むと接続設定を行う画面に遷移するので、その画面で接続の追加ボタンを押下する。
  2. データソースからRedshiftを選択する。
  3. 設定値の入力フォームが出てくるので入力し、接続のテストを押下して「接続に成功しました。」と表示されれば接続はできているので変更の保存を押下して保存する。
  • 名前 : わかりやすい名前を入力(API名になるのでわかりやすく他のデータソースと重複しない名前にする)
  • Active Direct Queries : チェックしない
  • Master Connection : チェックしない
  • フォーマット設定 : プロパティリストを選択
  • Server : ホスト名を入力
  • Post : ポート番号を入力
  • Database : データベース名を入力
  • User : ユーザー名を入力
  • Password : パスワードを入力

Amazon Redshiftの設定(PostgresSQLドライバーの利用)

Redshift専用のドライバーの場合は CData Drivers からRedshift用のドライバーをダウンロードしてインストールする必要がありますが、Redshiftへの接続なのでPostgresSQLドライバーを使用してRedshiftへの接続も行えます。PostgresSQLドライバーはCData API Serverをインストールすると最初から入っているためこの方法でも良いかと思います。

設定方法はほぼ先のAmazon Redshiftの設定を同じです。

  1. CData API Serverへアクセスし、設定 > 接続と進むと接続設定を行う画面に遷移するので、その画面で接続の追加ボタンを押下する。
  2. データソースからPostgresSQLを選択する。
  3. 設定値の入力フォームが出てくるので入力し、接続のテストを押下して「接続に成功しました。」と表示されれば接続はできているので変更の保存を押下して保存する。
  • 名前 : わかりやすい名前を入力(API名になるのでわかりやすく他のデータソースと重複しない名前にする)
  • Active Direct Queries : チェックしない
  • Master Connection : チェックしない
  • フォーマット設定 : プロパティリストを選択
  • Server : ホスト名を入力
  • Post : ポート番号を入力
  • Database : データベース名を入力
  • User : ユーザー名を入力
  • Password : パスワードを入力

Amazon DynamoDBの設定

DynamoDBの接続にはIAMユーザのアクセスキーとシークレットキーが必要になります。 またDynamoDBを読み書きできる以下のポリシーを作成しIAMユーザーにアタッチする必要があります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ListTable",
            "Effect": "Allow",
            "Action": [
                "dynamodb:List*",
                "dynamodb:DescribeReservedCapacity*",
                "dynamodb:DescribeLimits",
                "dynamodb:DescribeTimeToLive"
            ],
            "Resource": "*"
        },
        {
            "Sid": "{テーブル名}",
            "Effect": "Allow",
            "Action": [
                "dynamodb:BatchGet*",
                "dynamodb:DescribeStream",
                "dynamodb:DescribeTable",
                "dynamodb:Get*",
                "dynamodb:Query",
                "dynamodb:Scan",
                "dynamodb:BatchWrite*",
                "dynamodb:CreateTable",
                "dynamodb:Delete*",
                "dynamodb:Update*",
                "dynamodb:PutItem"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/{テーブル名}"
        }
    ]
}

IAMユーザーを作成し、ポリシーをアタッチしたら設定を行います。

  1. CData API Serverへアクセスし、設定 > 接続と進むと接続設定を行う画面に遷移するので、その画面で接続の追加ボタンを押下する。
  2. データソースからDynamoDBを選択する。
  3. 設定値の入力フォームが出てくるので入力し、接続のテストを押下して「接続に成功しました。」と表示されれば接続はできているので変更の保存を押下して保存する。
  • 名前 : わかりやすい名前を入力(API名になるのでわかりやすく他のデータソースと重複しない名前にする)
  • Active Direct Queries : チェックしない
  • Master Connection : チェックしない
  • フォーマット設定 : プロパティリストを選択
  • Secret Key : シークレットキーを入力
  • Access Key : アクセスキーを入力

Google BigQueryの設定

BigQueryへの接続に必要な情報はプロジェクトIDとデータセットIDですが、設定を完了するにはブラウザからCData Google BigQuery Connectorへ権限の付与をしなくてはいけません。

またこの操作はCData API Serverをインストールしたサーバーで行う必要があります。CData API Serverの管理画面へリモートからアクセスしている場合、認証を行おうとしても

Failure! You must enable TLS or login from the local machine to authenticate with this site.

と怒られてしまい接続設定が完了しません。

したがって、以降の作業はCData API Serverをインストールしたホスト上のChromeにて行います。

1.CData API Serverへアクセスし、設定 > 接続と進むと接続設定を行う画面に遷移するので、その画面で接続の追加ボタンを押下する。

2.データソースからGoogle BigQueryを選択する。

3.設定値の入力フォームが出てくるので入力し、接続を押下する。

  • 名前 : わかりやすい名前を入力(API名になるのでわかりやすく他のデータソースと重複しない名前にする)
  • Active Direct Queries : チェックしない
  • Master Connection : チェックしない
  • フォーマット設定 : プロパティリストを選択
  • Dataset Id : BigQueryのデータセットID
  • Project Id : BigQueryのプロジェクトID

4.Googleへのログイン画面が立ち上がるのでアカウントを選択する。

5.CData Google BigQuery Connectorへの権限付与の確認画面が立ち上がるので許可を押下する。

6.確認画面になるので内容を確認して問題なければ許可を押下する。

7.設定値の入力画面に戻り「接続に成功しました。」と表示されれば接続はできているので変更の保存を押下して保存する。

Snowflakeの設定

Snowflakeへの接続情報で必要なものは以下の情報になります。

  • Snowflake URLのドメイン
  • ユーザー名
  • パスワード
  • ウェアハウス名
  • データベース名
  • スキーマ名
  1. CData API Serverへアクセスし、設定 > 接続と進むと接続設定を行う画面に遷移するので、その画面で接続の追加ボタンを押下する。
  2. データソースからSnowflakeを選択する。
  3. 設定値の入力フォームが出てくるので入力し、接続のテストを押下して「接続に成功しました。」と表示されれば接続はできているので変更の保存を押下して保存する。
  • 名前 : わかりやすい名前を入力(API名になるのでわかりやすく他のデータソースと重複しない名前にする)
  • Active Direct Queries : チェックしない
  • Master Connection : チェックしない
  • フォーマット設定 : プロパティリストを選択
  • Url : Snowflake URLのドメインを入力
  • User : ユーザー名を入力
  • Password : パスワードを入力
  • Warehouse : ウェアハウス名を入力
  • Schema : スキーマ名を入力
  • Advancedタブ
    • Database : データベース名を入力

まとめ

CData API Serverといろいろなデータソースを接続する方法をまとめました。

他にもたくさんのデータソースが設定できるので今後接続する必要があれば随時接続方法を更新していきます。

最後まで読んで頂いてありがとうございました。