GoogleスプシからDr.Sumへ ゼロETLでデータをインポートする

赤塚誠二

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はCDataが提供する「CData Software Blog」に掲載された「Google スプレッドシートからDr.Sum へのゼロ ETL によるデータのインポート方法」を再編集したものです。

CData のドライバ製品は、ウイングアーク1st が提供するデータマートDr.SumSalesforce、kintone などのアダプターが採用されています。

このDr.Sum と CData のアダプターの組み合わせにより、一般的なデータの集約時に必要とされるETL パイプラインが不要な「ゼロETL」が可能になり、KPI 分析や予実管理に必要なデータの収集・分析から現場のネクストアクションまでのリードタイムの短縮やコストの大幅な削減が期待できます。

Dr.Sum が CData のアダプターを採用してSalesforce やkintone などとデータ連携を拡充

さらに、上記アダプター以外にもCData からは270以上のデータソースのJDBC Driver も提供しているため、例えばGoogle Spreadsheet やSAP などにも連携することが可能です。

270以上のデータソースに対応するCData のドライバ群

今回はDr.Sum のアダプターとして採用されているデータソース以外との「ゼロETL」によるデータ連携の例として、Google スプレッドシートに保存したデータをDr.Sum にインポートする方法についてご紹介します。

事前準備

事前準備として、今回の検証用にGoogle スプレッドシートを作成しておきましょう。
スクリーンショット内にある赤枠で囲われたURL部分がスプレッドシートを識別する「Spreadsheet ID」になりますのでエディタなどに保存しておきます。

1 ドライバのダウンロードとライセンスの有効化

まず始めにGoogle スプレッドシートとDr.Sum の連携に必要なドライバ製品「Google Sheets JDBC Driver」をダウンロードし、インストールと30日間の無料トライアルライセンスを有効化します。

なお、今回のインストールディレクトリは以下になります。必要に応じて皆様の環境に合わせたパスに読み替えてください。

C:\Program Files\CData\GoogleSheetsJDBCDriver

ライセンスが有効化されると「C:\Program Files\CData\GoogleSheetsJDBCDriver\lib」配下に 「cdata.jdbc.googlesheets.lic」が作成されます。

2 Windows に対して環境変数「CLASSPATH」の設定

ここではDr.Sum でGoogleSheetsJDBCDriver を使用するため、OS のシステム環境変数「CLASSPATH」にJDBC Driver への絶対のパスを登録します。

1.Windows のスタートメニューから、「コントロール パネル」>「システム」 >「システムの詳細設定」を選択
2.「システムのプロパティ」画面で、「詳細設定」タブの「環境変数」をクリック
3.「システム環境変数」のセクションに、「CLASSPATH」が登録されているか確認
4.「CLASSPATH」が未登録の場合は「システム環境変数」セクションにて「新規」をクリック
5.「変数名」の項目に「CLASSPATH」、「変数値」の項目にに保存したJDBC Driver への絶対のパス「C:\Program Files\CData\GoogleSheetsJDBCDriver\lib\cdata.jdbc.salesforce.jar」を登録

6.登録した内容を保存したらDr.Sum Server のサービスを再起動

すでに環境変数に「CLASSPATH」が存在する場合は「変数値」の末尾にセミコロン(;)を入力し、保存したJDBCドライバーの絶対パスを続けて入力します。

3 JDBC Driver での接続確認と接続文字列の作成

Dr.Sum 側で接続設定を行う前に、インストールしたGoogle Sheets JDBC Driver 単体でGoogle Sheet に接続可能かを確認します。

「C:\Program Files\CData\GoogleSheetsJDBCDriver\lib」配下の「cdata.jdbc.googlesheets.jar」をダブルクリックし、接続テスト画面を起動します。

標準タブでの設定内容

・Auth Scheme : OAuth
・Initiate OAuth : GETANDREFRESH
・Spreadsheet : [事前準備で保存しておいたSpreadsheet ID]
・Spreadsheet ID が空欄の場合は読み込み可能なすべてのスプレッドシートがリストされます。

詳細タブでの設定内容

今回の環境ではDr.Sumの実行ユーザーがアクセス可能なフォルダを指定するために以下の項目に対して設定を追加しています。

