Slide 1

Slide 1 text

Jupyter + BigQuery ʹΑΔ
 σʔλ෼ੳج൫ ͷ DevˍOps 2017-09-09 (Sat)
 4:15 p.m. – 4:45 p.m. in Room 201
 PyCon JP 2017
 presented by @yuzutas0
 https://www.pexels.com/photo/close-up-of-computer-keyboard-257949/ɹhttps://www.pexels.com/photo/technology-computer-lines-board-50711/ɹhttps://www.pexels.com/photo/black-and-white-business-chart-computer-241544/

Slide 2

Slide 2 text

ຊ೔ͷࢿྉ͸WEBʹެ։͠·͢
 #pyconjp #pyconjp_201
 ࡱӨɾه࿥ͷඞཁ͸͋Γ·ͤΜ
 ͭ͘Ζ͍Ͱௌ͍͍͚ͯͨͩΕ͹ͱࢥ͍·͢

Slide 3

Slide 3 text

εϥΠυ 150+ / 30min
 ʢ஌ݟΛ͕ͬͭΓڞ༗͠·͢ʣ 
 ͕Μ͕Μߦ͖·͢ʂ

Slide 4

Slide 4 text

ɹSho Yokoyamaɹ@yuzutas0 ɹɹ 
 
 ● Recruit Technologies Co., Ltd. 
 ɹɹάϧʔϓͷITࢪࡦશൠΛ୲͏ byʰϦΫϧʔτɺਐԽΛࢭΊͳ͍ITݱ৔ྗʱ ● Site Reliability Engineering
 ɹɹج൫γεςϜͷӡ༻ɾվળ ● Finance & Econometrics (Before)
 ɹɹRʹΑΔ౷ܭॲཧ - ͋ͷͱ͖Jupyter͕͋Ε͹Α͔ͬͨͷʹʂ

Slide 5

Slide 5 text

https://github.com/yuzutas0 ෼ੳج൫ ɹޱ΋ख΋ಈ͔͢೿

Slide 6

Slide 6 text

ϓϩμΫτ։ൃ ʹ͓͚Δ
 σʔλ׆༻ ͷ ࢀߟࣄྫ ͷڞ༗ ɹຊ೔ͷΰʔϧ

Slide 7

Slide 7 text

Python Λ׆༻ͯ͠
 ։ൃݱ৔ ʹ σʔλจԽ Λਁಁ͍ͤͨ͞
 ιϑτ΢ΣΞΤϯδχΞ ɹ૝ఆ͢Δର৅

Slide 8

Slide 8 text

ɹɹɹ ɹPythonͷ࿩ ɹɹɹ "ɹPythonΛۀ຿Ͱ࢖͏࿩ ɹPythonͷConferenceͰ͕͢ த൫·Ͱग़͖ͯ·ͤΜʢ׼ʣ

Slide 9

Slide 9 text

1. ϓϩμΫτ / νʔϜ 
 2. ෼ੳج൫ͷDev&Ops ɹɹϢʔεέʔεɹߏஙͷഎܠɹઃܭϙϦγʔɹσʔλϑϩʔɹ։ൃϓϩηε 
 3. σʔλจԽΛ૊৫ʹ૷ண͢Δ ɹΞδΣϯμ

Slide 10

Slide 10 text

1. ϓϩμΫτ / νʔϜ 
 2. ෼ੳج൫ͷDev&Ops ɹɹϢʔεέʔεɹߏஙͷഎܠɹઃܭϙϦγʔɹσʔλϑϩʔɹ։ൃϓϩηε 
 3. σʔλจԽΛ૊৫ʹ૷ண͢Δ ɹΞδΣϯμ

Slide 11

Slide 11 text

ࠗ׆ ࿀׆

Slide 12

Slide 12 text

ֹ݄՝ۚϞσϧ
 ※࿀݁ͼঁੑϢʔβʔ͸ຊਓ֬ೝྉͷΈ ɹ͝ར༻ͷྲྀΕ

Slide 13

Slide 13 text

※αϒγεςϜͷٕज़ཁૉ: Golang, Groovy, Python, Ruby, AWS, GCP ɹɹɹɹɹɹɹɹɹɹɹɹΦϯϓϨ ɹ֤छσόΠεରԠ - γεςϜུ֓ (AP)

Slide 14

Slide 14 text

※ถࠃͰ͸݁ࠗͨ͠Χοϓϧͷ1/3͕ΦϯϥΠϯͰͷग़ձ͍ ɹσʔςΟϯάࢢ৔ͷ֦େ

Slide 15

Slide 15 text

ɹࣄۀ੒௕ → εςʔΫϗϧμʔͷଟ༷Խ σβΠϯ ηΩϡϦςΟ ๏຿ Πϯϑϥ SRE ΞϓϦج൫ ू٬ ΧελϚʔ
 αϙʔτ σʔλ
 αΠΤϯε ػցֶश
 ΤϯδχΞ ։ൃӡ༻
 νʔϜA ։ൃӡ༻
 νʔϜB ։ൃӡ༻
 νʔϜC PO PO PO σΟϨΫγϣϯ ޿ใ

Slide 16

Slide 16 text

1. ϓϩμΫτ / νʔϜ 
 2. ෼ੳج൫ͷDev&Ops ɹɹϢʔεέʔεɹߏஙͷഎܠɹઃܭϙϦγʔɹσʔλϑϩʔɹ։ൃϓϩηε 
 3. σʔλจԽΛ૊৫ʹ૷ண͢Δ ɹΞδΣϯμ

Slide 17

Slide 17 text

ɹ֤෦ॺ΁ͷσʔλఏڙ σʔλج൫

Slide 18

Slide 18 text

1. ϓϩμΫτ / νʔϜ 
 2. ෼ੳج൫ͷDev&Ops ɹɹϢʔεέʔεɹߏஙͷഎܠɹઃܭϙϦγʔɹσʔλϑϩʔɹ։ൃϓϩηε 
 3. σʔλจԽΛ૊৫ʹ૷ண͢Δ ɹΞδΣϯμ

Slide 19

Slide 19 text

ɹͲͷΑ͏ʹ׆༻͍ͯ͠Δ͔ σʔλج൫

Slide 20

Slide 20 text

ɹσʔλ׆༻ࣄྫ ɹ1. KPIϞχλϦϯάɹɹ
 ɹ2. ϢʔβʔߦಈͷՄࢹԽ
 ɹ3. ࢪࡦޮՌͷ༧ଌɾܭଌ Ϗδωε 4. ػցֶशʹΑΔϨίϝϯυ
 5. ۀऀɾεύϜͷࣗಈ൑ఆ ϓϩμΫτ ɹ6. ໰͍߹Θͤͷ܏޲෼ੳ
 ɹ7. ޿ࠂ഑৴ͷࣗಈ࠷దԽ
 ɹ8. ϓϨεϦϦʔε ΧελϚʔνϟωϧ ɹ9. γεςϜϞχλϦϯά
 ɹ10. ো֐ൃੜ࣌ͷӨڹௐࠪ γεςϜ ɹ11. νʔϜͷΩϟύγςΟ νʔϜ

Slide 21

Slide 21 text

Ϗδωεࢦඪʢച্΍DAUʣͷਪҠ
 
 ຖேͷSlack௨஌ɹɹɹɹSpreadsheetɹɹɹɹμογϡϘʔυ ɹɹɹKPIϞχλϦϯά 1

Slide 22

Slide 22 text

ओཁಋઢʢձһొ࿥ˠϝοηʔδʣͷར༻ɾ཭୤ ߦಈϑΝϯωϧɹɹɹɹɹɹδϟʔχʔϚοϓ ɹɹɹϢʔβʔߦಈͷՄࢹԽ 2

Slide 23

Slide 23 text

Split (AB) ςετ݁Ռɹɹ৽ػೳͷར༻౓߹͍ ɹɹɹࢪࡦͷޮՌ༧ଌˍܭଌ 3

Slide 24

Slide 24 text

ɹɹɹػցֶशʹΑΔϨίϝϯυ 4

Slide 25

Slide 25 text

ɹɹɹۀऀɾεύϜͷࣗಈ൑ఆ 5

Slide 26

Slide 26 text

ɹɹɹ໰͍߹Θͤͷ܏޲෼ੳ 6

Slide 27

Slide 27 text

ɹɹɹ޿ࠂ഑৴ͷࣗಈ࠷దԽ 7

Slide 28

Slide 28 text

