Slide 1

Slide 1 text

%JHEBHΛ࢓ࣄͰ࢖ͬͯΈͯ ྑ͔ͬͨ͜ͱɺϋϚͬͨ͜ͱ 8PSLqPX&OHJOFT/JHIU VASILY,Inc. Ԙ㟒݈߂

Slide 2

Slide 2 text

Ԙ㟒݈߂ w ೥ʹ7"4*-:ʹ৽ଔೖࣾ w ීஈͷ͓࢓ࣄ͸3BJMTͰXFC"1*࡞ͬͨΓɺ4PMSͷϝϯςͨ͠Γ
 5BCMFBV#JH2VFSZͰμογϡϘʔυ࡞ͬͨΓ w %JHEBHྺ͸·ͩिؒ͘Β͍ 7"4*-: *OD TPGUXBSFFOHJOFFS

Slide 3

Slide 3 text

*20/ Ҏ্ͷϑΝογϣϯ&$αΠτ͔Β ྦྷܭ ສ఺Λ௒͑Δ঎඼Λܝࡌ ݄ؒສਓҎ্͕ར༻͢Δ೔ຊ࠷େڃͷϑΝογϣϯαΠτ

Slide 4

Slide 4 text

w ͱ͋ΔҊ݅ͰΫϩʔϥʔΛ࡞Γ·ͨ͠ w ਺αΠτͷ৘ใΛΫϩʔϧ͠ɺ
 ͦΕΒͷ৘ใΛϚʔδͨ͠ޙʹ4ʹอଘ ͲΜͳ΋ͷΛ࡞ͬͨͷ͔

Slide 5

Slide 5 text

%"(Ͱॻ͘ͱ͜Μͳײ͡ $SBXM $SBXM $SBXM/ .FSHF 6QMPBE ɾɾɾ

Slide 6

Slide 6 text

DSPOͰ؅ཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1
 0 0 * * * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge
 # merge処理は10分以内に終わるはず 0 40 * * * upload

Slide 7

Slide 7 text

DSPOͰ؅ཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1
 0 0 * * * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge
 # merge処理は10分以内に終わるはず 0 40 * * * upload ΋͠ɺ෼Ҏ಺ʹऴΘΒͳ͔ͬͨΒʁ

Slide 8

Slide 8 text

DSPOͰ؅ཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1
 0 0 * * * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge
 # merge処理は10分以内に終わるはず 0 40 * * * upload ͜ͷॲཧ͕ࣦഊͨ͠Βɺ ͜ΕҎ߱ͷॲཧ͸ετοϓ͢Δ΂͖ʁ

Slide 9

Slide 9 text

DSPOͰ؅ཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1
 0 0 * * * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge
 # merge処理は10分以内に終わるはず 0 40 * * * upload ॲཧ͕ࣦഊͨ࣌͠ʹ͸ϦτϥΠ͍ͨ͠

Slide 10

Slide 10 text

DSPOͰ؅ཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1
 0 0 * * * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge
 # merge処理は10分以内に終わるはず 0 40 * * * upload ্ྲྀͷॲཧ͕ϦτϥΠͨ࣌͠ʹ͸ɺ ॲཧͷ։࢝࣌ࠁΛ஗Β͍ͤͨ

Slide 11

Slide 11 text

DSPOͰ؅ཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1
 0 0 * * * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge
 # merge処理は10分以内に終わるはず 0 40 * * * upload Τϥʔ͕ى͖ͨΒ௨஌͕ཉ͍͠

Slide 12

Slide 12 text

ͭΒ͍

Slide 13

Slide 13 text

w લड़ͨ͠ʮͭΒ͞ʯΛղফ͢ΔͨΊʹಋೖ w %JHEBHಋೖͷཧ༝ w ৴པͱ࣮੷ͷ5SFBTVSF%BUB੡044 w "JSqPX΍-VJHJͱൺ΂Δͱઃఆ͕γϯϓϧ w Ϟάϥ͕νϟʔϛϯά %JHEBHಋೖ

