はじめに
当社ではデータ分析基盤改善の一環としてtroccoを導入しました。
この記事ではtrocco導入により何がどのように改善されたのかをまとめて記載します。
0. troccoとは
troccoはEmbulkをSaaS版にしたようなサービスです。各種ストレージ、SaaS、DBなどのデータ転送をWEBのGUI上で設定、管理することができます。それ以外にもRedshift/BigQueryへのクエリ発行やtrocco上のジョブの管理等の便利機能もあり非常に使い勝手が良いのが特徴です。
1. trocco導入を検討した理由
当社ではプロダクション用DBのコピーをBigQueryに転送し分析に用いているのですが、この転送部分に対処しにくい2点の問題があった為troccoへの乗り換えを検討しました。詳細は以下の通りです。
1.1 Embulk+digdag on EC2の運用問題
当時の構成では、転送はEmbulkで行い、転送ジョブや転送テーブルの制御などをdigdagで作り込み、それらをEC2上でホスティングしていました。転送自体はdigdagのスケジューリングで毎日実行されるものの、転送エラーが発生したり、Embulkやdigdagのバージョンアップに追随できていないなど問題がありました。一方で、各種設定を行った方は既に退職されており詳細が不明瞭なことと、BigQueryでの分析が重要な役割を持つ為、現状動いているインスタンスを下手にいじることができず、手詰まりになっていました。
1.2 作り込み部分の問題
Embulk+digdagの作り込み部分にも改良したい点がありました。当社では弁護士ドットコムの他に税理士ドットコムやBUSINESS LAWYERSといった各種サービスを提供しています。サービス別にDBインスタンスは分けられているのですが、当社でのdigdagのジョブ管理の仕様上、ひとつのサービスのDBしか転送できないように作り込まれていました。ジョブ管理部分を一から書き直すには労力がかかり、仮にこれを解決しても1.1で記載したセルフホストの問題があるため躊躇していました。
2. trocco導入後の改善点
troccoを導入することにより問題点がどのように改善されたのかを記載します。
2.1 運用面
冒頭でも記載した通りtroccoはSaaS版Embulkと言えるサービスです。ユーザーがやることといえばEmbulk等の設定のみあり、それらが稼働するリソース管理を全てお任せできてしまうのは非常に嬉しいです。特に当社の場合は1.1で記載した通りEmbulkを稼働させる為のリソース管理で悩みがあったため、その恩恵は非常に大きなものでした。
2.2 機能面
各種DBへの接続設定は独立して作成することができるため、troccoに乗り換えたことで1.2の問題は解決されました。ここでは転送機能以外に当社が活用している便利機能をいくつか紹介します。
- DWH管理機能
- BigQueryやRedShiftの任意のテーブルに対してクエリを発行する機能です。データ転送後に集計処理を噛ませた中間テーブルを作成したり、あるカラムの型変換をかけたりと何かと融通が利く使い方ができます。当社の場合は、元々digdagで実行させていた中間テーブル生成処理をこの機能に載せ替えました。
- ワークフロー機能
- GUIを用い、転送・DWH管理などのジョブ単位でワークフローを作成できる機能です。ジョブA~Cが完了次第Dを実行する、といった依存関係も作成することができます。当社ではデータ転送後に中間テーブル生成ジョブを実行するよう設定しています。また、終了時にSlack通知することもできます。
これら以外にも便利機能はありますが、いずれも分析基盤の運用をtroccoに寄せていけるようなものになっていました。
3. まとめ
troccoの導入により当初抱えていた問題を解決することができました。
今後はtroccoを使い倒していきたいと思います。
導入を検討されている方の参考になれば幸いです。