日本発のデータ分析基盤SaaS「trocco」の機能を試してみた

本記事では、分析基盤の総合支援ツール trocco の紹介とデモを実施していきます。

本アドベントカレンダー唯一の日本発の製品です。この度特別にトライアルの機会をいただけましたので、DevelopersIOにてtroccoの機能をご紹介していきます!

troccoについて

troccoを開発・提供するprimeNumber社は、2015年に東京で創業されたスタートアップです。つい先日約13億円の資金調達のアナウンスもありましたし、日本のデータエンジニアリング界隈では知っている方も多いテックカンパニーでしょう。

データ統合自動化サービスtroccoなどを手がけるprimeNumberが約13億円のシリーズB調達、採用・マーケ強化 | TechCrunch Japan

troccoの日本発であるという強みを活かした日本語ネイティブのUIやサポート体制が、日系企業にとっては一番嬉しい特徴になるでしょう。データ系のSaaSは海外製品がほとんどなので、英語が理解できず、海外企業とのやり取りが難しい企業にとっては希少価値の高い製品であるはず。

かなり豊富な対応コネクタの数も特徴的で、trocco一つで全てのデータソースをカバーできてしまう企業も少なくないかと思います。また、troccoのデータ転送処理にはEmbulkが採用されているので、トレジャーデータ社のOSSに慣れている方には馴染みやすい挙動をしてくれます。

次節よりtroccoを触りながら特徴を紹介していきます。なお、ご自身でも試してみたいという場合は、primeNumber社へ直接お問い合わせください。

Redshiftと接続する

アカウントお持ちの場合は、公式HPのログインはこちらからログイン画面に飛べます。

メールアドレスとパスワードを入力してログインします。

ログイン後ダッシュボードの画面にランディングします。とりあえず接続設定を行なっていきたいので、左メニューより接続情報をクリックします。

今回はパブリックに配置したRedshiftクラスタに対してコネクションを構築していきます。Amazon Redshiftを選択します。

エンドポイントやユーザー名などの接続情報を入力します。SSH経由のオプションもあるので、プライベートサブネットのクラスタでも接続可能です。保存をクリックして確定させれば完了です。

転送ジョブ

次に転送ジョブの設定を行なっていきます。左メニューの転送設定より、画面右の新規転送設定作成をクリックします。

転送元と転送先にRedshiftを選択します。もちろん異なる種別のデータソース間で転送ジョブの構築も可能です。

作成画面に入り、上から順にパラメータ等を設定していきます。概要設定では名前を入力します。

転送元の設定で先ほど作成したRedshiftの接続情報を選択し、データベース名も指定します。スキーマはスキーマ一覧を読み込むをクリックすることで自動で一覧を取得してくれます。

今回はpublicスキーマを使用します。

データの取得にはSQLを記述する必要があります。今回は、サンプルのcategoryテーブルをそのままコピーするだけのSQLを使用します。普通のRedshiftのSQLが書けるので、慣れている方はもっと複雑なロジックを書いても良さそうですね。この内容で接続を確認をクリックして接続確認を行っておきます。

select * from category

転送先の設定も同様に定義します。

最後にデータの一時出力などに使われるS3バケットの設定も完了したら、この内容で接続を確認をクリックして接続確認を行い、問題なければ次のステップへをクリックします。

接続に問題なければプレビューが表示されるはずです。画面を下にスクロールしていくと、さらに詳細設定の画面が現れます。

カラム定義ではカラム名やデータ型の変換が可能です。

フィルター設定では条件に応じた行の絞り込みができます。

センシティブデータが含まれる場合は、マスキングで内容を置換することもできます。他にもクリックベースで細かい設定が可能なので、SQLが使えないユーザーでもある程度の変換ロジックは書けるようになっています。

最後、設定項目を確認して保存して適用をクリックします。この画面ではtroccoの裏で動いているEmbulkの設定項目が表示されています。

保存後、さっそく実行してみます。

