Slide 1

Slide 1 text

ゴリゴリのBigQuery活用! メール・Push配信データ生成の仕組み
 株式会社ZOZO
 技術本部 MA部 MA施策・運用改善ブロック
 
 辻岡 温子
 Copyright © ZOZO, Inc. 2022/04/20 Data Engineering Meetup 【ZOZO × GMOペパボ】

Slide 2

Slide 2 text

© ZOZO, Inc. 今日話すこと
 2 ● 自己紹介・会社紹介 ● データ抽出・配信までの概要 ● ゴリゴリ!BigQuery + αを使ったデータ抽出の仕組み ○ BigQuery + Digdag ○ BigQuery + jinja ○ BigQuery + リファクタリング ○ その他BigQuery活用例 ● 関連ブログ紹介・採用募集

Slide 3

Slide 3 text

© ZOZO, Inc. 株式会社ZOZO
 技術本部 MA部 MA施策・運用改善ブロック 辻岡 温子
 2020年5月に入社 MA(マーケティングオートメーション)に関わる メルマガ・Push配信等に必要なデータ抽出及び 配信システムの運用・開発を行なっているバックエンドエンジニア 
 3

Slide 4

Slide 4 text

© ZOZO, Inc. https://zozo.jp/
 ● ファッション通販サイト
 ● 1,500以上のショップ、8,400以上のブランドの取り扱い
 ● 常時83万点以上の商品アイテム数と毎日平均2,900点以上の新着 商品 を掲載(2021年12月末時点)
 ● ブランド古着のファッションゾーン「ZOZOUSED」や
 コスメ専門モール「ZOZOCOSME」、靴の専門モール
 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン
 「ZOZOVILLA」を展開
 ● 即日配送サービス
 ● ギフトラッピングサービス
 ● ツケ払い など
 4

Slide 5

Slide 5 text

© ZOZO, Inc. https://wear.jp/
 5 ● ファッションコーディネートアプリ
 ● 1,500万ダウンロード突破、コーディネート投稿総数は1,200万件以上 (2021年12月末時点)
 ● ピックアップタグから最新のトレンドをチェック
 ● コーディネート着用アイテムを公式サイトで購入可能
 ● WEAR公認の人気ユーザーをWEARISTAと認定。モデル・タレント・デザ イナー・インフルエンサーといった各界著名人も参加


Slide 6

Slide 6 text

© ZOZO, Inc. 6 https://zozo.jp/zozoglass/
 ● 自宅で簡単・高精度にご自身の顔の肌の色を計測できる フェイスカラー計測ツール ● ECにおけるコスメ購入時の課題であった「色選び」に関する 不安や悩みを解消 ● 肌の色を構成する成分、ヘモグロビン量とメラニン量を画像 から推定 ● コスメ専門モール「ZOZOCOSME」で取り扱うベースメイク の一部に対応 ● 計測者数110万人を突破(2022年1月末時点)

Slide 7

Slide 7 text

© ZOZO, Inc. 7 ● 歴代のPDCAで生き残った長いクエリをいっぱい運用・管理してる人 ● BigQueryのtoo complex….にいつも頭を悩まされる人 こんな人におすすめ

Slide 8

Slide 8 text

© ZOZO, Inc. 8 ● マス配信 ○ 定期実行または配信施策に応じてスケジュール・配信 ● リアルタイムマーケティングシステム ○ 特定条件の対象者に対してリアルタイム配信 MAのメール・Push通知配信システムの種類について 今日はここのデータ抽出について話します 今日は話しません

Slide 9

Slide 9 text

© ZOZO, Inc. 9 〜 2022/1

Slide 10

Slide 10 text

© ZOZO, Inc. 10 ここの話をします 2022/1〜

Slide 11

Slide 11 text

© ZOZO, Inc. 11 BigQuery +

Slide 12

Slide 12 text

© ZOZO, Inc. 12 スケジューリング taskの直列・並列実行 BigQueryクエリ実行(bqオペレータ) python実行(pyオペレータ) ・・etc

Slide 13

Slide 13 text

© ZOZO, Inc. 13 datamart.dig query/select.sql 例

Slide 14

Slide 14 text

