Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Digdagを仕事で使ってみて良かったこと、ハマったこと / Using Digdag in production environment
Search
Takehiro Shiozaki
June 07, 2017
Technology
1
1.8k
Digdagを仕事で使ってみて良かったこと、ハマったこと / Using Digdag in production environment
Takehiro Shiozaki
June 07, 2017
Tweet
Share
More Decks by Takehiro Shiozaki
See All by Takehiro Shiozaki
タイムトラベルはじめました 〜時をかけるBigQuery〜 / Now serving Time Machine 〜BigQuery Which Leapt Through Time〜
shiozaki
0
4k
これからのZOZOを支える ログ収集基盤を設計した話 / Log collection infrastructure to support ZOZO in the future
shiozaki
5
12k
Amazon AuroraのデータをリアルタイムにGoogle BigQueryに連携してみた / Realtime data linkage from Amazon Aurora to Google BigQuery
shiozaki
10
12k
ZOZOTOWNの事業を支えるBigQueryの話 / BigQuery behind ZOZOTOWN
shiozaki
7
8.5k
ZOZOTOWNのDWHをRedshiftからBigQueryにお引越しした話 / Moving ZOZOTOWN DWH from Redshift to BigQuery
shiozaki
16
10k
ZOZOTOWNのバッチデータ転送基盤紹介 / ZOZOTOWN's data transfer batch
shiozaki
0
460
1日あたり数百万商品をクロールする 大規模クローラーの裏側 / How IQON crawler works
shiozaki
3
1.4k
ファッションIT業界あるある / fashion IT aruaru
shiozaki
1
710
MySQLからBigQueryの同期を差分更新にしたら4倍高速になった話 / Sync from MySQL to BigQuery become 4x faster by incremental updating
shiozaki
6
31k
Other Decks in Technology
See All in Technology
DMM.com アルファ室採用案内資料
hsugita
1
220
LangSmith入門―トレース/評価/プロンプト管理などを担うLLMアプリ開発プラットフォーム
os1ma
5
700
VSCodeの拡張機能を作っている話
ebarakazuhiro
1
790
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
270
Rustで「プリズモイダル法」を利用して「土量計算」をガチでやる
nokonoko1203
1
270
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
2
300
Babylon.jsと色々なものを組み合わせる:ブラウザのAPIやガジェットや2D描画ライブラリなど / Babylon.js 勉強会 vol.3
you
PRO
0
160
MLOpsの「壁」を乗り越える、LINEヤフーの Data Quality as Code
lycorptech_jp
PRO
8
620
On Your Data を超えていく!
hirotomotaguchi
2
750
JAWS-UG Bedrock Claude Night
yamahiro
3
700
開発パフォーマンスを最大化するための開発体制
ham0215
7
1.1k
require(ESM)とECMAScript仕様
uhyo
4
950
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
331
56k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.4k
Gamification - CAS2011
davidbonilla
77
4.6k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
Build your cross-platform service in a week with App Engine
jlugia
226
17k
The Mythical Team-Month
searls
216
42k
Clear Off the Table
cherdarchuk
85
310k
Optimizing for Happiness
mojombo
370
69k
The Cost Of JavaScript in 2023
addyosmani
20
3.9k
Product Roadmaps are Hard
iamctodd
45
9.7k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Stop Working from a Prison Cell
hatefulcrawdad
267
19k
Transcript
%JHEBHΛࣄͰͬͯΈͯ ྑ͔ͬͨ͜ͱɺϋϚͬͨ͜ͱ 8PSLqPX&OHJOFT/JHIU VASILY,Inc. Ԙ㟒݈߂
Ԙ㟒݈߂ w ʹ7"4*-:ʹ৽ଔೖࣾ w ීஈͷ͓ࣄ3BJMTͰXFC"1*࡞ͬͨΓɺ4PMSͷϝϯςͨ͠Γ 5BCMFBV#JH2VFSZͰμογϡϘʔυ࡞ͬͨΓ w %JHEBHྺ·ͩिؒ͘Β͍ 7"4*-: *OD
TPGUXBSFFOHJOFFS
*20/ Ҏ্ͷϑΝογϣϯ&$αΠτ͔Β ྦྷܭ ສΛ͑ΔΛܝࡌ ݄ؒສਓҎ্͕ར༻͢Δຊ࠷େڃͷϑΝογϣϯαΠτ
w ͱ͋ΔҊ݅ͰΫϩʔϥʔΛ࡞Γ·ͨ͠ w αΠτͷใΛΫϩʔϧ͠ɺ ͦΕΒͷใΛϚʔδͨ͠ޙʹ4ʹอଘ ͲΜͳͷΛ࡞ͬͨͷ͔
%"(Ͱॻ͘ͱ͜Μͳײ͡ $SBXM $SBXM $SBXM/ .FSHF 6QMPBE ɾɾɾ
DSPOͰཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1 0 0 *
* * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge # merge処理は10分以内に終わるはず 0 40 * * * upload
DSPOͰཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1 0 0 *
* * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge # merge処理は10分以内に終わるはず 0 40 * * * upload ͠ɺҎʹऴΘΒͳ͔ͬͨΒʁ
DSPOͰཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1 0 0 *
* * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge # merge処理は10分以内に終わるはず 0 40 * * * upload ͜ͷॲཧ͕ࣦഊͨ͠Βɺ ͜ΕҎ߱ͷॲཧετοϓ͢Δ͖ʁ
DSPOͰཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1 0 0 *
* * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge # merge処理は10分以内に終わるはず 0 40 * * * upload ॲཧ͕ࣦഊͨ࣌͠ʹϦτϥΠ͍ͨ͠
DSPOͰཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1 0 0 *
* * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge # merge処理は10分以内に終わるはず 0 40 * * * upload ্ྲྀͷॲཧ͕ϦτϥΠͨ࣌͠ʹɺ ॲཧͷ։࢝࣌ࠁΛΒ͍ͤͨ
DSPOͰཧ͍ͯͨ͠ࠒ 0 0 * * * crawl-1 0 0 *
* * crawl-2 0 0 * * * crawl-N # crawl処理は30分以内に終わるはず 0 30 * * * merge # merge処理は10分以内に終わるはず 0 40 * * * upload Τϥʔ͕ى͖ͨΒ௨͕ཉ͍͠
ͭΒ͍
w લड़ͨ͠ʮͭΒ͞ʯΛղফ͢ΔͨΊʹಋೖ w %JHEBHಋೖͷཧ༝ w ৴པͱ࣮ͷ5SFBTVSF%BUB044 w "JSqPX-VJHJͱൺΔͱઃఆ͕γϯϓϧ w Ϟάϥ͕νϟʔϛϯά
%JHEBHಋೖ
͔͜͜Βຊ %JHEBHΛಋೖͯ͠Α͔ͬͨ͜ͱ ˍ %JHEBHͷಋೖͰϋϚͬͨ͜ͱ
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}
w %JHEBHαʔόʔʹ%PDLFS͚ͩΛΠϯετʔϧ w ΞϓϦέʔγϣϯͷ࣮ߦڥίϯςφʹด͡ࠐΊ w %JHEBHαʔόʔͷߏ͕γϯϓϧʹͳΔ Α͔ͬͨ͜ͱ%PDLFSαϙʔτ
w /tmp/digdag-tempdir* ͕λεΫຖʹੜ͞ΕΔ w ଞͷλεΫ͔ΒͷӨڹΛ࠷খԽͰ͖Δ w ˞%JHEBHTFSWFSݶఆ Α͔ͬͨ͜ͱҰ࣌σΟϨΫτϦͰλεΫΛ࣮ߦ
w QZΦϖϨʔλʔQZUIPOίϚϯυΛݺͼग़͢ w 6CVOUVͰQZUIPOίϚϯυͰ1ZUIPO͕ɺ QZUIPOίϚϯυͰ1ZUIPO͕࣮ߦ͞ΕΔ w ͍͔ͨͬͨͷ1ZUIPOͷํ w ղܾࡦ w
1ZUIPOͷ%PDLFSΠϝʔδΛ༻ ϋϚͬͨ͜ͱ1ZUIPOͷόʔδϣϯ
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 ϑΝΠϧ͕ݟ͔ͭΒͳ͍
w υΩϡϝϯτʹॻ͔Ε͍ͯͳ͍ػೳ͕͋ͬͨΓ w TFSWFSϞʔυͱTDIFEVMFSϞʔυͷ͍͚ͷج४ w ϓϥάΠϯϚωʔδϟ embulk gemతͳ ͜Ε͔Βʹظ
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 ·ͱΊ