複数のkintoneアプリのレコードデータを 自動集計して別kintoneアプリに反映

by 桑島義行 | April 11, 2025

00

はじめに


CData Sync V25.1でkintoneへのリバースETL機能が追加されました。詳細はこちらの記事をご参照ください。kintoneへのリバースETL機能を利用すると、各種データベースからkintoneへのデータの書き戻しが可能です。本記事では複数のkintoneアプリ内のデータをCData SyncのレプリケーションジョブでSQL Serverに複製、SQL Server側で集計した結果を、kintoneの別なアプリにリバースETL機能で書き戻すシナリオでの活用方法をご紹介します。

事前準備


  • kintoneアプリ
01
    • 集計対象となるkintoneのアプリ(本例では、サンプルの案件管理アプリを元に「Web販売」「対面販売」「代理店販売」の3つのアプリ)

05

    • 集計済みデータを格納する販売集計アプリ
06

  • SQL Serverのテーブル
    • 事前に集計結果を格納するテーブル
02

CREATE TABLE 案件管理_集計
(
日時 DATETIME NOT NULL,
対面販売 DECIMAL(15,0),
代理店販売 DECIMAL(15,0),
Web販売 DECIMAL(15,0),
合計 DECIMAL(15,0),
PRIMARY KEY (日時)
);

手順

kintoneからSQL Serverへのレプリケーションジョブの作成・実行

03

CData Syncの管理コンソールに入り、「接続」の「+接続の追加」ボタンをクリックして「データソース」タブより「kintone」、「同期先」タブより「SQL Server」の接続を作成します。
04
次に「ジョブ」を開き、「+ジョブを追加」ボタンをクリックして、kintoneからSQL Serverにレプリケーションするジョブ(本例では「kintone2SQL」)を作成します。ジョブのタスク(kintoneアプリ)には、事前準備で作成した3つのアプリを指定します。
07

ジョブを実行するとSQL Server側にアプリ名と同名のテーブルが作成され、データが複製されます。
08
※上記画面はAzure SQL Databaseのクエリエディタから確認しています

SQL Serverで集計クエリを実行

09

CData Syncの管理コンソールに入り、「変換」の「+変換の追加」ボタンをクリックして「新しい変換」>「名前:本例では集計」「種類:SQL」「同期先:SQL Server」を選択して「変換の追加」を行います。
10


作成した変換ジョブを選択して「クエリ」タブよりSQL Server上で実行したいクエリを登録します。
11

本記事ではSQL Server上の「案件管理_集計」テーブル内のデータを削除し、その後に各アプリの複製テーブル(例:案件管理_対面販売、案件管理_代理店販売、案件管理_Web販売)の集計データを「案件管理_集計」テーブルにINSERTするクエリを登録しました。

TRUNCATE TABLE 案件管理_集計
INSERT INTO
案件管理_集計
SELECT
DATEADD(hour, +9, SYSDATETIME()) AS 日時,
T.対面販売,
D.代理店販売,
W.Web販売,
T.対面販売 + D.代理店販売 + W.Web販売 AS 合計
FROM
(SELECT SUM(CONVERT(decimal,小計)) AS 対面販売 FROM 案件管理_対面販売) T
CROSS JOIN
(SELECT SUM(CONVERT(decimal,小計)) AS 代理店販売 FROM 案件管理_代理店販売) D
CROSS JOIN
(SELECT SUM(CONVERT(decimal,小計)) AS Web販売 FROM 案件管理_Web販売) W
;


登録したら変換ジョブを実行してみます。ジョブが正常終了したらSQL Server上の「案件管理_集計」テーブル内のデータを参照して集計されたデータが登録されていることを確認します。
12

作成した変換ジョブは、「kintoneからSQL Serverへのレプリケーションジョブの作成・実行」で作成したレプリケーションジョブの後続ジョブとして実行することが可能です。
13

SQL ServerからkintoneへのリバースETLジョブの作成・実行

14

CData Syncの管理コンソールに入り、「接続」の「+接続の追加」ボタンをクリックして「データソース」タブより「SQL Server」の接続を作成します。なお、kintoneについてはデータソースと同期先を共有のコネクションとしてご利用いただけます。
15

次に「ジョブ」を開き、「+ジョブを追加」ボタンをクリックして、SQL ServerからkintoneへのリバースETLジョブ(本例では「SQL2kintone」)を作成します。転送モードは集計結果のレコードを追加したいのでInsertを選択します。
16

テーブルを設定画面にてデータソース(SQL Serverの集計テーブル、本例では「案件管理_集計」)と同期先(kintoneの集計結果用アプリ、本例では「案件管理_集計」)を選択します。
17

データソースとなるSQL Serverと同期先のkintoneアプリの項目マッピングのカラムを追加してジョブを追加します。
18

追加したジョブを実行します。
19

ジョブが正常実行できたら、kintoneの集計結果用アプリ、本例では「案件管理_集計」を開いてみましょう。レコードが追加されて各kintoneアプリのデータが集計されて一つの別なkintoneアプリに反映することができました。
20

本手順では手動でジョブを実行しましたが、作成したジョブは毎日夜の0時に実行、1時間毎に実行といったようにスケジュール登録して集計作業を自動化することも可能です。
21

まとめ

本記事では複数のkintoneアプリ内のデータをCData SyncのレプリケーションジョブでSQL Serverに複製、SQL Server側で集計した結果をkintoneの別なアプリにリバースETL機能で書き戻すシナリオでの活用方法をご紹介しました。本例では全てkintone内のアプリをデータソースとして利用しましたが、同じ方法で、複数のSaaSアプリケーション(SalesforceやHubspot、Googleスプレッドシート)のデータを集計してkintoneに集約することも可能です。
22

本記事でご紹介したkintneへのリバースETL機能は、CData Sync(V25.1以上)でご利用いただけます。無償トライアルを始められたい方や設定を進める中でご不明な点が出てきた際には弊社テクニカルサポートまでお問い合わせください。