© ZOZO, Inc. 14 gcp.credential という名前でcredentialをsecrets登録しておくだけ GCP接続までの認証は大変なんじゃないの? select文ではなくinsert/update文を使いたい オプションなしでsqlファイルに書けばできます BigQueryのクエリエラー検知してくれるの? YES。ログにBigQueryのエラーレスポンスがjson形式で出力されます BigQueryのクエリ中心な人も直感的に読み書きしやすい

Slide 15

Slide 15 text

© ZOZO, Inc. 15 BigQuery +

Slide 16

Slide 16 text

© ZOZO, Inc. 16 テンプレートエンジン pythonライクな構文が書ける 名前の由来: template -> temple(神社)

Slide 17

Slide 17 text

© ZOZO, Inc. 17 ex1.sql ex2.sql main.tmpl

Slide 18

Slide 18 text

© ZOZO, Inc. 18 クエリの冗長化が防げる メリットは? bqオペレータだけでもよくない? 例のようなメソッドを利用した条件分岐による差し込み等はできない 条件分岐や繰り返し処理等を使ってクエリの総ボリュームを抑えたかった じゃあjinjaだけでよくない? python書けない人の可読性を下げるデメリットあり 今後の課題 テンプレートエンジンはクエリの冗長化を防げる

Slide 19

Slide 19 text

© ZOZO, Inc. 19 BigQuery リファクタリング +

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

© ZOZO, Inc. クエリを部品化・ファイル分割
 21 実績 ● クエリ総行数15万行 → 3.5万行 まで減少

Slide 22

Slide 22 text

© ZOZO, Inc. 部品化した抽出処理の流れ
 22 SQL_A.dig SQL_B.dig

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

© ZOZO, Inc. 24 クエリの冗長化を防げる、中間データを確認しやすい、too complex….. の不安解消 メリットは? クエリの冗長化を防ぐメリットってなんなの? 長く運用すれば共通ロジックの変更が発生する 後の修正コストを下げるメリットあり クエリをリファクタすれば後々の効率upにつながる ※PDCAが落ち着いてきた頃がオススメ クエリ作っても継続的に使われるかわからないじゃん 継続利用されるまで(結果が出るまで)はリファクタは借金してもよい それほど使われなくなるクエリは多く出る 最初からやっとくと追加改善はしやすくなる※個人の意見です

Slide 25

Slide 25 text

© ZOZO, Inc. その他活用例: データが想定外であればエラーにする(BigQuery)
 25 0件だったらエラー 重複レコード存在したらエラー

Slide 26

Slide 26 text

© ZOZO, Inc. その他活用例: 同一ユーザに再配信できる簡単なABテスト機構(Digdag)
 26

Slide 27

Slide 27 text

© ZOZO, Inc. 27 その他活用例: 同一ユーザに再配信できる簡単なABテスト機構(BigQuery)
 mail.digで実行される配信リスト作成用SQL treatment.sql

Slide 28

Slide 28 text

© ZOZO, Inc. 28 GKE x Digdagの仕組 みが気になる

Slide 29

Slide 29 text

© ZOZO, Inc. 29 https://techblog.zozo.com/entry/digdag-on-gke-autopilot

Slide 30

Slide 30 text

© ZOZO, Inc. 30 Push通知の仕組みが気 になる

Slide 31

Slide 31 text

© ZOZO, Inc. 31 https://techblog.zozo.com/entry/migrate-push-notification-to-fcm

Slide 32

Slide 32 text

© ZOZO, Inc. 32 個人情報の管理が気になる

Slide 33

Slide 33 text

© ZOZO, Inc. 33 https://techblog.zozo.com/entry/policy-tag-usage-to-protect-bigquery-sensitive-data

Slide 34

Slide 34 text

© ZOZO, Inc. 34 元データをBigQueryに集めてる方 法が気になる

Slide 35

Slide 35 text

© ZOZO, Inc. 35 https://techblog.zozo.com/entry/real-time-data-linkage-infrastructure

Slide 36

Slide 36 text

© ZOZO, Inc. 36 オンプレDWHからBigQueryに移 行した話気になる

Slide 37

Slide 37 text

© ZOZO, Inc. 37 Coming Soon 5月末頃テックブログ掲載予定

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

No content