MySQL のFederated Table としてTalkdesk のデータを連携利用する

古川えりか
古川えりか
コンテンツスペシャリスト
SQL Gateway とODBC Driver を使ってTalkdesk のMySQL Federated Table を構築する。



SQL Gateway を使って、MySQL リモーティングサービスを作成し、Talkdesk のMySQL Federated Table を構築できます。CData ODBC Driver for Talkdesk のMySQL インターフェースのdeamon になります。サービス起動後、MySQL のFEDERATED ストレージエンジンを使ってサーバーおよびテーブルを作成します。Talkdesk のデータ をMySQL テーブルのように使いましょう。

Talkdesk のデータへの接続

まだ設定していない場合は、データソース名(DSN)に必要な接続プロパティの値を指定します。DSN の設定には、Microsoft ODBC Data Source Administrator を使用できます。これはドライバーインストールの最終手順でもあります。Microsoft ODBC Data Source Administrator を使ったDSN の作成・設定方法については、ヘルプドキュメントの「Getting Started」の章を参照してください。

Talkdesk では OAuth 2.0 の Client Credentials グラントを使用します。ブラウザでの認可ステップやコールバック URL は必要ありません。

以下の接続プロパティを設定します。

  • AccountName:Talkdesk アカウントの名前。
  • Region:Talkdesk インスタンスがデプロイされているリージョン。指定できる値は US(デフォルト)、EU、CA、AU、UK、FedRamp です。
  • OAuthClientId:カスタム OAuth アプリケーションの登録時に割り当てられた Client Id。
  • OAuthClientSecret:カスタム OAuth アプリケーションに割り当てられた Client Secret。

カスタム OAuth アプリケーションの作成

  1. Talkdesk アカウントにログインし、ナビゲーションメニューから OAuth Clients を選択します。
  2. Create OAuth Client をクリックし、クライアントにわかりやすい名前を付けます。
  3. Grant Type を Client Credentials に設定します。
  4. Add scopes をクリックし、アクセスしたいデータに応じたスコープを選択します。
  5. Create をクリックし、Client Id と Client Secret をコピーします。

接続時、ドライバーは Talkdesk にアクセストークンを自動でリクエストしてキャッシュし、有効期限が切れると更新します。アプリケーションで選択したスコープが、クエリ予定のビューに対応していることを確認してください。対応していない場合、トークンのリクエストが失敗することがあります。

SQL Gateway の設定

Talkdesk のデータを仮想的なMySQL データベースとして利用できるように接続を設定するには、SQL Gateway の概要を参照してください。クライアントからのMySQL リクエストを受け付けるMySQL リモーティングサービスを設定します。このサービスは、SQL Gateway のUI で設定できます。

Creating a MySQL Remoting Service in SQL Gateway (Salesforce is shown)

Talkdesk データのFEDERATED サーバーおよびテーブルを作成

サービスの設定と起動が完了したら、FEDERATED サーバーを作成しましょう。これにより、FEDERATED テーブルの作成が簡単になります。

FEDERATED サーバーの作成

以下のステートメントでは、ODBC Driver for Talkdesk を基にしたFEDERATED サーバーを作成します。FEDERATED サーバーのユーザー名とパスワードは、SQL Gateway のUsers タブで定義したユーザーアカウントと一致させる必要があります。

CREATE SERVER fedTalkdesk
FOREIGN DATA WRAPPER mysql
OPTIONS (USER 'sql_gateway_user', PASSWORD 'sql_gateway_passwd', HOST 'sql_gateway_host', PORT ####, DATABASE 'CData Talkdesk Sys');

FEDERATED テーブルの作成

先ほど作成したサーバーを使ってFEDERATED テーブルを作成するには、CONNECTION キーワードを使い、FEDERATED サーバーの名前とリモートテーブル(Users)を指定します。FEDERATED テーブルを作成するステートメントは、以下のテンプレートを参考にしてください。

CREATE TABLE fed_users (
  ...,
  id  TYPE(LEN),
  name  TYPE(LEN),
  ...,
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='fedTalkdesk/users';

注:FEDERATED テーブルのテーブルスキーマは、リモートテーブルのスキーマと完全に一致させる必要があります。任意のMySQL クライアントを使ってMySQL リモーティングサービスに直接接続し、SHOW CREATE TABLE クエリを実行すれば、テーブルスキーマを取得できます。

クエリの実行

これで、MySQL に接続できる任意のツールからTalkdesk のFEDERATED テーブルに対してクエリを実行できるようになりました。ローカルテーブルのデータとTalkdesk のデータをJOIN したい場合には、特に便利です。以下の例を参考にしてください。

SELECT
  fed_users.id,
  local_table.custom_field
FROM
  local_table
JOIN
  fed_users
ON
  local_table.foreign_id = fed_users.id;

はじめる準備はできましたか?

Talkdesk ODBC Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

Talkdesk Icon Talkdesk ODBC Driver

Talkdesk ODBC Driver は、ODBC 接続をサポートするさまざまなアプリケーションからTalkdesk のリアルタイムデータ連携を実現するパワフルなツールです。

データベースにアクセスするときと同感覚でTalkdesk データにアクセスし、標準ODBC Driver インターフェースを通じてTalkdesk データを読み出せます。