こんにちは、データ基盤チームの内田( @ruchida13 )です
データ基盤チームはアドウェイズの基幹事業である広告事業のデータを各媒体社様から頂きData Lakeに集積していく事、またData Lake、Data Ware House(DWH)、Data Martの開発、保守をミッションにしたチームになります。
ありがたい事に先月1名新しいメンバーを迎え、今後も積極的に採用活動を行いたいと考えております。
またベンダー様からご提案を頂く機会も増え現状のシステム構成を話す機会が増えているのですが、
現状のデータ分析基盤の構成が移行過程の構成が一部ある状態という事もあり情報共有に時間を頂いてしまっているので、良い機会ですし分析基盤の現状をブログにまとめたいと思います。
全体構成
社内ユーザが日常的にアクセスするのはBIツールであるTableauになります。
BigQueryを採用したことでData LakeがAWS、DWHとData MartがGCPのマルチクラウド構成になっていますが、中期的には全てGCPに移動する見込みです。
データの流れ
1.媒体社様からデータ取得
EC2をオートスケールし複数の媒体からデータを日々収集しています。
データ基盤チーム全体の工数比率としてはここが最も作業が発生する箇所です。
今年は特にATTによって媒体の大幅な仕様変更が発生したためその対応を行う等の対応を行う必要がありました。
2.一次加工
媒体毎にフォーマットは多様な為、統一したフォーマットに変換する処理をアドウェイズではAsteria Warpで行っています。
3.二次加工
Asteria Warpで媒体からの広告データを統一フォーマットにする事はできましたが、このままでは分析するに当たってはまだまだ不十分です。下記の様な処理を二次加工フェイズで行っています。
- ディメンションデータの付与(営業担当者、広告運用担当者、クリエイティブ製作者、etc...)
- 為替計算
- 代理店マージン計算
- etc...
今まで二次加工はAWS Glueで行っていましたがBigQueryを採用したタイミングでETL製品についても改めて棚卸し、
Dataformの方が我々の用途に合っていると判断しDataformへの切り替えを行っている途中になります。
Dataformの採用理由については今回は述べませんが大枠では下記の様なメリットがありDataformを採用しました。
- コンピュートリソースを確保する必要が無いためクラウド費用が圧倒的に下げられる
- ETL/ELT操作言語がSQLの為学習コストが低い
4.社内ユーザへの提供
データサイエンティストの分析業務も重要な業務ではありますが、広告代理店としての重要な業務として広告主様への日々の広告効果のレポーティングがあります。
アドウェイズではDWHを作る為にシステム化をしていったというより、広告主様へのレポーティングをどうすれば
早く正確に行うかを追求した結果DWHが完成したといった歴史的経緯がある為今でも最もデータ基盤チームがコミュニケーションを取り合ってるのはレポーティングチームになります。
5.異常検知
一次加工、二次加工のフェイズでも最低限のデータの整合性確認は行っていますが最終的なデータチェックはDWHで行っています。
過渡期にはBigQueryのViewで異常検知用のSQLを管理していましたが量が増えるにつれて見通しが悪くなってきた為
GoogleSpreadSheetでSQLを管理しCloud FunctionsでGoogleSpreadSheetをcallする構成にしています。
現状の課題
1.単体テストの拡充
ETL/ELTで実装する機会が増えて来ましたが、ETL/ELTの最終的な出力結果に対するテストはあってもプロシージャ毎のテストが存在しないため障害範囲の切り分けが行い辛い。
2.Data Martのメタデータ拡充、再設計
現状のテーブル設計は広告ドメインに熟達したメンバーと作成したのですが、利用者拡大に伴い敷居の高さが課題になってきた。
現状最大で161カラム存在するテーブルが有るが流石にこの仕様を新規メンバーに理解してもらうのはお互い辛いため
テーブルの再設計を行い、またメタデータの拡充もしていきたい。
3.契約による設計による境界の明確化
現状良くも悪くも1チームでシステムを保守している為システム間の責任の所在が曖昧になりがちなので、
境界を明確に定義し将来的にチーム規模が拡大しても保守できる状態にしたい。
具体的にはDWH層に異常検知が日々拡充されており、それ自体はポジティブな事ではあるがData Lakeで本来行うべき異常検知も
データが揃っていて便利という程度の理由でDWH層で異常検知しているのは望ましい状態では無い。
今後の展望
AppleのATTにより広告業界は大きく変わろうとしています。
個人のプライバシーは当然に尊重されるべきであり世の中の変化としてはより良い世界に変化していく為のポジティブな変化であると捉えています。
ユーザーを識別しない状態の広告を配信することが当たり前の未来は必ず訪れます。
その為にデータ基盤チームとして何が出来るか、一案としてはデータクラウドとの統合が挙げられます。
意思決定を行うにあたってインターネット黎明期からユーザの情報を我々インターネット広告業界は扱っていましたが
他業種に目を向ければその様なデータが手に入るのはむしろ稀で、 社内だけでなく社外からも有用なデータを取り込み、大量のデータ群を組み合わせて分析を行うのがあるべき形であろうと考えます。
参考:ascii.jp
このように考えてはいるのですが私はWebエンジニア上がりのデータエンジニアで、データを揃える事は出来てもデータを活用していくに当たっては 残念ながら知見が足りません。
今後の広告のあり方を踏まえ、広告主様に対してより価値を提供できるデータ分析基盤を一緒に考えて頂けるデータサイエンティストの方、ぜひ@ruchida13へtwitterのDMをして頂ければと思います!
もちろんデータエンジニアも積極採用しております!