σʔλ෼ੳ݁Ռͷެ։ → ࢢ৔ͷ׆ੑԽʹߩݙ ɹɹɹϓϨεϦϦʔε 8 IUUQXXXSFDSVJUNQDPKQOFXTSFMFBTF@IUNM

Slide 29

Slide 29 text

Ϋϥογϡ཰΍ϨεϙϯελΠϜ ɹɹɹγεςϜϞχλϦϯά 9 IUUQZV[VUBTIBUFOBCMPHDPNFOUSZ

Slide 30

Slide 30 text

ɹɹɹো֐ൃੜ࣌ͷӨڹௐࠪ 10

Slide 31

Slide 31 text

εΫϥϜνʔϜͷϕϩγςΟ ΍ νέοτফԽͷϝτϦΫε ɹɹɹνʔϜͷΩϟύγςΟ 11

Slide 32

Slide 32 text

σβΠϯ ηΩϡϦςΟ ๏຿ Πϯϑϥ SRE ΞϓϦج൫ ू٬ ΧελϚʔ
 αϙʔτ σʔλ
 αΠΤϯε ػցֶश
 ΤϯδχΞ ։ൃӡ༻
 νʔϜA ։ൃӡ༻
 νʔϜB ։ൃӡ༻
 νʔϜC PO PO PO σΟϨΫγϣϯ ޿ใ ։ൃӡ༻
 νʔϜB PO ɹ͜ΕΒͷࢪࡦ : ֤෦ॺ͕ϘτϜΞοϓͰਪਐ

Slide 33

Slide 33 text

σʔλ׆༻Ͱ࣮ݱͰ͖Δ͜ͱ ɹސ٬Ձ஋ͷ௥ٻ → σʔλ׆༻͸ඞવ 1. ࣗಈԽ 2. ՄࢹԽ ސ٬Ձ஋ͷఏڙ

Slide 34

Slide 34 text

“ΑΓૣ͘ɾ҆ఆͨ͠” αʔϏεͷఏڙ ɹ1. ࣗಈԽ ػցֶशͰީิऀϦετΛࣄલநग़ ໨ࢹ͚ͩͰۀऀɾεύϜΛ൑ఆ IUUQXXXJSBTVUPZBDPNCMPHQPTU@IUNM IUUQXXXJSBTVUPZBDPNCMPHQPTU@IUNM

Slide 35

Slide 35 text

“ΑΓޮՌతͳ” ΤϯδχΞϦϯάͷ࣮ݱ ɹ2. ՄࢹԽ ͜ͷσβΠϯ͸Ϣʔβʔͷ
 ຊԻʹ౴͍͑ͯΔͷ͔ʁ ͜ͷػೳ௥Ճ͸ޮՌ͕͋Δͷ͔ʁ
 ࣮ࡍʹޮՌ͸͋ͬͨͷ͔ʁ IUUQHBUBHOFUGSFFJMMVTUSBJUJPO IUUQXXXJSBTVUPZBDPNCMPHQPTU@IUNM

Slide 36

Slide 36 text

σβΠϯ ηΩϡϦςΟ ๏຿ Πϯϑϥ SRE ΞϓϦج൫ ू٬ ΧελϚʔ
 αϙʔτ σʔλ
 αΠΤϯε ػցֶश
 ΤϯδχΞ ։ൃӡ༻
 νʔϜA ։ൃӡ༻
 νʔϜB ։ൃӡ༻
 νʔϜC PO PO PO σΟϨΫγϣϯ ޿ใ ։ൃӡ༻
 νʔϜB PO ɹ֤෦ॺʹΑΔੵۃతͳσʔλ׆༻

Slide 37

Slide 37 text

1. ϓϩμΫτ / νʔϜ 
 2. ෼ੳج൫ͷDev&Ops ɹɹϢʔεέʔεɹߏஙͷഎܠɹઃܭϙϦγʔɹσʔλϑϩʔɹ։ൃϓϩηε 
 3. σʔλจԽΛ૊৫ʹ૷ண͢Δ ɹΞδΣϯμ

Slide 38

Slide 38 text

ɹͳͥج൫͕ඞཁʹͳ͔ͬͨ σʔλج൫

Slide 39

Slide 39 text

DBσʔλΛ࢖͍͍ͨͷͰ
 ೔࣍ͰS3ʹCSVग़ྗ͍ͯͩ͘͠͞
 ɹ࠷ॳ͸খ͞ͳσʔλૄ௨ґཔ ෦ॺA

Slide 40

Slide 40 text

ɹεέʔϧ → ֤෦ॺ͔Βґཔ ෦ॺB ෦ॺC ෦ॺD

Slide 41

Slide 41 text

ͬͪ͜Ͱαʔόͱૄ௨πʔϧΛ༻ҙ͠·͢
 ϨϏϡʔˍຊ൪؀ڥʹஔ͍ͯ΋Β͑·͔͢ ɹͪΐͬͱֻ͕͔࣌ؒΓͦ͏ ੜσʔλΛ౉ͯ͠΋Β͑Ε͹
 ͬͪ͜Ͱ࢖͑ΔΑ͏ʹՃ޻͢ΔͷͰ ෦ॺE

Slide 42

Slide 42 text

ɹ֤෦ॺ͝ͱʹσʔλૄ௨ ෦ॺA
 πʔϧ ෦ॺB
 πʔϧ ෦ॺA
 αʔό ෦ॺB
 αʔό

Slide 43

Slide 43 text

ɹ֤෦ॺ͝ͱʹσʔλՃ޻ ෦ॺA
 நग़σʔλ ෦ॺB
 நग़σʔλ ෦ॺA
 Ճ޻ϩδοΫ ෦ॺB
 Ճ޻ϩδοΫ

Slide 44

Slide 44 text

ɹମ੍ͷ··ʹγεςϜෳࡶԽ - ίϯ΢ΣΠͷ๏ଇ ݩσʔλ ֤෦ॺ޲͚ʹσʔλࢀরγεςϜΛܧ͗଍͠

Slide 45

Slide 45 text


 http://jp.techcrunch.com/2017/06/25/20170623five-building-blocks-of-a-data-driven-culture/ ελοϑ͕ͨͪҟͳΔγεςϜ͔ΒࣅͨΑ͏ͳϝτϦοΫΛ
 Ҿ͖ग़͢͜ͱ͕Ͱ͖ͯ͠·͏ͳΒɺඞવతʹͦΕΒͷγεςϜ͔Β͸
 ҟͳΔ਺ࣈ͕ੜ੒͞ΕΔɻ…ΑΓ·͠ͳ৘ใݯΛ࢖͑Δഺͩͬͨͷʹɺ
 ݹͯ͘඼࣭ͷ௿͍ɺ͋Δ͍͸ؒҧͬͨσʔλ΍ࢦඪΛ஌Βͣʹ
 ࢖ͬͯ͠·͍ɺѱ͍ܾఆΛԼ͢νʔϜ΋ग़ͯ͠·͏͔΋஌Εͳ͍ɻ ɹ෦ॺ͝ͱʹʮച্ʯ͕ζϨΔ໰୊

Slide 46

Slide 46 text

ɹΤϯδχΞʹௐࠪґཔᶃ - σʔλ࢓༷͸೔ʑมΘΔ ͜ͷϨίʔυ͕
 ௥Ճ͞ΕΔλΠϛϯάɺ
 ࠷ۙมߋ͞Ε·ͨ͠ʁ ͪΐͬͱมߋཤྺΛ
 ௥ͬͯΈ·͢Ͷ ෦ॺF ΤϯδχΞ

Slide 47

Slide 47 text

ɹΤϯδχΞʹௐࠪґཔᶄ - Өڹൣғ͸೔ʑ޿͕Δ Re:dashͷ਺ࣈ͕
 ζϨΔΜͰ͚͢Ͳ ଞ෦ॺ͕࡞ͬͨγεςϜΛ
 ௐ΂Δͱ͜Ζ͔Β…… ෦ॺG ΤϯδχΞ

Slide 48

Slide 48 text

ɹݸผରԠͷѱ॥؀ ಠࣗσʔλૄ௨ͷґཔ
 ʢ͜ΕͳΒ͙͢Ͱ͖·͢ΑͶʣ ΤϯδχΞνʔϜͷෛՙˢ γεςϜෳࡶԽˢ ௐࠪґཔ

Slide 49

Slide 49 text

ɹ୭͔ͷ൑அ͕ѱ͔ͬͨΘ͚Ͱ͸ͳ͍ εέʔϧ΍ຊ֨Քಇ࣌ʹ
 ໰୊͕ݦࡏԽ ɹɹ·ͣ͸খ͘͞ࢼ͢
 ɹ ● ࠷খݶͷσʔλૄ௨
 ɹ ● ࣗલͰσʔλՃ޻ ෦ॺ͝ͱʹ
 ৽πʔϧಋೖ΍ࢪࡦணख IUUQXXXJSBTVUPZBDPNCMPHQPTU@IUNM IUUQXXXJSBTVUPZBDPNCMPHQPTU@IUNM IUUQXXXJSBTVUPZBDPNCMPHQPTU@IUNM

Slide 50

Slide 50 text


 http://jp.techcrunch.com/2017/06/25/20170623five-building-blocks-of-a-data-driven-culture/ ɹମ੍֦େ → σʔλ΢ΣΞϋ΢εͷඞཁੑ ࣄ࣮ͷ୯Ұ৘ใݯΛ͍࣋ͬͯΔ৔߹ʹ͸ɺΞφϦετ΍
 ଞͷҙࢥܾఆऀͱ͍ͬͨΤϯυϢʔβʔͨͪʹɺ༏ΕͨՁ஋Λ
 ఏڙ͢Δ͜ͱ͕Ͱ͖Δɻ൴Β͸૊৫಺ͰσʔλΛ୳͕࣌ؒ͢
 গͳͯ͘ࡁΉΑ͏ʹͳΓɺσʔλͷར༻ʹΑΓଟ͘ͷ࣌ؒΛ
 ׂ͘͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔ͔Βͩɻ

Slide 51

Slide 51 text

1. ϓϩμΫτ / νʔϜ 
 2. ෼ੳج൫ͷDev&Ops ɹɹϢʔεέʔεɹߏஙͷഎܠɹઃܭϙϦγʔɹσʔλϑϩʔɹ։ൃϓϩηε 
 3. σʔλจԽΛ૊৫ʹ૷ண͢Δ ɹΞδΣϯμ

Slide 52

Slide 52 text

ɹͲͷΑ͏ͳγεςϜΛߏங͔ͨ͠ σʔλج൫

Slide 53

Slide 53 text

1. ModelͱViewΛ෼͚Δ΂͠
 2. ͳΔ΂͘ϥΫͯ͠࡞Δ΂͠ ɹઃܭϙϦγʔ

Slide 54

Slide 54 text

1. ModelͱViewΛ෼͚Δ΂͠
 2. ͳΔ΂͘ϥΫͯ͠࡞Δ΂͠ ɹઃܭϙϦγʔ

Slide 55

Slide 55 text

ɹModelͱViewΛ෼͚Δ΂͠ ɹɹɹɹɹɹɹɹɹɹɹɹɹDWH ੹຿ʹԠͨ͡γεςϜͷ෼཭ɾ݁߹
 Model (஝ੵ/Ճ޻) ͱView (ࢀর)

Slide 56

Slide 56 text

ɹ஫ҙɿ෦ॺ͝ͱʹ࠷దͳView͸ҟͳΔ Excel ؾܰʹ਺ࣈΛม͑ͯ
 γϛϡϨʔγϣϯ Ϗδωε෦໳ Tableau ߴՁ֨ɾߴػೳ
 ෼ੳཁٻʹରԠ Re:dash SQL͕ॻ͚Δͻͱ
 ͓खܰར༻ σΟϨΫλʔ Jupyter
 GitͰίʔυ؅ཧ
 ϓϩάϥϜͷԸܙ ΤϯδχΞ ෼ੳ෦໳

Slide 57

Slide 57 text

1. ModelͱViewΛ෼͚Δ΂͠
 2. ͳΔ΂͘ϥΫͯ͠࡞Δ΂͠ ɹઃܭϙϦγʔ

Slide 58

Slide 58 text

ɹจ໌ͷརث σʔλૢ࡞ͳΒPythonҰ୒ ΤίγεςϜʹ৐Δ σʔλอଘͳΒBigQueryҰ୒
 GoogleʹཔΔ ΞϓϦ૚ Πϯϑϥ

Slide 59

Slide 59 text

ɹจ໌ͷརث σʔλૢ࡞ͳΒPythonҰ୒ ΤίγεςϜʹ৐Δ σʔλอଘͳΒBigQueryҰ୒
 GoogleʹཔΔ ΞϓϦ૚ Πϯϑϥ

Slide 60

Slide 60 text

ɹɹɹ● ʢRͱൺ΂ͯʣॻ͖΍͘͢ಡΈ΍࣮͘͢ߦ͠΍͍͢
 ɹɹɹ● ൚༻తͳϓϩάϥϜॲཧΛॻ͚ΔεΫϦϓτݴޠ ɹPythonͷ࠾୒ཧ༝ - ൚༻LL

Slide 61

Slide 61 text


 ɹɹɹɹ● ʢଞͷ൚༻ݴޠʹൺ΂ͯʣσʔλͷՃ޻΍ඳը͕ಘҙ
 ɹɹɹɹ● DB㱻Dataframeม׵ͳͲଞγεςϜ࿈ܞ΋༰қ ɹPythonͷ࠾୒ཧ༝ - σʔλૢ࡞޲͚ϥΠϒϥϦ

Slide 62

Slide 62 text


 ɹɹɹ● σόοά΍σʔλͷՄࢹԽ͕ίϚϯυ1ͭͰՄೳ
 ɹɹɹ● ಺෦తʹ͸json → GitͰࠩ෼؅ཧ → ࠶ݱՄೳͳه࿥Λ࢒ͤΔ ɹPythonͷ࠾୒ཧ༝ - ࠷ڧͷ࣮ߦ؀ڥ

Slide 63

Slide 63 text

ػցֶशࢪࡦεΫϦϓτ 
 Ҡ২Մೳ → γεςϜͷ෼཭ɾ݁߹͕༰қ → རศੑɾอकੑ ɹPythonͷ࠾୒ཧ༝ - طଘεΫϦϓτͱͷ૬ੑ

Slide 64

Slide 64 text

ɹจ໌ͷརث σʔλૢ࡞ͳΒPythonҰ୒ ΤίγεςϜʹ৐Δ σʔλอଘͳΒBigQueryҰ୒
 GoogleʹཔΔ Πϯϑϥ ΞϓϦ૚

Slide 65

Slide 65 text

ɹBQͷ࠾୒ཧ༝ɿ͍҆ IUUQZBQDBTJBPSHUBMLTIPXDFBGBDFDBCEDB ● Googleͷσʔληϯλʔ
 ɹεέʔϧϝϦοτʹΑΔ
 ɹίετ༏Ґ ● ϢʔβʔͷҙݟΛ΋ͱʹ
 ɹྉۚϓϥϯΛݟ௚ͨ͠ܦҢ

Slide 66

Slide 66 text

ɹBQͷ࠾୒ཧ༝ɿૣ͍ IUUQZBQDBTJBPSHUBMLTIPXDFBGBDFDBCEDB ● ΧϥϜϕʔεઃܭʹΑΔ
 ɹΞΫηεߴ଎Խ ● େن໛σʔλ׆༻࣌ʹ
 ɹϘτϧωοΫͱͳΔ
 ɹDisk I/Oͷฒྻॲཧ

Slide 67

Slide 67 text

ɹBQͷ࠾୒ཧ༝ɿ҆৺ GCPɾGsuiteͰݖݶ؅ཧ - ΈΜͳ͕࢖͑Δ SQLΠϯλʔϑΣʔε - ಺෦ॲཧɾอकӡ༻Λؾʹͤͣʹ࢖͑Δ ඪ४SQL
 ΫΤϦͷҠ২ੑ͕ߴ͍
 ֶशίετ͕খ͍͞
 ςετ͠΍͍͢ पลπʔϧ
 ओཁBIπʔϧͳΒେ఍ܨ͕Δ
 pandas.io.gbq → Jupyterσόοά͕༰қ

Slide 68

Slide 68 text

ɹจ໌ͷརث σʔλૢ࡞ͳΒPythonҰ୒ ΤίγεςϜʹ৐Δ σʔλอଘͳΒBigQueryҰ୒
 GoogleʹཔΔ Πϯϑϥ ΞϓϦ૚

Slide 69

Slide 69 text

1. ModelͱViewΛ෼͚Δ΂͠
 2. ͳΔ΂͘ϥΫͯ͠࡞Δ΂͠ ɹઃܭϙϦγʔ

Slide 70

Slide 70 text

1. ϓϩμΫτ / νʔϜ 
 2. ෼ੳج൫ͷDev&Ops ɹɹϢʔεέʔεɹߏஙͷഎܠɹઃܭϙϦγʔɹσʔλϑϩʔɹ։ൃϓϩηε 
 3. σʔλจԽΛ૊৫ʹ૷ண͢Δ ɹΞδΣϯμ

Slide 71

Slide 71 text

ɹσʔλϑϩʔͷߏங ऩू Ճ޻ ׆༻ ஝ੵ ύΠϓϥΠϯ؅ཧ Model View

Slide 72

Slide 72 text

ɹσʔλϑϩʔͷߏங ऩू Ճ޻ ׆༻ ஝ੵ Model View ऩू ύΠϓϥΠϯ؅ཧ

Slide 73

Slide 73 text

ɹσʔλऩू ݸਓ৘ใ
 ϚεΫࡁΈView Recruit Ads Console Recruit Clash
 Report όον ετϦʔϛϯά WebAPI εΫϨΠϐϯά requests + beautiful soup

Slide 74

Slide 74 text

ओཁͳDBɾϩά͔Βͷసૹ → ࠷খઃఆͰ࣮ݱՄೳ ɹσʔλసૹΛࢧ͑Δٕज़

Slide 75

Slide 75 text

Python (requests + beautiful soup) ʹΑΔ
 WebAPIίʔϧɾը໘εΫϨΠϐϯά ɹJupyterͰૉૣ͘ࢼ͢ ·ͣ͸ϩʔΧϧ؀ڥͰࡁ·ͤΔ ܁Γฦ͠࢖͏ͳΒεΫϦϓτԽ IUUQTXXXTIBSFJDPOOFUEPDVNFOUpMFQZ

Slide 76

Slide 76 text

ΤϯδχΞ͕෼ੳʹܞΘ͍ͬͯͳ͍ͱEventσʔλ͕ϩάཁ͔݅Βൈ͚࿙Ε͕ͪ
 ෆཁσʔλͷա৒஝ੵʹΑΔετϨʔδѹഭΛݒ೦ʢͦ͜ͰBQͰ͢Αʣ ɹσʔλੑ࣭ʹԠͨ͡ऩूํ๏ 4UBUFঢ়ଶσʔλ &WFOUཤྺσʔλ ྫ Ϣʔβʔͷ࠷ऴϩάΠϯ೔࣌ʢ্ॻ͖͞ΕΔʣ աڈͷϩάΠϯཤྺʢ஝ੵ͞ΕΔʣ ओͳ༻్ ը໘දࣔ 
 ʮ͜ͷਓ͸೔લʹϩάΠϯ͠·ͨ͠Αʯ ෼ੳ 
 Ͳͷ͘Β͍ͷස౓ͰϩάΠϯ͢Δ͔ ڧΈɾಛ௃ ϓϩμΫτຊମͷύϑΥʔϚϯε޲্
 ͍͍ͪͪཤྺςʔϒϧͱ+PJOͯ͠
 ࠷৽ϨίʔυΛ୳͢ͷ͸%#ෛՙ σʔλ෼ੳͷ࠶ݱੑΛ୲อ
 
 ຖճϩάΠϯ೔࣌Λ্ॻ͖͞ΕͨΒ
 ෼ੳͰ͖ͳ͘ͳͬͯ͠·͏ ෼ੳج൫Ͱͷ
 σʔλऩू ೔࣍ͰҰׅஔ͖׵͑ 
 %#ϩάˠࠩ෼ه࿥ˠ׆༻͸ͻͱ޻෉ඞཁ ࠩ෼൓ө 
 લճҎ߱ͷϨίʔυ͚ͩΛநग़

Slide 77

Slide 77 text

ɹσʔλϑϩʔͷߏங ऩू Ճ޻ ׆༻ ஝ੵ Model View ஝ੵ ύΠϓϥΠϯ؅ཧ

Slide 78

Slide 78 text

3૚ߏ଄
 ࢀߟʰ10೥ઓ͑Δσʔλ෼ੳೖ໳ - SQLΛ෢ثʹσʔλ׆༻࣌୅Λੜ͖ൈ͘ʱ ɹσʔλ஝ੵ ɹɹɹɹɹɹBigQuery - Google Cloud Platform Source
 ݩσʔλͷίϐʔ Warehouse
 ओཁࢦඪɾසग़σʔλ
 தؒςʔϒϧ App
 ֤πʔϧ͔Β௚઀ࢀর
 ඇٕज़ऀ޲͚IF ஝ੵ

Slide 79

Slide 79 text

ྫɿ enmusubi__source__db ΞϯμʔείΞ2ͭͰཁૉΛ۠੾Δ
 BEMʢCSSͷઃܭख๏ʣϥΠΫͳنଇ ɹσʔληοτͷ໋໊نଇ ϓϩμΫτ໊ source warehouse app ϝΠϯDB αʔόϩά ΞΫηεղੳπʔϧ

Slide 80

Slide 80 text

ɹσʔλࣙॻ IUUQKQUFDIDSVODIDPNpWFCVJMEJOHCMPDLTPGBEBUBESJWFODVMUVSF ར༻ऀ͸σʔλϑΟʔϧυͱͦͷ஋ʢϝτϦΫεʣͷҙຯΛ஌Δඞཁ͕͋Δɻ* ݩσʔλ৘ใ΁ͷϦϯΫूͷΈఏڙ
 γεςϜʢʹσʔλ࢓༷ʣ͸೔ʑมԽ͢ΔͨΊ
 refs. ϩθολετʔϯ ֤σʔλιʔεଆͰ࢓༷؅ཧ
 e.g. ຊମDB → MySQL Workbench
 ɹERߏ੒/ίϝϯτ͸DDLͰৗʹ࠷৽Խ

Slide 81

Slide 81 text

ൃల్্ͷϓϩμΫτɹ → ɹػೳ௥ՃͰසൟͳERมߋɹ → ɹBQ΋௥ਵ͍ͨ͠ ɹ஝ੵσʔλʹϚΠάϨʔγϣϯ͕ඞཁ

Slide 82

Slide 82 text

ɹJupyter for Migration 1. ϩʔΧϧͷJupyterͰ
 ɹϚΠάϨʔγϣϯεΫϦϓτΛॻ͘ 2. ͦͷ··JupyterͰ
 ɹ1೔෼ͷσʔλΛର৅ʹಈ࡞֬ೝ 3. PythonϑΝΠϧΛग़ྗ
 ɹ → αʔό্ͰશσʔλΛҠߦ IUUQTXXXTIBSFJDPOOFUEPDVNFOUpMFQZ

Slide 83

Slide 83 text

※ͨͩ͠Python2.7੍໿͕͋ΔͷͰҰ෦ॻ͖௚͕͠ඞཁ → ύλʔϯ͕ݟ͖͑ͯͨΒม׵εΫϦϓτ ● Φʔτεέʔϧ → Dataflow
 ɹGKE͸෼ࢄ޲͚ͷઃܭ͕ඞཁ
 ● σʔλྔ͕গͳ͚Ε͹Datalab
 ɹJupyterͷίʔυ͕··࢖͑Δ ɹGCPͷαʔόΛར༻ ɹ ● Googleઐ༻ઢͰBQΞΫηε
 ɹ ● ಉ͡ถࠃϦʔδϣϯʹཱͯΔ ɹBQͰ100ԯϨίʔυΛҠߦ͢Δ ϘτϧωοΫᶃ N/W ϘτϧωοΫᶄ ϝϞϦ

Slide 84

Slide 84 text

ɹσʔλϑϩʔͷߏங ऩू Ճ޻ ׆༻ ஝ੵ Model View Ճ޻ ύΠϓϥΠϯ؅ཧ

Slide 85

Slide 85 text

3૚ߏ଄
 ࢀߟʰ10೥ઓ͑Δσʔλ෼ੳೖ໳ - SQLΛ෢ثʹσʔλ׆༻࣌୅Λੜ͖ൈ͘ʱ ɹσʔλՃ޻ ɹɹɹɹɹɹBigQuery - Google Cloud Platform Source
 ݩσʔλͷίϐʔ Warehouse
 ओཁࢦඪɾසग़σʔλ
 தؒςʔϒϧ App
 ֤πʔϧ͔Β௚઀ࢀর
 ඇٕज़ऀ޲͚IF Ճ޻ Ճ޻

Slide 86

Slide 86 text

IUUQTHSPXUIIBDLKPVSOBMDPNLQJUSFFGPSBQQ ɹओཁࢦඪΛதؒςʔϒϧͰ؅ཧ

Slide 87

Slide 87 text

ɹPythonεΫϦϓτʹΑΔՃ޻

Slide 88

Slide 88 text

ɹsh → exec.py ● γΣϧҾ਺Λ΋ͱʹॲཧΛಈతৼΓ෼͚
 ● ݸʑͷΤϯυϙΠϯτ͸ࡉ෼Խ
 ɹˠ ΦʔτεέʔϧɺϦτϥΠɺಈ࡞֬ೝ͠΍͘͢

Slide 89

Slide 89 text

ɹController ● ॲཧͷશମ૾Λهड़
 ● Facadeͱͯ͠ଞॲཧΛݺͼग़͢

Slide 90

Slide 90 text

ɹModel ● Ϗδωεࢦඪͱ1ର1ͰରԠ͢ΔΫϥε
 ● Create/ReadॲཧͷΈ → ஋͸BQ؅ཧ
 ɹ → ϓϩάϥϜ্͸εςʔτϨεʹอͭ

Slide 91

Slide 91 text

ɹQuery ● BigQueryͱͷR/WΛѻ͏SQL
 ● ςΩετॲཧͷࢧԉػೳΛ׆༻
 ɹ → f-strings (3.6~)΍TypeHints (3.5~)
 ● ϝιουͱͯ͠੾Γग़͠
 ɹ → ஋ͷҾ͖౉͠ʹΑΔείʔϓ੍ޚ

Slide 92

Slide 92 text

ɹEnum ● Enum(3.4~)Ͱσʔλݻ༗ͷίʔυ஋Λ؅ཧ
 ● ੡඼ຊମ (Java) ͷEnumΛҠ২ → Dictܕʹม׵
 ● ܧঝݩͷbaseEnumΛ༻ҙ → ڞ௨ͷσʔλऔಘॲཧΛ࡞੒

Slide 93

Slide 93 text

ɹResource ● ֎෦γεςϜͱͷ࿈ܞॲཧ
 ● retryॲཧͷҰݩԽ → σʔλྔ͕૿͑ΔͱBQ͸Αࣦ͘ഊ͢ΔͷͰ
 ● dotenvͰ؀ڥม਺ΛಡΈࠐΉ → ຊ൪ɾ։ൃͰSlackνϟϯωϧΛ෼͚Δ

Slide 94

Slide 94 text

ɹσʔλϑϩʔͷߏங ऩू Ճ޻ ׆༻ ஝ੵ Model View ׆༻ ύΠϓϥΠϯ؅ཧ

Slide 95

Slide 95 text

ɹσʔλ׆༻ - Pushܕ IUUQGSFFJMMVTUSBUJPOTHBUBHOFUIUNM ػցֶशࢪࡦ

Slide 96

Slide 96 text

ΞυϗοΫ ࣗಈԽ ɹσʔλ׆༻ - Pullܕ

Slide 97

Slide 97 text

ɹ୭ʹεΫϦϓτΛ༻ҙ͢Δ͔ Yes No ͦͷ࡞ۀ͸
 ܁Γฦ͢ʁ ϞχλϦϯά
 ఆظతͳॲཧ
 ʲPushܕʳʢҰ෦ྫ֎͋Γʣ εφοϓγϣοτ
 ΞυϗοΫͳ෼ੳɾௐࠪ
 ʲPullܕʳ SQLΘ͔Δ
 ͻͱɾ෦ॺʁ ELTɿૄ௨ˠՃ޻
 ʢྫʣػցֶशΤϯδχΞ
 ʲPullܕʳ ETLɿՃ޻ˠૄ௨
 SpreadsheetͰI/F
 ʲPushܕʳ ※Ճ޻ࡁΈσʔλʹରͯ͠γϯϓϧͳSELECTจΛൃߦ͢Δ͚ͩͰࡁΉέʔε͸ଟ͍

Slide 98

Slide 98 text

ɹDecorator ● ֤View޲͚ͷσʔλՃ޻ʢग़ྗઌʹԠͨ͡ม׵ॲཧʹಛԽʣ
 ● ྫɿຖேSlackʹ౤͛ΔάϥϑΛ matplotlib Ͱඳը

Slide 99

Slide 99 text

ɹσʔλϑϩʔͷߏங ऩू Ճ޻ ׆༻ ஝ੵ Model View ύΠϓϥΠϯ؅ཧ

Slide 100

Slide 100 text

؅ཧπʔϧʹظ଴͢Δཁ݅ʢཧ૝ʣ 
 
 ɹσʔλύΠϓϥΠϯͷ؅ཧ 1. ίʔυͰόʔδϣϯ؅ཧ
 2. εέδϡʔϧࣗಈىಈ
 3. ηοτΞοϓ΍ϝϯςφϯεͷָ͞(DB಺แͳͲ)
 4. GUI/CUI྆ํͰϩάɾύϑΥʔϚϯεͷ؅ཧ
 5. GUI/CUI྆ํͰม਺ࢦఆͷ࠶࣮ߦ 6. ࣗಈϦτϥΠॲཧɾεΩοϓػೳ
 7. εΫϦϓτͷฒྻ࣮ߦ
 8. αʔόͷΦʔτεέʔϧ
 9. ༗޲ඇ८ճάϥϑͷࣗಈ࡞੒
 10. Python3.6~ରԠʢςΩετॲཧ͕֨ஈʹָʣ

Slide 101

Slide 101 text

࿩୊ͷπʔϧΛܰ͘৮ͬͯࢼͯ͠ΈͨΓ
 ɹɹɹɹɹɹ 
 ɹɹɹɹɹͲΕ΋ັྗత͚ͩͲҰேҰ୹ → ͔Ώ͍ͱ͜Ζʹख͕ಧ͔ͳ͍
 ɹɹɹɹɹɹ ● ίϯτϦϏϡʔτͷνϟϯε͔΋ʁ
 ɹɹɹɹɹɹ ● ೔ਐ݄าͰັྗతͳͷͰ͍ͣΕҠ২͍ͨ͠ؾ࣋ͪ͸͋Δ ɹWorkflow Engine

Slide 102

Slide 102 text

ͳΜ͔ͩΜͩͰ࠷ॳʹ͓खܰߏஙͨ͠ jenkins Λ࢖͍ଓ͚͍ͯΔ
 
 ɹɹɹɹɹɹ● 2ܥ + BlueOcean + Pipeline of jenkinsfiles
 ɹɹɹɹɹɹ● ϦτϥΠػߏɾॲཧ࠷దԽ͸ଞʹྼΔ
 ɹɹɹɹɹɹ● jenkinsδϣϒ͔ΒγΣϧܦ༝Ͱ֤छॲཧΛίʔϧ ɹ҆ఆͷJenkins

Slide 103

Slide 103 text

ɹσʔλϑϩʔͷߏஙʢ׬ʣ ऩू Ճ޻ ׆༻ ஝ੵ Model View ύΠϓϥΠϯ؅ཧ

Slide 104

Slide 104 text

1. ϓϩμΫτ / νʔϜ 
 2. ෼ੳج൫ͷDev&Ops ɹɹϢʔεέʔεɹߏஙͷഎܠɹઃܭϙϦγʔɹσʔλϑϩʔɹ։ൃϓϩηε 
 3. σʔλจԽΛ૊৫ʹ૷ண͢Δ ɹΞδΣϯμ

Slide 105

Slide 105 text

ɹͲͷΑ͏ͳϓϩηεΛ࠾༻͔ͨ͠ σʔλج൫

Slide 106

Slide 106 text

ʮσʔλج൫Λ࡞Δͧʯܭը͸ ࣦഊ͔Β࢝·ͬͨ

Slide 107

Slide 107 text

μογϡϘʔυΛ
 ෦԰ͷϞχλʔʹө͢ ɹ࠷ॳͷҰา

Slide 108

Slide 108 text

1. ຖ೔ͷKPIΛ͢Β͢Βݴ͑ΔΑ͏ʹͳΔ͔΋
 
 ɹ2. ҟৗ஋ʹؾ͍ͮͯਝ଎ʹಈ͚ΔΑ͏ʹͳΔ͔΋ ɹߴ·Δظ଴

Slide 109

Slide 109 text

1िؒͰ୭΋ݟͳ͘ͳͬͨ ɹݱ࣮͸ඇ৘Ͱ͋Δ

Slide 110

Slide 110 text

Slide 111

Slide 111 text

ɹɹɹ׬ᘳͳاըॻʁ ɹɹɹѹ౗తͳ༧ࢉʁ ɹɹɹ1೥ؒͷ։ൃϓϩδΣΫτʁ ɹʮ࠷ڧͷσʔλج൫ʯΛࢧ͑Δϓϩηεʁ

Slide 112

Slide 112 text

ɹɹɹ׬ᘳͳاըॻʁ ɹɹɹѹ౗తͳ༧ࢉʁ ɹɹɹ1೥ؒͷ։ൃϓϩδΣΫτʁ ɹʮ࠷ڧͷσʔλج൫ʯΛࢧ͑Δϓϩηεʁ ❌

Slide 113

Slide 113 text

ɹɹ● ࢥ͍ͬͯͨͷͱҧͬͨ ɹɹ● ྑͦ͞͏͚ͩͲ݁ہ࢖Θͳ͔ͬͨ ɹ1೥ޙʹ଴ͭ΋ͷ

Slide 114

Slide 114 text

ɹʮԶͷߟ͑ͨ࠷ڧͷσʔλج൫ʯ͸࢖ΘΕͳ͍ IUUQXXXQSPKFDUDBSUPPODPN

Slide 115

Slide 115 text

→ ͜ΕͳΒ࣮֬ʹ࢖ͬͯ΋Β͑Δ ɹগͣͭ͠ஔ͖׵͑Α͏ 
 ࣮͸͏ͪͷ෦ॺͰຖேSlackʹάϥϑΛ
 खಈͰྲྀ͍ͯ͠ΔΜ͚ͩͲʂ 
 ͜ͷػʹࣗಈԽ͠·͔͢ʂ

Slide 116

Slide 116 text

ɹɹɹQ.ɹ࠷ॳʹཁ݅Λશ෦ચ͍ग़ͤ͹OKʁ
 
 ɹɹɹA.ɹNGʂʮ΍Γ͍ͨ͜ͱʯ͸มΘΔʂ
 ɹɹɹɹɹɹɹ ● ଞࣾϒϩάΛݟͯʮ͏ͪ΋΍Γ͍ͨʂʯ
 ɹɹɹɹɹɹɹ ● ৽͍͠BIπʔϧͷఏҊʹʮ͜Ε͍͍ʂʯ
 ɹɹɹɹɹɹɹ ● ࣮ࡍʹը໘Λ࡞ͬͨΒʮͳΜ͔ҧ͏ʂʯ 
 ɹɹ ɹɹ → มԽʹॊೈʹରԠ͢Δʂ ɹΠςϨʔγϣϯΛճ͢͜ͱ͕େࣄ

Slide 117

Slide 117 text

TodoΛνέοτ؅ཧ → ॊೈʹ༏ઌॱҐΛೖΕସ͑Δ ɹνέοτۦಈ։ൃ

Slide 118

Slide 118 text

ɹλεΫͷ༏ઌॱҐ 1 σʔλ͕·͕͍ͪͬͯΔ
 ٙ࿭ͷௐࠪ ɹ1ͭؒҧ͍ͬͯΔͱશ෦৴༻Ͱ͖ͳ͘ͳΔͷͰ࠷༏ઌରԠɻ
 ɹ͙͢ௐࠪ͢Ε͹ؔ܎ऀͷ৴༻࢒ߴΛ૿΍ͤΔɻ 2 Modelվम ɹσʔλ߲໨௥ՃͳͲɻ
 ɹଟগݟʹͯ͘͘΋࢖͑Δঢ়ଶʹ͢Δ͜ͱ͕༏ઌɻ
 ɹ࠷ѱͷ৔߹Ͱ΋Ͳ͏ʹ͔࢖͏ଆͰ޻෉Ͱ͖ΔͷͰɻ 3 Viewվम ɹάϥϑͷݟӫ͑ͳͲɻ
 ɹҰ൪ʮมԽ͍ͯ͠ΔʯΠϯύΫτ → ؔ܎ߏஙʹ͸د༩ɻ
 ɹ࢖͍खʹͱͬͯ͸ॏཁͳͷͰՄೳͳൣғͰαϙʔτɻ 4 γεςϜͷอकੑͱ
 ύϑΥʔϚϯε ɹϘτϧωοΫʹͳͬͨΒରॲ͢Δɻ
 ɹ࠷ॳ͔ΒڽΔͱʮૣ͗͢Δ࠷దԽʯʹؕΓ͕ͪɻ
 ɹ࡞ۀνέοτʹ͢Δ·Ͱ΋ͳ͍ͭ͘Ͱʹ௚͢श׳Λ͚ͭΔɻ

Slide 119

Slide 119 text

ɹTest ● unittest ʹΑΔࣗಈςετΛ׆༻
 ● Excel಺༰Λظ଴஋ʹ൓ө → GreenʹͳΕ͹࠶ݱ׬ྃ - ·͞ʹ “TDD”
 ● SQLνϡʔχϯά΍ϦϑΝΫλ࣌ʹσάϨΛଈ࣌ݕ஌Ͱ͖ΔͷͰ૬ੑྑ͍

Slide 120

Slide 120 text

ɹॏް௕େͳExcelΛ࠶ݱ͢Δˠ·ͣղಡ ϚΠϯυϚοϓʹΑΔ੔ཧ
 εϥΠυʹೖΔΑ͏ʹʢೖΓ͖ͬͯͳ͍͚ͲʣॖΊͨΒը૾͕௵Εͯ͠΋͏ͨ……

Slide 121

Slide 121 text

ɹɹ1. Jupyter Notebook Ͱௐࠪ಺༰ͱ
 ɹɹɹσʔλΛ࠶ݱՄೳͳܗͰอଘ͢Δ 
 
 ɹɹ2. Github Preview Λͦͷ··
 ɹɹɹઆ໌ࢿྉͱͯ͠ར༻͢Δ ɹطଘͷܭࢉϛε΍σʔλෆ੔߹Λൃݟ

Slide 122

Slide 122 text

ɹχʔζ։୓ͷ޷॥؀ ֤෦ॺͷϢʔεέʔεΛ
 ώΞϦϯά͠΍͘͢ͳΔ ʮσʔλͷ͜ͱ͸͍ͭ͜ʹฉ͚ʯ
 ʹ ࣭໰΍૬ஊ͕དྷΔΑ͏ʹͳΔ طଘσʔλͷϛε΍໰୊ɺ
 ͞ΒͳΔհࡏ༨஍ʹؾ෇͚Δ খ͞ͳ࣮੷
 طଘσʔλͷܭࢉϛε΍ෆ੔߹Λൃݟ
 → ใࠂͯ͠௚͢

Slide 123

Slide 123 text

ͱʹ͔͘਺ࣈ͕߹Θͳ͍ ɹ޷॥؀Λࢧ͑Δ೜଱ γεςϜ࿈ܞͷ్தͰ࢛ࣺޒೖ͕ੵΈॏͳΔ Excel͕طʹ 4 x 1990 = 7959 ͱͳ͍ͬͯΔ ࣮ߦλΠϛϯάͰूܭ݁Ռ͕มΘΔ
 → طଘͷ਺஋͸୭΋࠶ݱͰ͖ͳ͍

Slide 124

Slide 124 text

࣮ࡍʹඅ΍ͨ࣌ؒ͠ͷ80% ʹ ͻͨ͢Β஍ಓͳ࡞ۀ 
 ·͊ɺେมͰͨ͠ɻ ɹ׼ͱྦͷτϥϒϧγϡʔςΟϯά

Slide 125

Slide 125 text

ɹ֤෦ॺ΁ͷσʔλఏڙΛ࣮ݱ σʔλج൫

Slide 126

Slide 126 text

1. ϓϩμΫτ / νʔϜ 
 2. ෼ੳج൫ͷDev&Ops ɹɹϢʔεέʔεɹߏஙͷഎܠɹઃܭϙϦγʔɹσʔλϑϩʔɹ։ൃϓϩηε 
 3. σʔλจԽΛ૊৫ʹ૷ண͢Δ ɹΞδΣϯμ

Slide 127

Slide 127 text

ɹ͜Ε·ͰɿϏδωε෦໳ͷϝΠϯExcel ● σʔλͷ஝ੵ → ॏ͍ϑΝΠϧ
 
 ● ؔ਺/ηϧͷଟॏࢀর → ௐࠪ/ղऍ͕ࠔ೉
 
 ● macOSͰ։͘ͱͳΜ͔յΕΔ ։͘ͷʹ3෼ɻಈ͔ͦ͏ͱ͢Δͱ·ͨࢭ·Δɻ ΤϯδχΞ͕ؾܰʹݟΒΕͳ͍ঢ়گ

Slide 128

Slide 128 text

ɹɹɹɹɹ ʴ ɹ͜Ε͔ΒɿTech + Culture = Value ςΫϊϩδʔ
 จԽɾϓϩηε σʔλΛ׆༻ͨ͠
 ੡඼։ൃ ੈͷதʹ ސ٬Ձ஋Λఏڙ Done

Slide 129

Slide 129 text

ɹɹɹɹɹ ʴ ɹ͜Ε͔ΒɿTech + Culture = Value ςΫϊϩδʔ
 จԽɾϓϩηε σʔλΛ׆༻ͨ͠
 ੡඼։ൃ ੈͷதʹ ސ٬Ձ஋Λఏڙ Done Todo

Slide 130

Slide 130 text

ɹϓϩμΫτ։ൃͱԾઆݕূ Build Measure Learn

Slide 131

Slide 131 text

ɹϓϩμΫτ։ൃͱԾઆݕূ Build Measure Learn Ͱ͖͍ͯΔ ΍ͬͯΈΔ

Slide 132

Slide 132 text

ɹɹͲΜͳϢʔβʔ͕৽ػೳΛ࢖ͬͨͷ͔
 ɹɹϓϩμΫτʹͲΜͳظ଴Λ΋͍ͬͯΔͷ͔ ɹɹϏδωεKPI͸Ͳͷఔ౓޲্ͨ͠ͷ͔
 ɹɹ෭࡞༻͸͔͋ͬͨʢ͋ΔػೳΛԡ͠ग़͢ → ผͷػೳ͕࢖ΘΕͳ͘ͳΔՄೳੑʣ ɹ࣮ࢪͨ͠ࢪࡦͷ݁ՌΛ෼ੳ IUUQHBUBHOFUGSFFJMMVTUSBJUJPO

Slide 133

Slide 133 text

ɹ͜Μͳײ͡Ͱ΍Γ·ͨ͠ 1. ϗϫΠτϘʔυʹ෼ੳཁ݅
 ɹɹΧελϚʔߦಈભҠΛϕʔεͱͨ͠ࢦඪπϦʔ
 ɹɹϩάΠϯ཰͕޲্ → ΞΫγϣϯ͕… → ച্׵ࢉ 
 ɹɹɹɹ2. JupyterͰ෼ੳ
 ɹɹɹɹɹίʔυ͸શͯίϛοτཤྺͰ؅ཧ
 
 ɹɹɹɹɹɹɹɹ3. ෼ੳ݁ՌΛؔ܎ऀʹڞ༗
 ɹɹɹɹɹɹɹɹɹGithubͷϓϨϏϡʔը໘Λ׆༻

Slide 134

Slide 134 text

ɹKeepɹϏδωεࢹ఺Ͱ։ൃΛݟΔ ࣗ෼ͷ੒ՌΛࣗ෼Ͱݴ͑ΔΑ͏ʹͳͬͨ
 ʢྫɿ1ϲֻ݄͚ͨҊ݅Ͱച্xxԁ/೥ʣ


Slide 135

Slide 135 text

ɹProblemɹνʔϜͷվળ༨஍͕ݦࡏԽ ɹɹϝϯόʔ͕ࣗ෼ͷཧղෆ଍ʹڻ͘
 
 ɹɹɹ ● ੡඼࢓༷ - ͜ͷέʔεͩͱσʔλͷத਎͸Ͳ͏ͳΔʁ
 ɹɹɹ ● ϑϩϯτدΓϝϯόʔ͕ෳࡶͳSQLʹखؒऔΔ
 ɹɹɹ ● ͦ΋ͦ΋ϏδωεKPIΛ೺Ѳ͍ͯ͠Δ͔
 ɹɹɹ ● ͖ͪΜͱ෼ੳ͢ΔͨΊʹຊ౰͸ඞཁͩͬͨϩάཁ݅ͷ࿙Ε


Slide 136

Slide 136 text

ɹTryɹϓϩμΫτࢤ޲νʔϜ΁ͷୈҰา ݴΘΕͨ΋ͷΛ࡞Δ͚ͩʢBuildॏࢹʣࢥߟ͔Βͷ୤٫ ʮ͞Βʹ਺ࣈΛ৳͹͢ʹ͸Ͳ͏͢Δʁʯ ࢪࡦΛىҊ͢ΔΤϯδχΞ͕ग़࢝ΊΔ Ϗδωε෦໳ͱนଧͪ 㲗 ࢼߦࡨޡ 
 αϯϓϧ࣮૷ɹษڧձͰڝ߹ͷΤϯδχΞΛั·͑ͯ࿩Λฉ͘
 ࣾ಺ؔ܎ऀʹ໰୊ҙࣝΛώΞϦϯάɹ਺ࣈΛ΋ͱʹޮՌݟཱͯ νʔϑϓϩσϡʔαʔ͔ΒGoαΠϯ

Slide 137

Slide 137 text

ɹϓϩμΫτ։ൃͱԾઆݕূ Build Measure Learn Ͱ͖͍ͯΔ ΍ͬͯΈΔ

Slide 138

Slide 138 text

ɹ͍͔ʹਁಁͤ͞Δ͔ Build Measure Learn Ͱ͖͍ͯΔ ΍ͬͯΈΔ ਁಁͤ͞Δ

Slide 139

Slide 139 text

͋ͷख͜ͷखͰʮσʔλ෼ੳ΍Ζ͏ʯͷۭؾΛৢ੒ ɹ ● σʔλ෼ੳϋοΧιϯͷ։࠵ ɹ ● ே׆ x ࣗ༝ݚڀʢϏοτίΠϯͷ஋্͕ΓཁҼΛ౷ܭղੳ͢Δۚͷ๢ऀ͕େྔൃੜʣ ɹ ● JupyterHubΛ֦ுͨ͠PythonֶशαΠτ΍
 ɹɹ֎ʹஔ͚ͳ͍σʔλ޲͚ͷnbviewerΛࣾ಺ఏڙ ɹϝοηʔδϯά

Slide 140

Slide 140 text

1ͭͷϞχλʔΛғΜͰશһͰ࡞ۀ͢Δ ɹɹ ● पғ͕ௐ΂ͨΓΞυόΠε͠ͳ͕ΒਐΊΔ
 ɹɹɹ → ϋϚΒͳ͍ / ࠳ંΛ๷͙ɺTips΍ίπΛڞ༗͋͠͏
 ɹɹ ● օ͕΍ΔͳΒࣗ෼΋΍Δ͔ʂͷޙԡ͠
 ɹɹɹ → ʮ΍ͬͯΈͨΒࢥͬͨҎ্ʹྑ͔ͬͨʯͷମݧ ɹϞϒ ϓϩάϥϛϯά σʔλ෼ੳ

Slide 141

Slide 141 text


 σʔλ࢓༷ʹৄ͍͠ʢগͳ͘ͱ΋ௐࠪ͢ΔεΩϧ͸΋͍ͬͯΔʣΤϯδχΞ͕
 ୲౰ྖҬΛ޿͛Δ͜ͱͰલޙ޻ఔͷϦʔυλΠϜΛ୹ॖ
 ɹϓϩηε૷ண - ։ൃ޻ఔʹ૊ΈࠐΉ ੡଄ ઃܭ ࢼݧ ϦϦʔε ޮՌ
 ଌఆ ཁ݅
 ఆٛ ཁٻ
 ੔ཧ ੡଄ ઃܭ ࢼݧ ϦϦʔε ޮՌ
 ଌఆ ཁ݅
 ఆٛ ཁٻ
 ੔ཧ طʹ΍͍ͬͯΔ ෼ੳཁٻ ϩάཁ݅ ܭଌ ΞΠσΞ

Slide 142

Slide 142 text

ΤϯδχΞ ʹ ͦͷ৔Ͱσʔλ࢓༷Λௐ΂Δ͜ͱ͕Ͱ͖Δ 
 σʔλαΠΤϯε෦໳͕࢓༷ώΞϦϯάΛॏͶͯ
 1ि͔͚͍ؒͯͨ෼ੳ͕1࣌ؒͰ׬ྃʢϑϩʔޮ཰Խʣ ɹ࣮੷ɿΞδϦςΟͷ޲্ ϝΠϯϞχλʔ͸
 Jupyter Notebook αΠυϞχλʔ͸
 ϓϩμΫτͷιʔείʔυ ʴ

Slide 143

Slide 143 text

ɹϓϩμΫτ։ൃͱԾઆݕূ Build Measure Learn Ͱ͖͍ͯΔ ΍ͬͯΈΔ Ͱ͖͍ͯΔ

Slide 144

Slide 144 text

ɹLearn ࠓޙͷ՝୊
 ·ͩࢼߦࡨޡதͰ͢

Slide 145

Slide 145 text

ɹؾ෇͖ - “Ծઆ” Λ஌Βͳ͍ͱ “ݕূ” Ͱ͖ͳ͍ IUUQXXXOJLLFJCQDPKQBUDMQVCNLUCPPL1 Ϗδϣϯ ઓུ ઓज़

Slide 146

Slide 146 text

“Ծઆ” Λνʔϑϓϩσϡʔαʔʹ࣭໰ ↓
 
 ߟ͑Λฉ͍ͨΤϯδχΞʮ͍΍ɺԶ͸͜͏ࢥ͏ʂʯ ↓
 ϒϥϯυ࠶ݕ౼ϫʔΫγϣοϓͷ։࠵
 ͲΜͳސ٬ʹͲΜͳՁ஋Λఏڙ͢Δͷ͔
 ෦ॺΛԣஅ͓ͯ͠ޓ͍ͷߟ͑ΛͿ͚ͭ߹͏ ɹର࿩ͷ׆ੑԽ

Slide 147

Slide 147 text

֤ࣗͷҙݟ͕ʮ͋ͳͨͷײ૝Ͱ͢ΑͶʯʮͳΜ͔σʔλͱ͔͋ΔΜͰ͔͢ʯঢ়ଶ ɹҙݟͷͿ͚ͭ߹͍ → ݟ͖͑ͯͨ՝୊ ࣗ෼ͨͪ͸ސ٬ͷ͜ͱΛ
 ຊ౰ʹཧղ͍ͯ͠Δͷ͔ʁ উखͳࢥ͍ࠐΈͰ
 ϓϩμΫτΛ
 ։ൃ͍ͯ͠ͳ͍͔ʁ

Slide 148

Slide 148 text

ɹϦΫϧʔτͷྺ࢙ Ӧۀ͕௚઀ళฮʹग़޲͍ͯ
 σʔλΛऩू͍ͯͨ͠ σʔλʢࣄ࣮ʣΛ࣋ͪدͬͯ
 ෦ॺؒͰҙݟΛͿ͚ͭ߹͏ ࢢ৔ͷ࠶ఆٛ
 ৽͍͠ϏδωεՁ஋ͷߏங
 ྫɿঁੑ޲͚ब৬ϝσΟΞ → ࣾձਐग़ͷࢧԉ
 ྫɿΫʔϙϯࡶࢽ → ༧໿αΠτ ΁ͷస׵ IUUQXXXJSBTVUPZBDPNCMPHQPTU@IUNM IUUQXXXJSBTVUPZBDPNCMPHQPTU@IUNM IUUQXXXJSBTVUPZBDPNOFXQPQIUNM

Slide 149

Slide 149 text

4&$*Ϟσϧ ɹσʔλ͕ࢧ͑Δ஌ࣝ૑଄ ސ٬Ձ஋ উͪےɾUVP ΤϯδχΞ ू٬ σβΠϯ ηΩϡϦςΟ ๏຿ ΧελϚʔαϙʔτ ޿ใ ࢧԉऀɾ։୓ऀͱͯ͠ͷ
 σʔλαΠΤϯςΟετ σʔλ

Slide 150

Slide 150 text

શͯ͸ ސ٬ཧղ ͔Β࢝·Δ σʔλ͸ͦͷͨΊͷ൑அࡐྉ

Slide 151

Slide 151 text

Ӧۀ͕଍Λ࢖ͬͯσʔλΛूΊΔ
 ΫϥΠΞϯτͱపఈతʹ޲͖߹͍ʮউͪےʯΛݟ͚ͭΔ
 ͦ͏΍ͬͯϦΫϧʔτͷ
 ͜Ε·Ͱͷ50೥Λ࡞͖ͬͯͨ
 ϝσΟΞΛ௨ͯ͠ੈքΛ࡞͖ͬͯͨ

Slide 152

Slide 152 text

ΤϯδχΞ͕खΛ࢖ͬͯσʔλΛूΊΔ
 ΧελϚʔͱపఈతʹ޲͖߹͍ʮUVPʯΛݟ͚ͭΔ
 
 ͦ͏͢Δ͜ͱ͕ϦΫϧʔτͷ
 ͜Ε͔Βͷ50೥Λ࡞Δ͸ͣ
 ϓϩμΫτΛ௨ͯ͠ੈքΛ࡞Δ͸ͣ

Slide 153

Slide 153 text

ϦΫϧʔτʹݶͬͨ࿩Ͱ͸ͳ͍
 
 ͜Ε͔ΒͷੈքΛ࡞Δͷ͸ɺ
 ୭ΑΓ΋ ੡඼ ͱ ސ٬ ʹਫ਼௨ͨ͠
 ΤϯδχΞͷ໾ׂ Ͱ͢
 ͍·͜ͷ৔ʹ͍Δ ࢲͨͪࣗ਎ Ͱ͢ 
 σʔλ׆༻͸ɺͦͷୈҰาͩͱࢥ͍ͬͯ·͢

Slide 154

Slide 154 text

σʔλΛ׆༻͢ΔͨΊʹ৐Γӽ͑Δน ● େن໛૊৫ͰͲͷΑ͏ͳγεςϜɾϓϩηεΛ࠾༻͢Δ͔ʁ
 ● Buildॏࢹݱ৔ʹͲ͏΍ͬͯMeasureɾLearnΛ૷ண͢Δ͔ʁ 1ͭͷϓϩμΫτʹ͓͚ΔࣄྫΛڞ༗͠·ͨ͠ ɹຊ೔ͷৼΓฦΓ

Slide 155

Slide 155 text

σʔλ׆༻ͷਪਐʢ୅දͱͯ͠ൃද͠·͕࣮ͨ͠ࡍʹ͸൴Βͷޭ੷ʹΑΔͱ͜Ζ͕େ͖͍Ͱ͢ʣ ɹNaoya OsugiɹLee HeesungɹTatsuya IshibeɹTakuya BeppuɹTakahiro Kato
 ɹKohei AotaɹRyo InoueɹHiroki SakamotoɹShinryo UchidaɹShinsaku Kouno
 ɹShin KanouchiɹGeeWook KimɹKoh Fujiwara
 ٕज़ΞυόΠεɾ૊৫ࢧԉ ɹSho ItoɹShinya NishinakaɹNaoki Ainoya
 ɹKeisuke SoneɹSatoshi UejimaɹNorihisa Miyakawa ൃදαϙʔτ ɹShun OnoɹYusaku TokunagaɹKazutaka SakuraiɹSaki Kato ※ࢿྉɾ಺༰ʹޡΓ΍ෆద੾ͳදݱ͕͋Ε͹ൃදऀͷϛεͰ͢ɻ@yuzutas0 ʹ͝࿈བྷ͍͚ͨͩΔͱ޾͍Ͱ͢ɻ ɹSpecial Thanks - ج൫ͷಓ͸1ਓʹͯ͠੒Βͣ

Slide 156

Slide 156 text

গ͠Ͱ΋ଟ͘ͷ ։ൃݱ৔ ͕
 ੈͷதʹ ྑ͍ϓϩμΫτ Λఏڙ͢Δ
 ώϯτ ʹͳΕͨΒͱࢥ͍ͬͯ·͢ ɹ఻͍͑ͨ͜ͱ

Slide 157

Slide 157 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ presented by @yuzutas0
 https://www.pexels.com/photo/close-up-of-computer-keyboard-257949/ɹhttps://www.pexels.com/photo/technology-computer-lines-board-50711/ɹhttps://www.pexels.com/photo/black-and-white-business-chart-computer-241544/