こんにちは!リードエンジニアの杉本です。
この記事では、Kafka のSampleTable_1 データをkintone に同期する方法を紹介します。グレープシティ社のkrewData というkintone プラグインとCData Connect Server を使うと、Kafka をはじめとする100を超えるSaaS データをノーコードでkintone に取り込むことが可能です。
krewData とは?
krewData は、グレープシティ社が提供するkintone のプラグインで、kintone の複数のアプリ間やExcel・CSV ファイルとkintone のデータ統合をkintone 上で行うことができます。
https://krew.grapecity.com/products/krewdata.htm
ホスティングについて
krewData からCData Connect Server に接続するには、利用するConnect Server インスタンスをネットワーク経由での接続が可能なサーバーにホスティングして、URL での接続を設定する必要があります。CData Connect がローカルでホスティングされており、localhost アドレス(localhost:8080 など)またはローカルネットワークのIP アドレス(192.168.1.x など)からしか接続できない場合、krewData はCData Connect Server に接続することができません。
クラウドホスティングでの利用をご希望の方は、AWS Marketplace やGCP Marketplace で設定済みのインスタンスを提供しています。
Kafka データの仮想データベースを作成する
CData Connect Server は、シンプルなポイントアンドクリックインターフェースを使用してデータソースに接続し、データを取得します。まずは、右側のサイドバーのリンクからConnect Server をインストールしてください。
- Connect Server にログインし、「CONNECTIONS」をクリックします。
- 一覧から「Kafka」を選択します。
-
Kafka に接続するために必要な認証プロパティを入力します。
BootstrapServers およびTopic プロパティを設定して、Apache Kafka サーバーのアドレスと、対話するトピックを指定します。
認可メカニズム
- SASL Plain:User およびPassword プロパティを指定する必要があります。AuthScheme は'Plain' に設定します。
- SASL SSL:User およびPassword プロパティを指定する必要があります。AuthScheme は'Scram'
に、UseSSL はtrue に設定します。
- SSL:SSLCert およびSSLCertPassword プロパティを指定する必要があります。UseSSL はtrue に設定します。
- Kerberos:User およびPassword プロパティを指定する必要があります。AuthScheme は'Kerberos' に設定します。
サーバー証明書を信頼する必要がある場合があります。そのような場合は、必要に応じてTrustStorePath およびTrustStorePassword を指定してください。
- 「 Test Connection」をクリックします。
- 「Permission」->「 Add」とクリックし、適切な権限を持つ新しいユーザー(または既存のユーザー) を追加します。
仮想データベースが作成されたら、krewData を含むお好みのクライアントからKafka に接続できるようになります。
コネクションが構成されたら、kintone 上のkrewData プラグインからKafka に接続できるようになります。
krewData でKafka データをkintone に同期する
ここからは、kintone のプラグインであるkrewData での設定になります。
krewData の設定
krewData のプラグインインストールとkintone での設定については、こちらのリンクを参照してください。
https://krew.grapecity.com/products/krewdata.htm
kintone にkrewData プラグインを入れ、必要な権限設定を行ってください。
krewData の入力としてKafka を設定
ここからは、実際にKafka をkintone にロードするフローを作成していきます。krewData 自体は、複数データソースの統合、データのフィルタリング、集計処理など多様な機能を有するETL ですが、今回はシンプルにKafka のSampleTable_1 データをkintone のアプリに同期するフローを作成します。
- kintone 画面でアプリにkrewData が表示されているので、これをクリックします。
- krewData アプリ画面の右上の「⚙」をクリックし、「設定」を開きます。
- 「設定」タブからプラグインをクリックします。これでkrewData のプラグイン操作画面に来ました。
- 「+データ編集フローを作成」の文字をクリックしてフローを作成します。作成されたフローが表示されますので、「⚙」マークをクリックしてフローを編集します。
- フロー編集画面が開きます。通常のkrewData フローは「入力アプリ」ではじまり、間にいくつかの処理モジュールを入れた後に「出力アプリ」で閉じる形です。CData Connect Server を使う場合には、一番下の「外部連携」の「CData Connect Server入力」モジュールを使います。
「CData Connect Server入力」を左ペインからドラッグして、フローキャンバスにドロップします。そこからコマンド設定を行っていきます。「アプリを選択」をクリックします。
- 「+新しい外部サービス情報アプリを作成する」をクリックして、アプリ名を入力してアプリを作成します。こちらはkrewData の連携で使われるアプリですので、通常のkintone アプリを設定することはできません。OK をクリックします。
- 同じ入力コマンドで「サインイン」をクリックして、CData Connect Server にkrewData からサインインします。アカウント選択画面がでるので、「別のアカウントを追加」ボタンをクリックします。CData Connect Server アカウント設定画面が表示されるので、Connect Server への接続を行います。
CData Connect Server アカウント:Connect Server のユーザー名
Personal Access Token:Connect Server ユーザーのパスワード
OK を押してConnect Server に接続します。
- 次に「データソースを選択」ボタンをクリックします。まずどのConnection を使うかを選択するので、先ほど作成したKafka のConnection をドロップダウンから選択します。
- Kafka のどのオブジェクト(テーブル)を使うかを選択します。CData Connect Server がKafka のオブジェクト(含むカスタムオブジェクト)をフラットなテーブル構造にモデル化しています。今回はSampleTable_1 を選択します。OK を押してテーブル選択を保存します。
- ここでKafka からkrewData に取得するデータの絞り込み条件をかけることができます。特にデータ量が多い場合には、パフォーマンスを上げるためにフィルタ条件をかけることをおすすめします。krewData のGUI でフィルタリング条件をかけるカラムを指定し、条件を設定することが可能です。
- 最後にkrewData で使用するフィールドを選択します。
- テーブル設定、フィルタリング設定、フィールド設定まで終わったら「プレビュー」タブをクリックして、実際に取得されるデータを見ることができます。
kintone へのアウトプットを設定
kintone への出力を行う設定を行います。
- 「出力アプリ」を左ペインからドラッグしてフローキャンバスにドロップします。先ほどのCData Connect Server入力アプリと出力アプリを線でつなぎます。
- 「アプリを選択」ボタンをクリックして、入力アプリと同様に新しいアプリを作成します。
- 出力アプリの設定として、2回目以降の同期の際のデータの更新の方法をしていします。今回はUPSERT 設定で更新または追加にチェックをいれています。
- 更新キーをしていできるので、ID カラムにチェックを入れて更新キーにします。
- これで出力アプリの設定が完了したので、左上の「アプリを更新」をクリックしてフローを保存します。
Kafka SampleTable_1 のkintone への同期フローを実行
では、実際にフローを実行していきます。
まずはユーザー情報を指定する必要があります。左上の「設定ファイル」タブをクリックします。kintone のログイン名とパスワードを入力します。セキュアアクセスを使っている場合にはセキュアアクセス設定が必要です。
右上の「▶実行」ボタンをクリックして、フローを実行しましょう!!!
「成功」の表示がでました。
実際にkintone 上で出力アプリとして設定したアプリを開いてみます。ちゃんとKafka SampleTable_1 情報がkintone アプリのレコードとして同期されていました。
まとめ
いかがでしたか?このようにCData Connect Server とkrewData を使って、簡単にKafka のSampleTable_1 データをkintone にノーコードで同期することができました。
是非、CData Connect Server で他の100を超えるデータソースでもkintone への同期をお試しください。