
「ezpipe」でkintoneからRedshiftに連携する
はじめに
クラスメソッドが提供しているデータパイプラインサービス「ezpipe」は、kintoneからデータを連携する機能があります。
前回はSalesforceからSnowflakeへ連携する手順を紹介しました。
今回は接続元と接続先を変えて、kintoneからAmazon Redshiftへ連携する手順を紹介いたします。ezpipeは接続元・接続先の組み合わせが変わっても設定の流れは同じなので、前回との違いを中心に見ていきます。
なお「ezpipe」そのものについてや、kintone以外に対応している製品については以下の記事を参考にしてください。
ノーコードデータ連携サービス「ezpipe」で始めるデータ基盤構築
設定の全体の流れ
ezpipeの設定は、前回と同じく次の3つです。
- 接続元設定: kintoneの認証情報を登録する
- 接続先設定: Redshiftの接続情報を登録する
- パイプライン設定: 連携するアプリと連携サイクルを決める
事前に用意しておくものは以下です。
kintone側
- 連携対象のアプリを閲覧できるユーザーのログインID・パスワード
Redshift側
- Redshiftクラスターのエンドポイント(ホスト名・ポート・データベース名)
- 書き込み先のデータベースにテーブルを作成できるユーザー
順番に見ていきます。
接続元設定 - kintoneの認証情報登録
サイドメニューの「接続元」から新規作成を選び、kintoneを選択します。
入力項目は以下です。
| 項目 | 内容 |
|---|---|
| 接続名 | 一覧で判別するための名前 |
| ドメイン名 | xxx.cybozu.com の xxx 部分。.cybozu.com は自動で補完されます |
| ユーザー名 | kintoneのログイン名 |
| パスワード | kintoneのパスワード |

Salesforceでは別ウィンドウでOAuth認証を行いましたが、kintoneは画面上で認証情報を入力して保存するだけです。保存すると接続元の一覧に追加されます。

接続先設定 - Redshiftの認証情報登録
続いて「接続先」からAmazon Redshiftを選択します。
入力項目は以下です。
| 項目 | 内容 |
|---|---|
| 接続名 | 一覧で判別するための名前 |
| データウェアハウスのタイプ | Amazon Redshift クラスター |
| エンドポイント | ホスト名:ポート/データベース名 の形式で1つの欄にまとめて入力 |
| データベースへアクセスするユーザー名 | 書き込みに使うユーザー |
| ユーザーパスワード | そのユーザーのパスワード |

エンドポイントは、Redshiftのコンソールに表示されるエンドポイント(xxxx.ap-northeast-1.redshift.amazonaws.com:5439/dev のような形式)をそのまま貼り付けられます。
保存ボタンを押下すると、ボタンが「接続テスト中...」に変わり、接続に失敗した場合は保存されないので、この時点でエンドポイントや認証情報の誤りに気づけます。
保存すると接続先の一覧に追加されます。

パイプライン設定 - 連携する項目や時間などを設定
ここまでで登録した接続元と接続先を組み合わせて、実際の連携設定を作ります。パイプラインの作成はウィザード形式で、4ステップです。
ステップ1では、接続元として先ほど作成したkintone接続を選びます。

ステップ2では、接続先としてRedshift接続を選びます。

ステップ3: 連携したいエンティティを選択
Salesforceではオブジェクトの一覧が表示されましたが、kintoneではアプリの一覧が表示されます。連携したいアプリにチェックを入れます。

アプリを展開するとフィールドの一覧が表示され、連携する/しないフィールドの選択や、特定のフィールドのハッシュ化ができます。

kintone連携で知っておきたいのは、Redshift側のカラム名にkintoneのフィールド名がそのまま使われる点です。フィールド名が日本語であれば、カラム名も日本語になります。
ステップ4: パイプライン名とデータセット名の設定
最後にパイプライン名とデータセット名を入力します。
ここで指定したデータセット名が、Redshift側のスキーマ名になります。作成後は変更できないので、命名だけ気をつけてください。

登録すると完了ダイアログが表示され、パイプライン一覧に追加されます。
初回の連携を実行する
初回の連携は手動で実行する必要があります。パイプライン一覧の右端のメニュー(⋮)から「今すぐ実行」を選びます。

連携中はステータスが「連携中」になり、完了すると「成功」に変わります。

連携サイクルの設定
作成したパイプラインを開き、「連携サイクル」タブで実行間隔を設定します。
- 連携サイクル: 30分 / 1時間 / 2時間 / 3時間 / 4時間 / 6時間 / 8時間 / 12時間 / 24時間
- 基準時刻(JST): 定期実行の起点となる時刻

2回目以降の連携では、前回の連携以降に追加・更新されたレコードだけを取得します。
以上でkintoneからRedshiftへデータを連携できます。
連携結果を確認する
Redshiftのクエリエディタ v2 で連携先のデータベースを開くと、データセット名で指定したスキーマが作成され、その下に連携したアプリのテーブルが並んでいます。SELECTしてみます。
SELECT * FROM "データベース名"."データセット名"."テーブル名";

「確度」「レコード番号」「作成者」「合計費用」といった、kintoneのフィールド名がそのままカラム名になっています。kintoneの画面で見ていたレコードが、Redshift上でSQLで扱えるようになりました。
なお、テーブル名やカラム名に日本語や全角のカッコが含まれるため、SQLではダブルクォートで囲む必要があります。また、スペースに配置したアプリの場合はテーブル名の先頭にスペースのIDが付きます。
まとめ
ezpipeでkintoneからRedshiftへデータを連携する手順を紹介しました。
- 設定は接続元・接続先・パイプラインの3つで、Salesforce → Snowflakeのときと同じ流れ
- kintoneはドメイン名とユーザー名/パスワードを入力するだけで接続できる
- Redshiftは保存時に接続テストが走るので、接続情報の誤りにその場で気づける
- 連携先ではアプリがテーブル、フィールドがカラムになる
接続元と接続先を入れ替えても手順がほぼ変わらないのが、ezpipeの使いやすさだと感じています。kintoneに溜まった業務データを分析基盤に載せたいと考えている方は、ぜひ検討してみてください。







