PostgreSQLのJSONカラムの利用例を紹介します。
バックオフィス基盤チームの棟朝です。最近、マスターテーブルとJOINの多いRDBシステムにJSONカラムを導入したら運用がかなり楽になったので、その事例を紹介します。
MoTにはRDBで契約データを管理・参照しているサービスがあり以下の問題がありました。
これを以下のようのKVS風に修正しました。
メインのアイデアは手動登録の代わりにCronジョブを実行して、ジョブ内で全ての契約データを収集して1つのJSON形式で保存したことです。これによりSQLで取得時にデータをJOINすること、手動登録が不要になりました。元々PostgreSQLで運用されていたシステムだったため、KVSのDBへの移行コストがあったためDBはPostgreSQLのままJSONカラムを利用しました。
SQLは本当にこれだけになりました↓
select json_datas.data from json_data where key_id = ?;
(対応1) テーブルは約30個→1個になった
(対応2) SQLは主キーをWHERE句で指定してJSONカラムを取得するだけになった
(対応3) 手動でのAPI登録作業が不要になった。
興味のある方は 採用ページ も見ていただけると嬉しいです。
Twitter @mot_techtalk のフォローもよろしくお願いします!