こんにちは、CData Software Japanテクニカルサポートエンジニアの大川です。
本記事では、弊社より公開されたfreee会計向けのAPI Profileを使って、CData SyncでGoogle BigQueryとデータを同期する方法をご紹介します。
API Profileとは?
弊社ではCData API Driverという製品を提供しています。
この製品を利用することで、ODBC、JDBC、ADO.NET等を使用した標準SQLを使ってあらゆるAPIに対してアクセスすることが可能となります。API ProfileとはこのCData API Driverから参照されるAPIのスキーマ定義ファイルです。このファイルの仕様は公開されているため、誰でもこのファイルを作成することができ、CData API Driverを使って様々なAPIへアクセスすることが可能となります。
また、弊社から事前に定義されたAPI Profileを公開しています。
今回、この事前定義API ProfileにfreeeのAPI向けのファイルが追加されました。
これにより、freeeのAPIをODBC、JDBC、ADO.NET等を使用した標準SQLを使って利用できるようになりました。
CData Syncとは?
CData Syncは、弊社が提供するデータレプリケーションソフトウェアです。これにより、様々なクラウド上の業務アプリケーションデータをローカルDBやクラウドDBに簡単にレプリケーション(複製)できます。
200以上のデータソースおよび様々な同期先データベースが利用可能です。
これらの接続先に加え、CData SyncにはCData API Driverが組み込まれており、上記でご説明したAPI Profileがあれば接続先として利用できます。今回はこの機能を使って、freee会計を接続先として利用してみます。
連携手順
それでは、実際にCData Syncを使用してfreee会計のデータをGoogle BigQueryに同期してみます。
freee会計API利用準備
freee会計のAPIを利用するために、freee会計管理側でアプリケーション登録を行います。詳しくは以下の記事を参照ください。
「基本設定」タブでは、「コールバックURL」にはhttp://localhost:8019/src/oauthCallback.rst
(http://localhost:8019/
の部分はSyncサーバの管理画面へのURLとなるよう必要に応じて修正してください)を設定してください。また、後ほどCData Syncの接続設定に必要となるため「Client ID」と「Client Secret」の値を確認しておきます。
「権限設定」タブで同期したいテーブルの「参照」にチェックを入れておきます。今回は「[会計]事業所」を同期してみますので、該当行の「参照」にチェックを入れてください。
なお、CData Syncから確認できるテーブル(ビュー)名とデータ種別の対応は以下の通りです。
Name | Resource | API Reference Link |
---|---|---|
AccountItemItems | 勘定科目の詳細情報の取得 | Link |
AccountItemPartners | 勘定科目の詳細情報の取得 | Link |
AccountItems | 勘定科目一覧の取得 | Link |
ApprovalFlowRoutes | 申請経路一覧の取得 | Link |
ApprovalFlowRouteSteps | 申請経路の取得 | Link |
ApprovalRequestForms | 各種申請の申請フォーム一覧の取得 | Link |
ApprovalRequestItems | 各種申請の取得 | Link |
ApprovalRequests | 各種申請の一覧 | Link |
Banks | 連携サービス一覧の取得 | Link |
Companies | 事業所一覧の取得 | Link |
CompanyFiscalYears | 事業所の詳細情報の取得 | Link |
DealDetails | 取引(収入/支出)一覧の取得 | Link |
DealPayments | 取引(収入/支出)一覧の取得 | Link |
DealReceipts | 取引(収入/支出)一覧の取得 | Link |
DealRenewDetails | 取引(収入/支出)一覧の取得 | Link |
DealRenews | 取引(収入/支出)一覧の取得 | Link |
Deals | 取引(収入/支出)一覧の取得 | Link |
ExpenseApplicationLines | 経費申請一覧の取得 | Link |
ExpenseApplicationLineTemplates | 経費科目一覧の取得 | Link |
ExpenseApplications | 経費申請一覧の取得 | Link |
InvoiceContents | 請求書一覧の取得 | Link |
Invoices | 請求書一覧の取得 | Link |
Items | 品目一覧の取得 | Link |
Journals | 仕訳帳 ダウンロード要求 | Link |
ManualJournalDetails | 振替伝票一覧の取得 | Link |
ManualJournals | 振替伝票一覧の取得 | Link |
Partners | 取引先一覧の取得 | Link |
PaymentRequestLines | 支払依頼詳細の取得 | Link |
PaymentRequests | 支払依頼一覧の取得 | Link |
QuotationContents | 見積書一覧の取得 | Link |
Quotations | 見積書一覧の取得 | Link |
Receipts | ファイルボックス 証憑ファイル一覧の取得 | Link |
Sections | 部門一覧の取得 | Link |
SegmentTags | セグメントタグ一覧の取得 | Link |
Tags | メモタグ一覧の取得 | Link |
Transfers | 取引(振替)一覧の取得 | Link |
TrialBS | 貸借対照表の取得 | Link |
TrialBSPartners | 貸借対照表の取得 | Link |
TrialBSThreeYears | 貸借対照表(3期間比較)の取得 | Link |
TrialBSTwoYears | 貸借対照表(前年比較)の取得 | Link |
TrialPL | 損益計算書の取得 | Link |
TrialPLPartners | 損益計算書の取得 | Link |
TrialPLSections | 損益計算書(部門比較)の取得 | Link |
TrialPLThreeYears | 損益計算書(3期間比較)の取得 | Link |
TrialPLTwoYears | 損益計算書(前年比較)の取得 | Link |
UserMeCompanies | ログインユーザー情報の取得 | Link |
Users | 事業所に所属するユーザー一覧の取得 | Link |
Walletables | 口座一覧の取得 | Link |
WalletTxns | 明細一覧の取得 | Link |
CData Syncのインストール
以下のCData Syncダウンロードサイトよりダウンロードいただき、インストールしてください。
インストール後、トライアルライセンスを有効化することで30日間無償でご試用いただけます。インストール方法やトライアルライセンスの有効化の手順については、以下のハンズオン記事もご参照ください。
データソース (freee会計) の接続設定
CData Syncにログインし、「接続」画面を開きます。デフォルトでは今回のfreee会計は表示されていませんので、「+Add More」ボタンをクリックして追加を行います。
「コネクタをダウンロード」ダイアログが開きますので、「API Profile」をクリックし、一覧から「Freee」をクリックします。
API Profileのダウンロードダイアログが開きますので、「ダウンロード&インストール」をクリックします。
自動的にAPI Profileがダウンロードされ、インストールされます。インストールが完了すると以下のダイアログが表示されますので、「OK」をクリックします。
すると、データソースの一覧に「Freee Profile」が追加されていますので、クリックします。
接続設定画面になりますので、以下の通り設定します。
プロパティ名 | 値 | 備考 |
---|---|---|
名前 | freee会計 | 任意の名前 |
OAuthClientId | XXXXX | 「XXXXX」はfreee会計API利用準備で確認した「Client ID」の値 |
OAuthClientSecret | XXXXX | 「XXXXX」はfreee会計API利用準備で確認した「Client Secret」の値 |
また、「Advanced」タブで以下の値を設定します。
プロパティ名 | 値 | 備考 |
---|---|---|
Other (Optional) | CallbackURL=http://localhost:8019/src/oauthCallback.rst; 事業所IDが分かっている場合は以下の通りCompanyIdを指定 CallbackURL=http://localhost:8019/src/oauthCallback.rst;CompanyId=XXXXXXXX; |
http://localhost:8019/ の部分はSyncサーバの管理画面へのURLとなるよう必要に応じて修正してください。※ほとんどのAPIではここでCompanyIdを設定する必要があります。事業所IDについてを参照してください。 |
設定したら、「設定」タブの「次に接続 API Profile For Freee」ボタンをクリックします。
するとブラウザが立ち上がり、freee へのログインおよび認可が求められます。表示されている情報を確認し、「許可する」をクリックします。
接続が成功すると、以下のように「Success!」と表示されますので、「変更を保存」をクリックします。これでデータソースの接続設定は完了です。
同期先 (Google BigQuery) の接続設定
データソースと同様に、同期先の接続を追加します。「接続」設定から「同期先」タブ内の「Google BigQuery」をクリックします。
接続設定画面になりますので、以下の通り設定します。
プロパティ名 | 値 | 備考 |
---|---|---|
名前 | BigQuery | 任意の名前 |
Dataset Id | XXXXX | 「XXXXX」は同期先として使用するBigQuery のデータセットID |
Project Id | XXXXX | 「XXXXX」は同期先として使用するBigQuery があるプロジェクトID |
「次に接続 GoogleBigQuery」ボタンを押すと、CData Syncから対象のGoogleアカウントへのログインおよび認可が求められます。表示されている情報を確認し、「続行」をクリックして許可すると接続が完了しますので、「変更を保存」をクリックします。これで同期先の接続設定は完了です。
ジョブの作成
データソースおよび同期先の接続設定が完了したら、ジョブを作成します。
「ジョブ」メニューで「ジョブを追加」をクリックします。
ジョブの作成画面が出ますので、以下の通り設定し、「作成」をクリックします。
項目名 | 値 | 備考 |
---|---|---|
ジョブ名 | freeeToBigQuery | 任意の名前 |
ソース | freee会計 [API Profile For Freee] | ドロップダウンリストから選択 |
同期先 | BigQuery [GoogleBigQuery] | ドロップダウンリストから選択 |
レプリケーションの種類 | スタンダード |
これでジョブが作成されましたので、ジョブに対して同期したいテーブルを設定します。「テーブルを追加」をクリックします。
今回はfreee会計の「[会計]事業所」の情報を同期しますので、対応する「Companies」テーブルにチェックを入れて「選択したテーブルを追加」をクリックします。
ジョブの実行
以上でテーブルデータの同期設定が完了しました。「Companies」テーブルにチェックを入れ、「実行」をクリックして手動同期してみます。
すると、「ジョブfreeeToBigQueryは正常に完了しました。」と表示され、同時に同期されたレコード数が表示されます。Google BigQueryのエクスプローラ上でも、自動的にテーブルが作成され、データが挿入されていることが確認できます。
事業所IDについて
freee会計のほとんどのAPIへのアクセスには「事業所ID」の指定が必要となります。今回の例では「[会計]事業所」の情報を同期しましたが、これについては「事業所ID」を指定する必要がない情報となります。
「事業所ID」はfreeeの画面上から確認することができないため、freeeのAPIを使用して取得する必要があります(ダッシュボードで確認可能な「事業所番号」とは異なる値です)。CData Syncのみで完結させたい場合は、上記の例のようにまずは「[会計]事業所」の情報を同期してIDを確認することができます。
「事業所ID」が必要な他の情報の同期を行う際は、freee接続設定のAdvancedタブの「Other (Optional)」の値に追加で「CompanyId=XXXXXXXX;」のように事業所IDを指定する必要がありますのでご留意ください。
終わりに
以上のように、CData Syncを使ってfreee会計のデータを簡単に同期することができるようになりました。是非皆様のデータ利活用にお役立ていただければと思います。