SEN PRODUCT BLOG

千株式会社のプロダクト開発メンバーによるブログ

千のデータ基盤の紹介

はじめに

千では今まで何度かデータ基盤の構築に取り組んできたのですが、データエンジニアやアナリストの不在によりデータ利活用が十分にできていない状態でした。そこから2024年にデータエンジニアを採用し本格的なデータ基盤の構築に取り組んでいます。今回は現在構築中のデータ基盤について紹介させていただき、今後やっていきたいことをお話させていただきます。

データ基盤の全体構成

概略図はこちらになります。

各種データの取得とS3への書き出し

各プロダクトのデータベースやCRMからS3へのファイル書き出しにはAWS Glueを使用しています。 データベースからSnowflakeへのデータ取り込みについてはSnowpipeなどを使用してデータを取り込みたかったのですが、社内の事情により直近では難しいと判断しAWS Glueを使用しています。

AWS Glueでは各データソースからジョブでデータを取得・加工し、Parquetの形式でS3にファイルを書き出します。

S3へファイルを書き出すジョブはいくつかあるのですが、大雑把には以下になります。

  • 前日までの全データ書き出し
  • 一日ごとのデータ書き出し
  • 月ごとのデータ書き出し

それぞれ以下の流れの用途で使用しています

  • 前日までの全データ書き出しジョブで全データを取得してSnowflakeに取り込み
  • それ以降は日次ジョブで逐次データをSnowflakeに書き込み
  • 月次ジョブで取得したデータとSnowflake上のデータを突合して適宜整合性を確認

Snowflake

データウェアハウスにはSnowflakeを採用しています。選定理由としては、データガバナンス観点でのマスキングの容易さや、コスト面でキャパシティプランがあり価格を抑えて導入しやすいこと、データ基盤を構築する際にSnowflakeのみで完結する部分が多く認知負荷が低くて済むこと、などになります。また、構築を検討された方がSnowflakeの知見を持っていたことも理由の一つです。Snowflakeについては、データエンジニアのみが触るだけではなく、アナリストやビジネス職の方々も触れるような未来を目指しています。

弊社でデータアナリストをしているSAWAさんのSnowflakeの勉強についての記事があるので、ご興味いただけたら見ていただければ幸いです。

productblog.sencorp.co.jp

弊社のSnowflake上のアーキテクチャはLND層・RAW層・INT層・MART層の構成になっています。LND層ではデータレイクから取得した生データを保存。LND層からRAW層・INT層を経てデータマートを構成しています。

これらのレイヤー間のデータ変換やテストにはdbtを採用しています。dbtはモデル間の依存関係を扱うことが楽になることや、SQLベースで扱えるのでデータエンジニア以外のアナリストの方などが利用できることになることを想定して採用しています。

BI

BIツールとしてはTableauとLooker Studioを使用しています。もともと千ではRedashを使用しており、そこからQuickSightへの移行を検討していました。ただ、Excelやスプレッドシートとの連携にエンジニアの作業が必要ということで、うまく業務フローにはまらず頓挫したという背景があります。

Tableauを選定した理由は、それら外部ツールとの連携が容易であること、GUIが使いやすいこと、権限の振り分けが容易で情報の統制が可能であることです。 TableauはSnowflakeに接続し、個別業務のダッシュボード作成に利用することを想定しています。比較的ライトなものについてはLooker Studioを利用していただいています。

今後やりたいこと

データ基盤の信頼性向上

現在弊社のデータ基盤は各利用者と相談しながらデータを取り込み、ダッシュボードを構築し各利用者の方々のQuickWinを作っていこうという段階です。そのためデータ活用を最優先にしており、データ取り込みのジョブが動作しているかSnowflake Taskが動作しているかなどデータパイプラインの信頼性やそもそもデータ自体の品質に目を向けられていません。

利用者がデータ基盤を通してデータ活用ができると実感いただいて、積極的に利用していただく段階でデータパイプラインが動作しておらずデータが取り込めていないという状態は利用者からの信頼を損ない、利用されなくなってしまう可能性があります。そのため信頼性向上のための監視体制構築などは喫緊の課題であると考えています。

データ基盤の利用者拡大とセルフサービス化

データ基盤を構築したとしても、それが実際に使われなければあまり意味はありません。現在弊社では利用者が問題なく使えるようにするために利用者・データエンジニア・アナリストが定期的に会話しながらダッシュボードを構築しています。

しかし、非常に丁寧にやっている影響ですべての人に対して利用を拡大していくことが難しい状態です。これはデータエンジニアが圧倒的に少ないこと・少ないエンジニアで回していくためのセルフサービス化の体制も作れていない状況によるものなので、それぞれ対応が必要だと感じています。

終わりに

私たちが構築しているデータ基盤についてご紹介させていただきました。我々のデータ基盤はまだ絶賛構築中でデータ基盤を利用していただくためにもデータ基盤の利用者・データエンジニア・アナリストが一つにまとまって活用していく道筋を作っている段階です。技術的な面でもデータ基盤自体の運用はまだまだ未成熟なものがあると考えています。

そういったゼロからデータ基盤を作っていく、データ活用を推進していきたい方はカジュアル面談をお待ちしております!

findy-code.io