Slide 1

Slide 1 text

;0;046*5ؔ࿈σʔλͷ ύΠϓϥΠϯߏஙʹ͍ͭͯ "84(MVFΛར༻ͯ͠σʔλ੒ܗΛͨ͠࿩ גࣜձࣾ;0;0ςΫϊϩδʔζ ։ൃ෦ ΤϯδχΞ େౢ ३࢘ $PQZSJHIU˜;0;05FDIOPMPHJFT *OD

Slide 2

Slide 2 text

˜;0;05FDIOPMPHJFT *OD גࣜձࣾ;0;0ςΫϊϩδʔζ ։ൃ෦ 43&νʔϜ େౢ ३࢘ ˙ུྺ ग़਎͸ਆಸ઒ݝখాݪͷࢁͷ্ɻ ৽ଔͰϕϯνϟʔܥͷ4*FSʹͯΦϯϓϨΠϯϑϥ೥ɻ ೥ʹ;0;0ςΫϊϩδʔζ΁ೖࣾɻ"84։࢝ɻ ˙޷͖ͳ෺ ͓ञɺ͓ञɺ͓ञɻ 2

Slide 3

Slide 3 text

˜;0;05FDIOPMPHJFT *OD IUUQT[P[PKQ[P[PTVJU ɾ ಠࣗʹ։ൃͨ͠࠾ੇ༻ϘσΟʔεʔπ ɾ શମʹࢪ͞ΕͨυοτϚʔΧʔΛεϚʔτϑΥϯΧϝϥͰ౓ ࡱӨ͢Δ͜ͱͰɺମܕσʔλΛܭଌ ɾ ܭଌͨ͠ମܕσʔλ͸ɺॠ࣌ʹ%ϞσϧԽ͞Εɺ;0;0508/ ΞϓϦʹอଘɻ%Ϟσϧ͸͋ΒΏΔ֯౓ʹಈ͔͢͜ͱ͕Ͱ͖ɺ ମܕΛ౓νΣοΫ͢Δ͜ͱ͕Մೳ 3

Slide 4

Slide 4 text

˜;0;05FDIOPMPHJFT *OD ໨࣍ ˔ಋೖ ˓എܠ ˔ຊ୊ ˓σʔλύΠϓϥΠϯ ˓;0;046*5ܭଌσʔλ ˔·ͱΊ 4

Slide 5

Slide 5 text

˜;0;05FDIOPMPHJFT *OD ಋೖ എܠ ෼ੳґཔΛ΋Β͏͜ͱ͕͋ͬͨ ྫɿ ୅உੑͷฏۉ΢ΤεταΠζΛ֬ೝ͍ͨ͠ ˠ౰࣌ɺ෼ੳ؀ڥ͕ͳ͘ճ౴Ͱ͖ͳ͍ 5

Slide 6

Slide 6 text

˜;0;05FDIOPMPHJFT *OD ಋೖ എܠ ղܾࡦ ύλʔϯ ࣗ෼ͨͪͰ෼ੳ؀ڥΛͭ͘Δ ʢ"NB[PO"UIFOBʣ ˠ෼ੳ͕։ൃͷยखؒʹͳͬͯ͠·͏ ύλʔϯ ෼ੳ෦ʹσʔλΛఏڙ͠ɺ෼ੳͯ͠΋Β͏ ˠࠓޙʹߴ౓ͳ෼ੳΛߟ͑Δͱ࠷ద 6

Slide 7

Slide 7 text

˜;0;05FDIOPMPHJFT *OD ಋೖ എܠ ෼ੳ෦ 7 分析部 株式会社ZOZOテクノロジーズ 本社 青山 株式会社ZOZO 本社 海浜幕張(千葉) 開発部 (計測)

Slide 8

Slide 8 text

˜;0;05FDIOPMPHJFT *OD ಋೖ എܠ ઐ໳Ոͷ෼ੳ෦ʹσʔλΛఏڙͯ͠ɺ ෼ੳͯ͠΋Β͏ʂʂ 8

Slide 9

Slide 9 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ ZOZOSUIT 9

Slide 10

Slide 10 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ σʔλύΠϓϥΠϯ ໨త ;0;046*5ͷ༗ӹͳσʔλΛࣾ಺ͷ෼ੳ෦ʹఏڙ͢Δ ඞཁ৚݅ ˔ຖ೔࠷৽ͷܭଌσʔλΛఏڙ ˔೔෇͝ͱͷϑΥϧμʹϑΝΠϧʹ·ͱΊͯग़ྗʢྫɿ EBUBʣ ˔ݸਓ৘ใɺ෼ੳʹෆཁͳڊେͳσʔλ͸ࣄલʹ࡟আ ˔؆୯ʹૣ͘Ͱ͖ΔʢͰ͖ΔݶΓϊϯϓϥάϥϛϯάɺίϯιʔϧ্ʣ 10

Slide 11

Slide 11 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ ܭଌσʔλ 11 DynamoDB S3 用途 サービス用 デバッグ、調査用 パフォーマンス影響 読み込みキャパシティを大量に 消費する可能性がある なし

Slide 12

Slide 12 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ αʔϏε঺հ 12 AWS S3(Amazon Simple Storage Service) ● クラウドストレージ ● コスト効率高い ● 高可用性(99.999999999%) ● 暗号化、柔軟なアクセス管理 AWS Glue ● データを整理、最適化、検証、フォーマット ● 完全マネージド型 ETL (抽出、変換、ロード) サービス ● サーバーレス

Slide 13

Slide 13 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ ߏ੒ਤ 13 AWS S3 AWS S3 AWS Glue (crawler) AWS Glue (ETL job) data catalog (処理前) (処理後)

Slide 14

Slide 14 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ ߏ੒ਤ 14 AWS S3 AWS S3 AWS Glue (crawler) AWS Glue (ETL job) data catalog (処理前) (処理後)

Slide 15

Slide 15 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ 4ʢॲཧલʣ 15 1計測あたり約500KB 計測ダミーデータ

Slide 16

Slide 16 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ 4ʢॲཧલʣ ;0;046*5ܭଌσʔλʢKTPOʣ 16 ・ ・ ・ "id": 123456789, "gender_id": 1, "bust": 853.3767035950822, "shoulder": 423.1653994163682, "neck": 354.9143235711635, "height": 1800, ・ ・ ・ ・ 分析に 不要なデータ ex. 3D頂点データ

Slide 17

Slide 17 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ ߏ੒ਤ 17 AWS S3 AWS S3 AWS Glue (crawler) AWS Glue (ETL job) data catalog (処理前) (処理後)

Slide 18

Slide 18 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ crawler 18

Slide 19

Slide 19 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ crawler 19 設定項目一覧

Slide 20

Slide 20 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ crawler 20 ↑ 作成完了

Slide 21

Slide 21 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ ߏ੒ਤ 21 AWS S3 AWS S3 AWS Glue (crawler) AWS Glue (ETL job) data catalog (処理前) (処理後)

Slide 22

Slide 22 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ &5-KPC 22

Slide 23

Slide 23 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ &5-KPC 23 設定項目一覧

Slide 24

Slide 24 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ &5-KPC 24 A B C A B C 不要なデータ

Slide 25

Slide 25 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ &5-KPC 25 A B C 不要なデータ

Slide 26

Slide 26 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ &5-KPC 26 自動生成スクリプト

Slide 27

Slide 27 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ &5-KPC 27 import sys from awsglue.transforms import * from awsglue.utils import getResolvedOptions from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.job import Job from awsglue.dynamicframe import DynamicFrame import datetime today = datetime.date.today() foldername = today.strftime('%Y-%m-%d') 〜 (省略)〜 df = applymapping1.toDF() # DynamicFrameをtoDF methodによりDataFrameに変換します df_rep = df.repartition(1) # repartition methodによりpartition数を1にします dyf_rep = DynamicFrame.fromDF(df_rep, glueContext, "dyf_rep") # DataFrameをDynamicFrameに変換します datasink2 = glueContext.write_dynamic_frame.from_options(frame = dyf_rep , connection_type = "s3", connection_options = {"path": "s3://s3-output- 20190722/"+foldername "compression": "gzip"}, format = "json", transformation_ctx = "datasink2") job.commit() モジュールインポート、フォルダ名定義 ファイルを一つにまとめる 出力先指定、gzip圧縮

Slide 28

Slide 28 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ ߏ੒ਤ 28 AWS S3 AWS S3 AWS Glue (crawler) AWS Glue (ETL job) data catalog (処理前) (処理後)

Slide 29

Slide 29 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ 4ʢॲཧޙʣ 29 3計測で3.6KB (1計測あたり1.2KB) 約1/500

Slide 30

Slide 30 text

˜;0;05FDIOPMPHJFT *OD σʔλύΠϓϥΠϯʢ;0;046*5ʣ ͦͷޙ 弊社の優秀なアナリストによって 有益な情報に! 30

Slide 31

Slide 31 text

˜;0;05FDIOPMPHJFT *OD ·ͱΊ ΄΅ϊϯϓϥάϥϛϯάͰҎԼ৚݅Λຬͨ͢ σʔλύΠϓϥΠϯΛߏங͢Δ͜ͱ͕ग़དྷ·ͨ͠ ˔ຖ೔࠷৽ͷܭଌσʔλΛఏڙ ˔೔෇͝ͱͷϑΥϧμʹϑΝΠϧʹ·ͱΊͯग़ྗʢྫɿ EBUBʣ ˔ݸਓ৘ใɺ෼ੳʹෆཁͳڊେͳσʔλ͸ࣄલʹ࡟আ "84ͷαʔϏεΛ૊Έ߹ΘͤΔ͜ͱͰࠓޙ΋՝୊Λղܾ͍͖͍ͯͨ͠ʂ 31

Slide 32

Slide 32 text

˜;0;05FDIOPMPHJFT *OD ·ͱΊ "84ͷ͞·͟·ͳαʔϏεΛۦ࢖ͯ͠ ՝୊Λղܾ͍ͨ͠ํʂ 43&ΤϯδχΞืूதʂ https://tech.zozo.com/recruit/mid-career/detail48/ 32

Slide 33

Slide 33 text

No content