実行時、SQLで定義しておいた日付系の変数を任意の値にフォーマットすることが可能です。ジョブ失敗時などに時刻調節して再実行するのが結構面倒だったりするので、この機能は嬉しいですね。

実行したジョブは無事成功していました。この画面ではステータスや実行時間、転送サイズなどを確認することができます。

ジョブ定義の画面戻り、他の設定項目も見てみます。転送設定概要は最近実行したジョブの履歴や接続情報、各種パラメータが集約されているページです。

スケジュール・トリガー設定ではジョブに対してスケジュール実行を設定したり、依存関係を定義したりできます。

スケジュールは毎時・毎日・毎週・毎月の単位で細かく実行タイミングを設定することが可能です。

ジョブに対して通知を設定することもできます。

ジョブ失敗時だけではなく、様々なパターンで通知することができるみたいです。これも地味にありがたい。

作成した転送ジョブ一覧とスケジュールは、左メニューで横断的に確認することができます。

データマート

troccoのデータマートは、BigQueryやRedshiftといったDWHサービスに対して、SQLを用いてテーブルを作成できる機能です。実際に新規作成して試していきます。

Redshiftを選択します。

概要設定にてデータマートの定義名を指定します。

基本設定では、最初に作成したRedshiftの接続設定を指定します。

SQLには、Redshiftのサンプルデータを使用してJOINを多用したSQLを用意しました。プレビュー実行をクリックし、接続とシンタックスを確認します。

select
  e.eventid, e.eventname, e.starttime,
  v.venuename, v.venuecity,
  c.catid, c.catgroup, c.catname
from event e
left join venue v on e.venueid = v.venueid
left join category c on e.catid = c.catid

データの出力先となるスキーマやテーブル名を指定します。入力が完了したら確認画面へをクリックします。

設定内容の確認画面では、転送ジョブと同様Embulkのパラメータが表示されます。適用をクリックして確定させます。

作成完了後、シンクをクリックして実行させます。

データマートも転送ジョブと同様、カスタム変数で任意の値にフォーマットができるようになっています。シンクジョブを実行をクリックして開始させます。

転送ジョブと似たような画面でサマリやログが表示されています。

実行したシンクジョブは、左メニューのシンクジョブにて履歴を確認することができます。

ワークフロー

troccoでは転送ジョブとデータマートを組み合わせて、ワークフローを定義することが可能です。新規作成してみます。

最初の設定画面では、細かいパラメータを調節する画面になっています。デフォルトのままでこの内容で保存するをクリックします。

ワークフローの中身はドラック&ドロップのGUIベースで定義できるようになっています。左からtrocco転送ジョブtroccoデータマートシンクから、先ほど作成した項目を直列に繋いでみました。保存するをクリックします。

実行をクリックしてワークフローを起動してみます。

無事に完了しました。エンジニアが転送ジョブやデータマートを細かい粒度で作成しておき、非エンジニアがそれらを組み合わせワークフローを作成するといった運用ができると、troccoを活用した組織的なデータ基盤構築が進められそうですね。

転送ジョブやワークフローで定義した依存関係は、左メニューのデータリネージの画面でグラフで確認することができます。

本記事での紹介は以上です。トライアルで使用できる主な機能は大体網羅できたかなと思います。

所感

troccoはユーザーのフィードバックからコンスタントに改善を重ねてきたプロダクトなのかなという、日本らしい真摯さが感じられました。対応コネクタ数の豊富さや、「そんなところまで調節できるの!?」という細かいパラメータ項目の存在から、リリースから5年という開発期間の厚みが感じられる製品仕様になっています。

UI面は、エンジニア向けの情報の見せ方と非エンジニア向けの機能の見せ方が共存しているような印象です。troccoは非エンジニアも巻き込んでデータ基盤の開発・運用を推進するきっかけとしても機能しそうですね。

本アドベントカレンダーでは、今話題のデータ関連SaaSを取り上げていきますので、引き続き乞うご期待ください!