kitoneにおけるSQLの活用
本エントリー以降にてkintoneにおけるRDBの考え方・ツール・SQLの活用方法について述べる。
ツールやライブラリ、設計技法について
kintoneでSQLを活用する際、便利なツールやライブラリとして以下がある。
Linuxの標準入出力を用いたコマンド
また活用できる技法として以下がある。
RDBの設計技法
上のツール・ライブラリ・設計技法を活用すると集計処理やSalesforce等他のサービスとの連携も楽になる。
実行環境について
kintoneのデータを扱う際、実行環境は主に以下の2つがある。
ブラウザにて、JavaScriptのプログラムを実行する。
kintoneのデータをcsvで出力し、CUIコマンドでSQL等を用いながらデータ処理を行う。
これらはそれぞれ全く異なる実行環境であるが、これらをSQLで扱う事によりある程度統一された方法でデータを操作出来るようになる。
扱うデータの形式について
SQLを活用する場合、扱うデータは2次元データである。
ブラウザでは、JavaScriptのオブジェクトリテラルにてプロパティに列名を設定し、オブジェクトの配列を使う事で2次元データを扱える。
CUIでは、kintoneのデータを一旦csvで出力するとcsvを扱えるツールや、SQLiteのテーブルに格納する事によりSQLにて処理を行える。
ブラウザでは、大抵の場合JavaScriptを使う事になると思うので、REST APIでデータを取得後オブジェクトリテラルの配列を扱えるJavaScriptのライブラリを使うと便利である。中でもAlaSQLはJavaScriptのオブジェクトリテラルの配列に対してSQLを実行出来る。
またコマンドでは、cli-kintoneにてcsvを出力後、SQLiteでcsvを読み込み、SQLを使って操作すると、大容量のデータも簡単に扱えて便利である。必要であればLinuxのコマンドや独自に実装したスクリプトで処理すると、細かなデータの加工も行える。
最後に
本来話の流れとしては、RDBなどのDB設計の考え方があって、それをkintoneに応用するような話の流れにした方が良い気もするが、kintoneはサブテーブルを持てるため完全なRDBでもない。よって本エントリー以降では、まずツールの便利さを説明し、更にRDBの設計技法を使用するとkintoneのアプリやプログラム、運用がすっきりして便利である旨を順に述べていく。