Slide 14

Slide 14 text

͔͜͜Βຊ୊ %JHEBHΛಋೖͯ͠Α͔ͬͨ͜ͱ ˍ %JHEBHͷಋೖͰϋϚͬͨ͜ͱ

Slide 15

Slide 15 text

w "JSqPX΍-VJHJͱൺ΂Δͱࣗ༝౓͕௿͍
 ˢͦ΋ͦ΋ߴ͍ࣗ༝౓͸ෆཁ Α͔ͬͨ͜ͱઃఆϑΝΠϧ͕γϯϓϧ timezone: UTC +setup: echo>: start ${session_time} +disp_current_date: echo>: ${moment(session_time).utc().format('YYYY-MM-DD HH:mm:ss Z')} +repeat: for_each>: order: [first, second, third] animal: [dog, cat] _do: echo>: ${order} ${animal} _parallel: true +teardown: echo>: finish ${session_time}

Slide 16

Slide 16 text

w %JHEBHαʔόʔʹ͸%PDLFS͚ͩΛΠϯετʔϧ w ΞϓϦέʔγϣϯͷ࣮ߦ؀ڥ͸ίϯςφ಺ʹด͡ࠐΊ w %JHEBHαʔόʔͷߏ੒͕γϯϓϧʹͳΔ Α͔ͬͨ͜ͱ%PDLFSαϙʔτ

Slide 17

Slide 17 text

w /tmp/digdag-tempdir* ͕λεΫຖʹੜ੒͞ΕΔ w ଞͷλεΫ͔ΒͷӨڹΛ࠷খԽͰ͖Δ w ˞%JHEBHTFSWFSݶఆ Α͔ͬͨ͜ͱҰ࣌σΟϨΫτϦͰλεΫΛ࣮ߦ

Slide 18

Slide 18 text

w QZΦϖϨʔλʔ͸QZUIPOίϚϯυΛݺͼग़͢ w 6CVOUVͰ͸QZUIPOίϚϯυͰ1ZUIPO͕ɺ QZUIPOίϚϯυͰ1ZUIPO͕࣮ߦ͞ΕΔ w ࢖͍͔ͨͬͨͷ͸1ZUIPOͷํ w ղܾࡦ w 1ZUIPOͷ%PDLFSΠϝʔδΛ࢖༻ ϋϚͬͨ͜ͱ1ZUIPOͷόʔδϣϯ

Slide 19

Slide 19 text

w ղܾࡦ w 4ʹҰ࣌ϑΝΠϧΛஔ͍ͯड͚౉͠Λ͢Δ ϋϚͬͨ͜ͱҰ࣌ϑΝΠϧͷड͚౉͠ _export: docker: image: python:3.6.1 +crawl: _parallel: true +crawl1: sh>: crawl.sh > temp_result_1.json +crawl2: sh>: crawl.sh > temp_result_2.json +merge: sh>: merge.sh temp_result1.json temp_result2.json &3303 ϑΝΠϧ͕ݟ͔ͭΒͳ͍

Slide 20

Slide 20 text

w υΩϡϝϯτʹॻ͔Ε͍ͯͳ͍ػೳ͕͋ͬͨΓ w TFSWFSϞʔυͱTDIFEVMFSϞʔυͷ࢖͍෼͚ͷج४ w ϓϥάΠϯϚωʔδϟ embulk gemతͳ ͜Ε͔Βʹظ଴

Slide 21

Slide 21 text

w %JHEBHศར w DSPOӡ༻ͷʮͭΒ͞ʯΛղফͯ͘͠ΕΔϞάϥ w ·ͩࢼͨ͜͠ͱ͕ͳ͍ਓ͸ɺҎԼͷίϚϯυΛ࣮ߦͯ͠Πϯετʔϧ • $ curl -o ~/bin/digdag --create-dirs \
 -L "https://dl.digdag.io/digdag-latest"
 $ chmod +x ~/bin/digdag
 $ echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc ·ͱΊ