見出し画像

【TECHBLOG】データ分析初心者がTroccoでデータ分析基盤の構築に挑戦した話

はじめまして。C&R社 丸本です。
私は昨年よりデータ分析基盤の構築に関わらせていただいています。
今回はTECHBLOGの回として、開発で使用させていただいている「Trocco」というETLツールの機能や使用感についてお話します。


Troccoについて

Troccoとは…?

TroccoはETL/データ転送をはじめとした分析基盤の構築と運用を支援してくれるSaaSです。非常に簡易かつ迅速に処理を組めることが最大の特徴で、データ転送のパイプラインが数分程度で構築可能です。

今回使用した機能

今回データ基盤構築で使用した主な機能は以下の通りです。

データ転送(ETL)

ETLパイプライン構築がノーコードかつ数分でできてしまうTroccoのメインとなる機能です。ここでデータ型変換やカラム名変更など簡単な加工であればGUIで行えます。

データマート生成(ELT)

SQLを用いてDWHのデータを変換・集計できます。クエリを保存しておける他、実行履歴が見やすい形で残るので、エラー発生時などの原因が非常に分かりやすくなっています。

ワークフロー

上記のデータ転送設定とデータマートなどの実行に実行順等の依存関係を設定し、複雑な処理をGUIで定義できます。データチェックという機能を挟むことで、転送データやクエリ結果に不正がないかなどを判定することも可能です。

構築したデータ分析基盤について

使用したツール

■ データストレージ:Box (Amazon S3)
  初期ではAmazon S3 をストレージとする予定でしたが、事情によりBox 
 に変わりました。詳細は後述します。
■ DWH:Snowflake
 
単独でもETLの一連の処理は可能ですが、Troccoを仲介させることでかなり開発工数の短縮と効率的な運用が実現できました。両処理方法の比較はまたの機会に…

概要・背景

今回構築したデータ基盤は簡略化すると次のような処理を行います。

  1. ストレージに格納された顧客データをTrocco転送設定でカラム追加や変換等、簡単なクレンジング処理を行い、Snowflakeへ転送

  2. 取り込んだデータを分析用に加工して、データマートを出力

 まずはにTroccoと他S3からSnowflakeへの接続情報の設定を行いました。こちらも非常に簡単なもので、コネクタのキー情報をGUIで入力するのみで設定ができました。
 データ転送設定は、最初こそファイル形式やカラム定義などで苦戦しましたが、勝手がわかってしまうと本当に数分で転送処理が作成できるようになりました。
 しかしながら、実際の案件では要件によって仕様を変更させる必要がある場合が多く、接続情報設定や転送設定、データマート生成のクエリなど、様々な改修を行うことになります。

開発中の出来事

課題➀コネクタの変更
 構築を始めてからある程度の設定と転送のパイプラインができたところで案件の都合でデータストレージがS3からBoxに変更となり、転送設定を組みなおす必要が出てきました。接続情報の設定にBoxを追加し、当時作成した10個近くの転送処理の組みなおしを行いましたが、データの抽出はもちろん、変換の設定までやり直すことになり、かなり工数がかかってしまいました。

課題②チャネルの増加
 
本案件では元データのチャネルが多く、そのチャネルごとに転送処理を組む必要がありました。また、同じチャネルでもフォーマットが異なったり、手入力のデータも存在したのでクレンジングに複雑な処理を要し、それぞれ個別に設定を行うことになりました。

解決策:ETLからELTへ

 上記の理由から、転送設定はなるべく簡素かつ変更が容易であることが必要となってきます。転送設定の加工処理はノーコードでできる分、比較的容易ではありましたが、設定しなおす必要が出た場合や運用する転送設定の数が多くなった場合に設定ミスや費やす工数の増加につながります。
 そこで、DWH上にローデータを加工を加えずにロードした後に加工処理を行う方法に変更することになりました。具体的には、転送設定はなるべく追加の加工処理は行わず、シンプルに転送だけを行うようにして、データマート生成機能でクエリを使用して加工を行います。
 この方法は、転送設定を簡素で変更に時間がかからないだけでなく、同じ加工処理を1か所に集めたり、処理の種類ごとにデータマートを分けることができるため、人為的な設定ミスの原因が分散しづらく、ワークフローでの管理がしやすいメリットがあります。
 結果として、現在の運用フェーズにおいて、新しいフォーマットのデータをロードする必要ができても、設定にかかる工数はとても少なく済むようになりました。

所感

 私は昨年7月からデータを触り始めたばかりの完全初心者ですが、この半年ほどで重要性を感じたことは、処理や設定内容をドキュメントなどに残しておくことです。特に初期では転送設定の数が増えていく中で、どの転送設定にどのような設定をしたか等の抜け漏れが発生することが多々ありました。また、基本的にはデータ抽出時に自動で設定してくれるのですが、ファイルによっては手動で設定しないと正しく取り込めないものもありました。 それらを何かしらの形で残していないために、設定するたびにエラーや設定の抜け漏れに悩まされることもありました。特にチームで作業している場合はそういったミスが発生しやすいかと思います。
 Troccoは設定の可変性が高いからこそ、変更を加える際に無駄な作業が発生しないように工夫することが必要になってくると考えます。
 
 少し長くになりましたがここまでお付き合いいただきありがとうございました。若輩者の投稿ではありますが、少しでもTroccoを使われる方の参考になれば幸いです。

────────────────────
データの価値を共創する。

深く寄りそったコンサルティングと
人材支援でDXの課題解決
事業紹介・お問い合わせはこちらから



この記事が参加している募集

スキしてみて