・OAuthSettingsLocation : C:\temp\OAuthSettings.txt

設定を追加したら接続テスト画面の左下にある「接続テスト」をクリックします。

ブラウザでGoogle Sheets のOAuth に関する認証画面が表示されますので、Googleアカウントにログインしてアプリケーションにアクセス許可を与えます。

認証が完了したらJDBC ドライバの「データモデル」タブでスプレッドシートのテーブルが読み込み可能なことを確認します。

クエリタブに表示されたSQL を実行するとスプレッドシートに入力していたデータが表示されました。

ここでエラーが発生する場合はスプレッドシートの共有設定などを見直してください。

Google Sheets JDBC Driver でスプレッドシートのテーブルの読み込みができたら、後ほどDr.Sum側のリソース設定で使用するために「接続」タブ内の「接続文字列」に表示されている文字列を保存しておきます。

これでJDBC Driver での接続確認と接続文字列の作成は完了ですのでJDBC ドライバは閉じても問題ありません。

4 VTB Creatorでの接続設定を作成する

いよいよ Dr.Sum での設定を行なっていきます。

VTB Creator を起動してサーバーにログイン後、 以下の手順でDr.Sum に取り込むデータソースを作成していきます。

1.「データソースを選択」画面にて、「作成」ボタンをクリック

2.「データソース情報」画面にて、種類で「JDBC」を選択し、「JDBCドライバー」欄右の「編集」ボタンをクリック

3.「JDBCドライバー一覧」画面にて、「作成」ボタンをクリックし、以下を入力

・名前 : GoogleSheetsDriver (任意の名前でOK)
・ドライバー : cdata.jdbc.googlesheets.GoogleSheetsDriver
・フォーマット : 空欄

必要な項目を設定したら「OK」ボタンをクリックしてドライバ情報を登録後、以下のように「データソース情報」を登録します。

・名前:Google Sheets(任意の名前でOK)
・種類:JDBC
・データソース:「接続テスト」画面の「接続文字列」の項目で保存した文字列
 例 : jdbc:googlesheets:AuthScheme=OAuth;Spreadsheet=[Spreadsheet ID];InitiateOAuth=GETANDREFRESH;OAuthSettingsLocation=C:\temp\OAuthSettings.txt;CacheLocation=C:\temp\

「テスト」をクリックして「接続に成功しました。」のメッセージが表示されるか確認し、「OK」をクリックして「データソース選択」画面に戻ります。

5 VTB Creator で仮想テーブルファイルを作成する

「データソース選択」画面で作成したデータソースを選択して「選択」ボタンをクリックします。

テーブルにスプレッドシートの情報が表示されますので、必要な項目をグリッドに追加します。

「クエリ」-「実行結果のプレビュー」をクリックして、データが正常に取得できるか確認します。

無事にスプレッドシートの情報が読み込めました!

正しく設定できましたので、「ファイル」-「名前を付けて保存」より、仮想テーブルファイルを保存します。

6 Enterprise Manager からスプレッドシートのデータをインポートする

インポート準備ができましたので、Enterprise Manager にログインし、「インポート」タブを選択から」インポート(仮想テーブル)」を選択します。

作成した仮想テーブルファイルと、テーブルを作成するデータベースを選択して、「実行」をクリックします。

Dr.Sum 側に新規にテーブルが作成され、スプレッドシートのデータを保存できました!

以上でGoogle スプレッドシートに保存したデータのDr.Sum へのインポートが完了しました。

このように、データの集約プロセスで手動CSVファイルをダウンロード・加工を必要とせず、ノーコードでデータ連携が完結できます。

CData のドライバはOAuth 認証の埋め込みクレデンシャルに対応しているため、ClientID やClientSecret を設定しなくてもノーコードによるシンプルな設定でセキュアなOAuth 認証によるデータ連携が実現できます。

また、Tokenのリフレッシュ処理などもドライバ内で行なっているため、管理者の工数をかけずに利用できます。

ぜひDr.Sum と CData のドライバの組み合わせをお試しいただき、皆様のデータ活用にお役立てください。

過去記事アーカイブ

2024年
02月
03月
04月
05月
06月
07月
08月
09月
10月
2023年
04月
07月
08月
09月
10月
11月
12月