Google Translate のデータをSQL Server に同期(キャッシュ)する方法

古川えりか
古川えりか
コンテンツスペシャリスト
キャッシュ機能を使って、Google Translate の任意のエンドポイントをSQL Server にキャッシュ同期



Google Translate のデータをDB にコピーするニーズは多いです。例えば、データのバックアップのため、 データをDB にデータレイク的に格納して他のアプリケーションやBI、ETL ツールから連携利用するなどです。

ただし、JSON やXML 形式であったりスキーマレスなデータなどを、DB に格納できるようにスキーマ定義をしながらデータを同期することは大きな手間です。 しかも、SaaS やNoSQL などのデータはスキーマレスであったり、スキーマが頻繁に変更されます。

Driver 技術では、Google Translate のデータをテーブルにモデル化し、スキーマを付与してDB への格納を容易にします。 本記事では、CACHE コマンドだけで、SQL Server にGoogle Translate のデータの同期を取る方法を説明します。

同期先となるデータベースの準備

この例では、SQL Server を使います。難しい手順は不要で、SQL Server に任意の名前の新しい同期DB を作成しておくだけです。

CData ODBC ドライバとは?

CData ODBC ドライバは、以下のような特徴を持った製品です。

  1. Google Translate をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレデータソースに対応
  2. 多様なアプリケーション、ツールにGoogle Translate のデータを連携
  3. ノーコードでの手軽な接続設定
  4. 標準SQL での柔軟なデータ読み込み・書き込み

CData ODBC ドライバでは、1.データソースとしてGoogle Translate の接続を設定、2.SQL Server 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。

CData ODBC ドライバのインストールとGoogle Translate への接続設定

まずは、本記事右側のサイドバーからAPI ODBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。

ODBC 接続プロパティの指定がまだの場合は、DSN (データソース名)で接続設定を行います。Microsoft ODBC データソースアドミニストレーターを使ってODBC DSN を作成および設定できます。ODBC ドライバーのインストール完了時にODBC DSN 設定画面が立ち上がります。 Microsoft ODBC データソースアドミニストレーターを開いて設定を行うことも可能です。 必要なプロパティを設定する方法は、ヘルプドキュメントの「はじめに」をご参照ください。

認証

Google Cloud Translation API では、翻訳サービス、データセット、用語集、適応型 MT リソースへの安全なアクセスを確保するために、OAuth 2.0 認証が必要です。この認証方式により、Google Cloud プロジェクトに安全に接続し、適切な認可のもとで翻訳リソースを管理できます。

OAuth 2.0 のセットアップと設定

ステップ 1:Google Cloud プロジェクトの作成と API の有効化

OAuth 認証をセットアップするには、以下のステップで進めます:

  1. Google Cloud Console にアクセスします
  2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
  3. Project ID を控えておきます(すべての API 呼び出しで必要です)
  4. 「APIs & Services」 > 「Library」に移動します
  5. 「Cloud Translation API」を検索して有効化します
  6. 「APIs & Services」 > 「Credentials」に移動します
  7. 「Create Credentials」をクリックし、「OAuth Client ID」を選択します
  8. プロンプトが表示されたら OAuth 同意画面を設定します
  9. 用途に応じて「Desktop application」または「Web application」を選択します
  10. 承認済みリダイレクト URI(CallbackURL)を設定します
  11. 接続で使用する Client ID と Client Secret をコピーします

必須の接続プロパティ

  • AuthScheme:OAuth に設定します(必須)
  • OAuthClientId:Google Cloud Console の Client ID(必須)
  • OAuthClientSecret:Google Cloud Console の Client Secret(必須)
  • CallbackURL:OAuth アプリケーションで指定したリダイレクト URI(必須)
  • InitiateOAuth:トークンを自動管理するには GETANDREFRESH に設定します(推奨)
  • ProjectId:Google Cloud のプロジェクト ID またはプロジェクト番号(クエリに必須)

必須の OAuth スコープ

Google Cloud Translation API プロファイルでは、以下の OAuth スコープが必要です:

  • https://www.googleapis.com/auth/cloud-translation - 翻訳、データセット、用語集、適応型 MT を含む Cloud Translation API リソースへのフルアクセス

通常のDSN 設定に加え、キャッシュ関連項目の設定が必要です:
Cache Connection:以下をセミコロン区切りで入力
Cache Provider:SQL Server ではSystem.Data.SqlClient

Server=server name;Database=database name;User ID=your id;Password=password;

Visual Studio からキャッシュを実行

Visual Studio のサーバーエクスプローラーから「データ接続」を右クリックして「接続の追加」を選択します。
データソース選択画面で「Microsoft ODBC データソース」を選択します。

サーバーエクスプローラーには、「ODBC.Google Translate.CData」というコネクションができています。 展開するとGoogle Translate のデータがテーブルよびビューとしてモデル化されて表示されます。 これらのオブジェクトは通常のSQL で操作することができます。

キャッシュクエリの実行

以下のキャッシュコマンドを作成し、実行します。 実行時にクエリテキストエラーが出ても気にせず続行してください。

CACHE SELECT * FROM "Target Table"

キャッシュ結果をSQL Server で確認

データベースの下にkintone の選択したアプリが同期されています。キレイにDB 向けにスキーマも付いてます。普通にSQL でアプリケーション内で使ってください。

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

API Driver で Google Translate のライブデータに接続

Google Translate に接続