
こんにちは、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会計のデータを簡単に同期することができるようになりました。是非皆様のデータ利活用にお役立ていただければと思います。