Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データをコネコネ!メール配信用データ生成の仕組み

Cdb7fe48c050935995f8a6a58a5ceba9?s=47 kappezoro
August 03, 2022

 データをコネコネ!メール配信用データ生成の仕組み

- 4月の登壇資料
https://speakerdeck.com/kappezoro/gorigori-bigquery

- テックブログ

楽々スケール Digdag on GKE Autopilot の紹介とその運用Tips
https://techblog.zozo.com/entry/digdag-on-gke-autopilot

オンプレDWHをBigQueryに移行した話
https://techblog.zozo.com/entry/migration-on-premise-dwh-etl-to-bigquery-digdag

リアルタイムマーケティングシステムの紹介とそのリプレイス計画
https://techblog.zozo.com/entry/real-time-marketing-system

- 採用募集リンク

マーケティングオートメーション(SRE)
https://hrmos.co/pages/zozotech/jobs/0000196

マーケティングオートメーション(バックエンド)
https://hrmos.co/pages/zozotech/jobs/0000197

Cdb7fe48c050935995f8a6a58a5ceba9?s=128

kappezoro

August 03, 2022
Tweet

More Decks by kappezoro

Other Decks in Technology

Transcript

  1. データをコネコネ! メール配信用データ生成の仕組み 株式会社ZOZO
 技術本部 MA部 MA施策・運用改善ブロック
 
 辻岡 温子
 Copyright

    © ZOZO, Inc. 2022/08/03 Data Engineering Study #15「Reverse ETL 特集回」
  2. © ZOZO, Inc. 今日話すこと
 2 • 自己紹介・会社紹介 • メール配信までの流れ ◦

    コネコネ①:BigQuery → ファイル(EMail SaaS) ◦ コネコネ②:PostgreSQL → BigQuery → PostgreSQL ◦ コネコネ③:BigQuery → 長く永いクエリ → BigQuery • 関連ブログ紹介・採用募集
  3. © ZOZO, Inc. 株式会社ZOZO
 技術本部 MA部 MA施策・運用改善ブロック 辻岡 温子
 2020年5月に入社

    MA(マーケティングオートメーション)に関わる メルマガ・Push配信等に必要なデータ抽出及び 配信システムの運用・開発を行っているバックエンドエンジニア 
 3
  4. © ZOZO, Inc. https://zozo.jp/
 4 • ファッションEC
 • 1,500以上のショップ、8,400以上のブランドの取り扱い
 •

    常時90万点以上の商品アイテム数と毎日平均2,600点以上の新着 商 品を掲載(2022年3月末時点)
 • ブランド古着のファッションゾーン「ZOZOUSED」や
 コスメ専門モール「ZOZOCOSME」、靴の専門モール
 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン
 「ZOZOVILLA」を展開
 • 即日配送サービス
 • ギフトラッピングサービス
 • ツケ払い など

  5. © ZOZO, Inc. https://wear.jp/
 5 • ファッションコーディネートアプリ
 • 1,600万ダウンロード突破、コーディネート投稿総数は1,200万件以上 (2022年3月末時点)


    • ピックアップタグから最新のトレンドをチェック
 • コーディネート着用アイテムを公式サイトで購入可能
 • WEAR公認の人気ユーザーをWEARISTAと認定。モデル・タレント・デザ イナー・インフルエンサーといった各界著名人も参加

  6. © ZOZO, Inc. 6 https://zozo.jp/zozoglass/
 • 自宅で簡単・高精度にご自身の顔の肌の色を計測できる フェイスカラー計測ツール • ECにおけるコスメ購入時の課題であった「色選び」に関する

    不安や悩みを解消 • 肌の色を構成する成分、ヘモグロビン量とメラニン量を画像 から推定 • コスメ専門モール「ZOZOCOSME」で取り扱うベースメイク の一部に対応 • 計測者数110万人を突破(2022年1月末時点)
  7. © ZOZO, Inc. 7 • 連携先SaaS都合でデータ抽出後ファイルを分割作成&並列処理したい • DBのデータ量x長クエリで実行遅いのなんとかしたい • クエリコピペ量産してて運用しづらいのなんとかしたい

    こんな人におすすめ
  8. © ZOZO, Inc. 8 https://speakerdeck.com/kappezoro/gorigori-bigquery

  9. © ZOZO, Inc. 9 https://speakerdeck.com/kappezoro/gorigori-bigquery 今日はメール配信をピックアップします!(キリッ)

  10. © ZOZO, Inc. 10 メール配信までの流れ

  11. © ZOZO, Inc. 11 • マス配信 ◦ 定期実行または配信施策に応じてスケジュール・配信 • パーソナライズ配信

    ◦ 特定条件の対象者に対して時間やチャネルを最適化した上で配信 MAのメール配信システムの種類について
  12. © ZOZO, Inc. 12 メール配信までの流れ

  13. © ZOZO, Inc. 13 メール配信までの流れ ① ③ ②

  14. © ZOZO, Inc. 14 コネコネ①:BigQuery → ファイル(EMail SaaS)

  15. © ZOZO, Inc. 15 コネコネ①:BigQuery → ファイル(EMail SaaS)

  16. © ZOZO, Inc. 16 SaaS用にデータ抽出→csv生成→SaaSへ連携 ※マスとパーソナライズは別アプリのため分かれていますが、ここの基本工程は一緒です。

  17. © ZOZO, Inc. m17 パーソナライズメール配信 • 最適化配信のため、一度の配信に対するデータ量は少なめ ◦ →SaaS連携については特に課題なし。対して、マスは制約との戦いが.... →次のページへ

    • PostgreSQLで悲鳴!? ◦ → コネコネ②で詳しく話します。 1施策ごとに1csvファイル生成
  18. © ZOZO, Inc. 18 マスメール配信について • 配信ボリュームが多いため ◦ 1施策1csvだとSaaSのファイルサイズ規定上限超過 ◦

    ファイル分割配信x直列だとSLA超過 • 並列実行するとして ◦ 配信時のみスケールアウトしたい ◦ 配信時のみリソース増やしたい
  19. © ZOZO, Inc. 19 マスメール配信について • 配信ボリュームが多いため ◦ 1施策1csvだとSaaSのファイルサイズ規定上限超過 ◦

    ファイル分割配信x直列だとSLA超過 • 並列実行するとして ◦ 配信時のみスケールアウトしたい ◦ 配信時のみリソース増やしたい そこでDigdag On GKE
  20. © ZOZO, Inc. 20 Digdag on GKE Autopilot 楽々スケール Digdag

    on GKE Autopilot の紹介とその運用Tips
 ↓↓詳しくはこちらのテックブログに載ってます!↓↓ • podが実行taskごとに立ち上がって実行 →並列で動かしても他の実行taskが影響を受けない! • digファイルでtaskごとのリソース設定可能 →重いtaskだけリソース上げればいい →コスト最適化! リソース設定これだけ! 弊社社員からDigdag本家へContributeも... https://techblog.zozo.com/entry/digdag-on-gke-autopilot
  21. © ZOZO, Inc. 21 マスメール配信 SaaS用の分割ファイル生成&配信リクエストを並列実行!SaaSの制約もSLAもクリア!

  22. © ZOZO, Inc. 22 まとめ SaaSの制約に困った... • 並列処理したい • リソース最適化したい

    →Digdag on GKEが解決!お試しあれ。
  23. © ZOZO, Inc. 23 コネコネ②:PostgreSQL → BigQuery → PostgreSQL

  24. © ZOZO, Inc. 24 コネコネ②:PostgreSQL → BigQuery → PostgreSQL

  25. © ZOZO, Inc. 25 1. BigQuery → PostgreSQLへ必要データを連携 2. PostgreSQL

    と SQL Serverデータからデータ抽出し配信用データ生成 PostgreSQL: - 前処理で各キャンペーンの配信対象者リストを格納 - パーソナライズ配信実績を格納 - アプリケーションで利用する各種実績集計値を格納 SQLServer: - 商品情報、対象者の詳細情報等
  26. © ZOZO, Inc. 26 1. BigQuery → PostgreSQLへ必要データを連携 2. PostgreSQL

    と SQL Serverデータからデータ抽出し配信用データ生成 PostgreSQL: - 前処理で各キャンペーンの配信対象者リストを格納 - パーソナライズ配信実績を格納 - アプリケーションで利用する各種実績集計値を格納 SQLServer: - 商品情報、対象者の詳細情報等 ここで問題発生
  27. © ZOZO, Inc. 27 実績を使ったPostgreSQLのクエリ PostgreSQLの実績・集計値のデータ量 x クエリの複雑化 → チューニングしてもクエリが終わらない><

  28. © ZOZO, Inc. 28 実績を使ったPostgreSQLのクエリ PostgreSQLの実績・集計値のデータ量 x クエリの複雑化 → チューニングしてもクエリが終わらない><

    そこでBigQuery
  29. © ZOZO, Inc. 29 BigQueryにクエリを任せる 1. PostgreSQLのデータをBigQueryに渡す 2. BigQueryでクエリ実行した結果を PostgreSQLに渡す

    1. 2. 適材適所!
  30. © ZOZO, Inc. 30 まとめ データ量が多いxチューニングしても終わらないクエリ → BigQueryに任せてみよう。 データの受け渡しはDigdag x

    embulkで楽々連携
  31. © ZOZO, Inc. 31 コネコネ③:BigQuery → 長く永いクエリ → BigQuery

  32. © ZOZO, Inc. 32 コネコネ③:BigQuery → 長く永いクエリ → BigQuery

  33. © ZOZO, Inc. 33 半年前までの姿 ↓↓詳しくはこちらのテックブログに載ってます!↓↓ オンプレDWHをBigQueryに移行した話 https://techblog.zozo.com/entry/migration-on-premise-dwh-etl-to-bigquery-digdag

  34. © ZOZO, Inc. 34 積年の課題 10年近くクエリにビジネスロジックを積み上げて運用していた。 その結果、複雑かつ類似クエリが多く実績を残し生き残っている。 メルマガ全体の変更等が走った場合に改修コストが高くなり ビジネスロジックの可読性が下がっていた。

  35. © ZOZO, Inc. 35 積年の課題 10年近くクエリにビジネスロジックを積み上げて運用していた。 その結果、複雑かつ類似クエリが多く実績を残し生き残っている。 メルマガ全体の変更等が走った場合に改修コストが高くなり ビジネスロジックの可読性が下がっていた。 そこでクエリリファクタリング

  36. © ZOZO, Inc. なんか似ているけど所々違うクエリが散見される
 36 似ているクエリになるケース • 掲載用のデータ加工 • 掲載用のよくやる絞込み・除外条件

    • 掲載商品の順位付け • 順位付け用のデータ加工・絞込み・順位付け
  37. © ZOZO, Inc. クエリを部品化・ファイル分割
 37 実績 • クエリ総行数15万行 → 3.5万行

    まで減少
  38. © ZOZO, Inc. 部品化した抽出処理の流れ
 38 SQL_A.dig SQL_B.dig

  39. © ZOZO, Inc. 39 b a 部品化 SQL_B.sql SQL_A.sql A_original

    B_original
  40. © ZOZO, Inc. 40 クエリの冗長化を防げる、中間データを確認しやすい、too complex….. の不安解消 メリットは? クエリの冗長化を防ぐメリットってなんなの? 長く運用すれば共通ロジックの変更が発生する

    後の修正コストを下げるメリットあり クエリをリファクタすれば後々の効率upにつながる ※PDCAが落ち着いてきた頃がオススメ クエリ作っても継続的に使われるかわからないじゃん 継続利用されるまで(結果が出るまで)はリファクタは借金してもよい それほど使われなくなるクエリは多く出る 最初からやっとくと追加改善はしやすくなる※個人の意見です
  41. © ZOZO, Inc. 41 まとめ ボリュームが大きく、利用期間も長いクエリが増えてきた。 運用効率化を考えないと回らなくなってきた。 → 部品化して整理しましょ

  42. © ZOZO, Inc. 42 関連ブログ紹介・採用募集

  43. © ZOZO, Inc. 43 GKE x Digdagの仕組 みもっと知りたい

  44. © ZOZO, Inc. 44 https://techblog.zozo.com/entry/digdag-on-gke-autopilot 楽々スケール Digdag on GKE Autopilot

    の紹介とその運用Tips
  45. © ZOZO, Inc. 45 オンプレDWHからBigQueryに移 行した話もっと知りたい

  46. © ZOZO, Inc. 46 https://techblog.zozo.com/entry/migration-on-premise-dwh-etl-to-bigquery-digdag オンプレDWHをBigQueryに移行した話

  47. © ZOZO, Inc. 47 パーソナライズ配信についてもっと 知りたい

  48. © ZOZO, Inc. 48 https://techblog.zozo.com/entry/real-time-marketing-system リアルタイムマーケティングシステムの紹介とそのリプレイス計画

  49. © ZOZO, Inc. 49 https://hrmos.co/pages/zozotech/jobs/0000197 https://hrmos.co/pages/zozotech/jobs/0000196 マーケティングオートメーション(SRE) マーケティングオートメーション(バックエンド) ご応募 お待ちしてます!

  50. None