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
MySQLからBigQueryの同期を差分更新にしたら4倍高速になった話 / Sync fro...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Takehiro Shiozaki
May 16, 2017
Technology
6
32k
MySQLからBigQueryの同期を差分更新にしたら4倍高速になった話 / Sync from MySQL to BigQuery become 4x faster by incremental updating
Embulk Meetup Tokyo #3のLTです
Takehiro Shiozaki
May 16, 2017
Tweet
Share
More Decks by Takehiro Shiozaki
See All by Takehiro Shiozaki
全部見せます! BigQueryのコスト削減の手法とその効果 / BigQuery Cost Reduction Methods
shiozaki
6
3.9k
タイムトラベルはじめました 〜時をかけるBigQuery〜 / Now serving Time Machine 〜BigQuery Which Leapt Through Time〜
shiozaki
0
5.5k
これからのZOZOを支える ログ収集基盤を設計した話 / Log collection infrastructure to support ZOZO in the future
shiozaki
6
15k
Amazon AuroraのデータをリアルタイムにGoogle BigQueryに連携してみた / Realtime data linkage from Amazon Aurora to Google BigQuery
shiozaki
10
15k
ZOZOTOWNの事業を支えるBigQueryの話 / BigQuery behind ZOZOTOWN
shiozaki
7
10k
ZOZOTOWNのDWHをRedshiftからBigQueryにお引越しした話 / Moving ZOZOTOWN DWH from Redshift to BigQuery
shiozaki
16
11k
ZOZOTOWNのバッチデータ転送基盤紹介 / ZOZOTOWN's data transfer batch
shiozaki
0
570
1日あたり数百万商品をクロールする 大規模クローラーの裏側 / How IQON crawler works
shiozaki
4
1.7k
Digdagを仕事で使ってみて良かったこと、ハマったこと / Using Digdag in production environment
shiozaki
1
2.1k
Other Decks in Technology
See All in Technology
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
AI駆動開発を事業のコアに置く
tasukuonizawa
1
390
Context Engineeringの取り組み
nutslove
0
380
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
350
コンテナセキュリティの最新事情 ~ 2026年版 ~
kyohmizu
6
2.3k
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
410
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
770
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
680
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
1,000 にも届く AWS Organizations 組織のポリシー運用をちゃんとしたい、という話
kazzpapa3
0
180
SRE Enabling戦記 - 急成長する組織にSREを浸透させる戦いの歴史
markie1009
0
170
Featured
See All Featured
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
170
So, you think you're a good person
axbom
PRO
2
1.9k
Design in an AI World
tapps
0
150
Test your architecture with Archunit
thirion
1
2.2k
Darren the Foodie - Storyboard
khoart
PRO
2
2.4k
Tell your own story through comics
letsgokoyo
1
810
Odyssey Design
rkendrick25
PRO
1
500
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
Faster Mobile Websites
deanohume
310
31k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
110
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
Transcript
.Z42-͔Β#JH2VFSZͷಉظΛ ࠩߋ৽ʹͨ͠Βഒߴʹͳͬͨ &NCVML.FFUVQ5PLZP VASILY,Inc. Ԙ㟒݈߂
Ԙ㟒݈߂ w ʹ7"4*-:ʹ৽ଔೖࣾ w ීஈͷ͓ࣄ3BJMTͰXFC"1*࡞ͬͨΓɺ4PMSͷϝϯςͨ͠Γɺ 5BCMFBV#JH2VFSZͰμογϡϘʔυ࡞ͬͨΓ w &NCVMLࠓͷ݄ࠒʹ৮Γ࢝Ί͔ͨΓ 7"4*-: *OD
TPGUXBSFFOHJOFFS
*20/հ Ҏ্ͷϑΝογϣϯ&$αΠτ͔Β ྦྷܭ ສΛ͑ΔΛܝࡌ ݄ؒສਓҎ্͕ར༻͢Δຊ࠷େڃͷϑΝογϣϯαΠτ
σʔλऩूج൫ͷհ Πϕϯτϩά &-# "1*4FSWFS -PH "HHSFHBUPS 8FC4FSWFS #JH2VFSZ 3FDPNNFOE
σʔλੳج൫ͷհ Ϛελʔσʔλ 3%4 .Z42- %BUBUSBOTGFS TFSWFS ($4 #JH2VFSZ Γ͔͚͍ͯΔൿͷͨΕঢ়ଶ ɾNZTRMEVNQ
US TFE FUDΛෳࡶʹΈ߹Θ͍ͤͯΔ ɾςʔϒϧΛׂͯ͠సૹ͢ΔઃఆΛϋʔυίʔσΟϯά
σʔλੳج൫ͷհ Ϛελʔσʔλ 3%4 .Z42- %BUBUSBOTGFS TFSWFS ($4 #JH2VFSZ ʹ&NCVMLΛಋೖ ɾಉظόον͕མͪΔ͜ͱ͕΄΅ͳ͘ͳΔ
͔͜͜ΒϝΠϯςʔϚ
ϚελʔσʔλͷಉظΛ ߴԽ͍ͨ͠ w ϢʔβʔͷՁͷఏڙΛߴԽ͢ΔͨΊ w ݱঢ়ใͷಉظ͚ͩͰ࣌ؒ ສߦ (#
࣌ؒܭଌ 3%4 .Z42- %BUBUSBOTGFS TFSWFS ($4 #JH2VFSZ NJO .Z42-ͷςʔϒϧΛμϯϓ NJO
μϯϓΛ($4ʹΞοϓϩʔυ NJO ($4͔Β#JH2VFSZʹϩʔυ
.Z42-ͷμϯϓ͕ ϘτϧωοΫ w Ϛελʔσʔλͷಉظຖߦ͍ͬͯΔͨΊɺ ࡢͱಉ͡σʔλಉظ͢Δඞཁͳ͠ w 3VCZPO3BJMTΛ༻͍ͯ͠ΔͷͰɺ VQEBUFE@BUʹͦͷߦͷߋ৽࣌ࠁ͕ೖ͍ͬͯΔ
ࠩߋ৽ͯ͠ΈΔ ςʔϒϧ ࠩͷΈ ςʔϒϧ લ ςʔϒϧͷϚʔδ 0-"1ؔΛ׆༻ લճͷಉظҎ߱ͷσʔλͷΈ where: "updated_at
> ..."
લճͷಉظҎ߱ͷσʔλΛऔಘ w JOQVUQMVHJONZTRMͷઃఆʹXIFSFΛՃ͢Δ w औಘ͢Δඞཁͷ͋Δߦ͕ҎԼʹͳΔ in: type: mysql host: example.com
user: user_name password: ******** database: db_name table: items select: "*" where: "updated_at > '2017-05-15 00:00:00'" # この行を追加
42-ͰςʔϒϧΛϚʔδ w ͭͷςʔϒϧΛVOJPOBMMͰ݁߹͠ɺओΩʔͰ QBSUJUJPOCZͯ͠৽͍͠ߦͷΈΛબ w ͜ͷ42-ͷ݁ՌΛݩͷςʔϒϧʹॻ͖͢ select * from (
select *, row_number() over (partition by id order by updated_at desc) as rn from ( select * from tmp.items union all select * from mysql.items ) ) where rn = 1
݁Ռ 3%4 .Z42- %BUBUSBOTGFS TFSWFS ($4 #JH2VFSZ NJO ˠNJO NJO
ˠNJO NJO ˠNJO શମͰഒͷߴԽ INJOˠNJO ςʔϒϧͷϚʔδ NJOˠNJO
৽ͨͳ՝ w Ϛελʔσʔλͷಉظ͕ෳࡶʹͳΓͦ͏ w ֤ॲཧͷʮྲྀΕʯΛཧ͢Δπʔϧ͕ཉ͍͠ %JHEBH "JSqPX -VJHJ
·ͱΊ w &NCVMLόϧΫసૹͷҋΛরΒͯ͘͠ΕΔπʔϧ w σʔλͷࠩߋ৽ʹΑͬͯഒߴԽ w ӡ༻ϑΣʔζͰଞͷπʔϧͱͷ࿈ܞ͕ඞཁ