Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Google BigQuery の話 #gcpja
Search
Naoya Ito
September 17, 2014
Technology
5.9k
17
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Google BigQuery の話 #gcpja
gcp ja night で話した BigQuery のスライド。YAPC::Asia のものに数枚だけスライドを追加したもので、ほぼ同じです。
Naoya Ito
September 17, 2014
More Decks by Naoya Ito
See All by Naoya Ito
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
4.5k
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
13
4.8k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
8.1k
Functional TypeScript
naoya
19
6.9k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
77
38k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.9k
20230227-engineer-type-talk.pdf
naoya
91
87k
関数型プログラミングと型システムのメンタルモデル
naoya
64
110k
TypeScript による GraphQL バックエンド開発
naoya
29
38k
Other Decks in Technology
See All in Technology
子育てエンジニアの可処分時間が減っても成長を諦めない戦い方
sudoakiy
6
4.4k
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
130
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
0
200
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
Essential architectural thinking (revised edition)
ufried
0
110
LocalStack を使ったサーバーレスアプリケーション開発 / Serverless Development with LocalStack
kakakakakku
1
390
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
940
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
2
1.5k
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
540
Running Kotlin + Quarkus with Lambda
nealle
1
420
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
480
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
7
5.8k
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Unsuck your backbone
ammeep
672
58k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Code Reviewing Like a Champion
maltzj
529
40k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
720
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
560
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
980
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The Curious Case for Waylosing
cassininazir
1
560
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Transcript
(PPHMF#JH2VFSZͷ /BPZB*UP ,"*;&/QMBUGPSN*OD HDQKBOJHIU
ΞδΣϯμ • #JH2VFSZ֓؍ • #JH2VFSZͷ෦ • ,"*;&/QMBUGPSN*ODͰͷ͍Ͳ͜Ζ
#JH2VFSZ֓؍
(PPHMF#JH2VFSZ
None
#JH2VFSZͱ • ڊେͳσʔλͷ42- ͳͲ ΛඵͰ࣮ߦ͢ΔΫϥυαʔϏε – ԯϨίʔυΛඵ ˞ –
8FCΠϯλʔϑΣʔε͓Αͼ3&45"1* • (PPHMFࣾͰΘΕ͖ͯͨ%SFNFMΛαʔϏεԽ – ݄$MPTFEϦϦʔε – ݄Ұൠެ։ – ܧଓతʹόʔδϣϯΞοϓ – ݄#JH2VFSZ4USFBNJOH ˞(PPHMFͷދͷࢠʮ#JH2VFSZʯΛ'MVFOUEϢʔβʔ͕Θͳ͍ཧ༝͕ͳ͘ͳͬͨཧ༝ IUUQRJJUBDPNLB[VOPSJJUFNTBDBDCCBBBG
ͲΜͳ͜ͱʹΘΕΔ͔ • Ϣʔεέʔε – ϩάղੳ – %BUBXBSF)PVTF – • ͍ͯͳ͍༻్ – ۀ%# ͍3%#.4Ͱ
ͳ͍Αɺͱ͍͏͜ͱ
#JH2VFSZͳ͍͔ͥ • جຊɺϑϧεΩϟϯͰ͕ΜΔ – 3%#.4ͷ#5SFFΠϯσοΫεͱ͔ͳ͍ • 42-Λࢄॲཧ – .11 .BTTJWFMZ1BSBMMFM1SPDFTTJOH
2VFSZ&OHJOF %SFNFM • ઍͷσΟεΫͱߴωοτϫʔΫͰεέʔϧΞτ – 5#ͷσʔλΛඵͰϦʔυ͢Δ*0
ͨͩ͠ • ͍3%#.4Ͱͳ͍ • େਓͰҰʹ͏ͷͰͳ͍ – ओʹόονॲཧʹ͏ • εΩʔϚϨεͰͳ͍ 5#نσʔλͰઢܗҎ ԼͰεέʔϧ͢Δ͕ɺٯ
ʹখ͞ͳσʔλͰඵ ͷΦʔόʔϔου͕͋Δ ͷͰ
BigQuery読書会、@harukasan 資料より引用
ଞͷྨࣅ࣮ͱͷϙδγϣχϯά • -BSHF#BUDI – ҆ఆͯ͠ڊେͳόονΛ࣮ߦͰ͖Δ – ΫΤϦ࣮ߦ࣌ͷΦʔόʔϔου͕େ͖͍ ेඵʙे –
.BQ3FEVDFɺ)BEPPQ )JWF • 4IPSU#BUDI – ΫΤϦ࣮ߦ࣌ͷΦʔόʔϔου͕NTʙඵ – ΞυϗοΫΫΤϦʹ͍͍ͯΔ – .112VFSZ&OHJOF1SFTUPɺ*NQBMBɺ#JH2VFSZ %SFNFM • 4USFBN1SPDFTTJOH – όον࣮ߦͰ͖ͳ͍͕ετϦʔϜʹରͯ͠ϦΞϧλΠϜॲཧͰ͖Δ – /PSJLSBɺ"QBDIF,BGLBɺ5XJUUFS4UPSNFUD "NB[PO3FETIJGU 4IPSU#BUDI ৄ͘͠ ͳ͍ͷͰলུ cf. Batch processing and Stream processing by SQL h;p://www.slideshare.net/tagomoris/hcj2014-‐sql
Ձ֨ • ྉۚ – σʔλอ(#݄ – ΫΤϦ5# εΩϟϯͨ͠σʔλͷαΠ ζ "NB[PO4ΑΓ࣮
͍҆ νέοτΒ͍·ͨ͠
#JH2VFSZͷ෦ ͚ͩ͢͜͠
(PPHMF#JH%BUB4UBDL • ʰ(PPHMFΛࢧ͑Δٕज़ʱ – #JH%BUB4UBDL – ('4ɺ#JH5BCMFɺ.BQ3FEVDFFUD • #JH%BUB4UBDL –
#JH%BUB4UBDLͷ্ʹߏங͞Εͨɺͷ՝Λղফ͢Δ࣮܈ – $PMPTTVT .FHBTUPSF 4QBOOFS 'MVNF+BWB %SFNFM طʹ(PPHMFࣾ #JH%BUB4UBDLͩ ͱ͔͍͏ͪΒ΄Β
#JH2VFSZͷٕज़ελοΫ (PPHMF'JMF4ZTUFN ('4 $PMPTTVT'JMF4ZTUFN $'4 $PMVNO*0 %SFNFM ࢄ'4
('4ͷվྑܕ'4 ৄࡉඇެ։ #JH2VFSZͷͨΊͷྻࢦϑΝΠϧ ϑΥʔϚοτ ฒྻ42-࣮ߦΤϯδϯ σʔληϯλʔΛ·͍ͨͰ ࢄ͞ΕͯΔσʔλΛฒྻ ͔ͭߴʹऔಘͰ͖ΔΒ͠ ͍
$PMVNO*0 Dremel: InteracIve Analysis of Web-‐Scale Datasets h;p://research.google.com/pubs/archive/36632.pdf ߦͰͳ͘ྻ୯ҐͰɻಛ
ఆྻΛγʔέϯγϟϧʹ ಡΊΔͭ$PMPTTVT ͰฒྻಡΈࠐΈ
%SFNFM Dremel: InteracIve Analysis of Web-‐Scale Datasets h;p://research.google.com/pubs/archive/36632.pdf
Root Mixer Mixer 1 Shard 0-‐8 Mixer 1
Shard 9-‐16 Mixer 1 Shard 17-‐24 Shard 0 Shard 10 Shard 12 Shard 20 Shard 24 Distributed Storage (e.g., CFS) Dremel serving tree Google BigQuery AnalyIcs P.284 Chapter 9 Understanding Query ExecuIon ࢄ
Root Mixer Mixer 1 Shard 0-‐8 Mixer 1
Shard 9-‐16 Mixer 1 Shard 17-‐24 Shard 0 Shard 10 Shard 12 Shard 20 Shard 24 Distributed Storage (e.g., CFS) Dremel serving tree Google BigQuery AnalyIcs P.284 Chapter 9 Understanding Query ExecuIon $'4 $PMVNO*0Ͱಛ ఆྻͷσʔλ͕Ұ෦ฦͬ ͯ͘Δ ࢄ ू
Root Mixer Mixer 1 Shard 0-‐8 Mixer 1
Shard 9-‐16 Mixer 1 Shard 17-‐24 Shard 0 Shard 10 Shard 12 Shard 20 Shard 24 Distributed Storage (e.g., CFS) Dremel serving tree Google BigQuery AnalyIcs P.284 Chapter 9 Understanding Query ExecuIon $'4 $PMVNO*0Ͱಛ ఆྻͷσʔλ͕Ұ෦ฦͬ ͯ͘Δ ྻΛॱ൪ʹಡΈߦ Λऔಘɻ8)&3&۟ͳ ͲΛݟͯඞཁͳߦͷΈ ʹߜΓϝϞϦͰอ࣋ ࢄ ू
Root Mixer Mixer 1 Shard 0-‐8 Mixer 1
Shard 9-‐16 Mixer 1 Shard 17-‐24 Shard 0 Shard 10 Shard 12 Shard 20 Shard 24 Distributed Storage (e.g., CFS) Dremel serving tree Google BigQuery AnalyIcs P.284 Chapter 9 Understanding Query ExecuIon $'4 $PMVNO*0Ͱಛ ఆྻͷσʔλ͕Ұ෦ฦͬ ͯ͘Δ ྻΛॱ൪ʹಡΈߦ Λऔಘɻ8)&3&۟ͳ ͲΛݟͯඞཁͳߦͷΈ ʹߜΓϝϞϦͰอ࣋ ֤TIBSE͔ΒσʔλΛू ɻྫ͑ιʔτ-*.*5 ͷߜΓࠐΈͳͲ͢Δ ࢄ ू
Root Mixer Mixer 1 Shard 0-‐8 Mixer 1
Shard 9-‐16 Mixer 1 Shard 17-‐24 Shard 0 Shard 10 Shard 12 Shard 20 Shard 24 Distributed Storage (e.g., CFS) Dremel serving tree Google BigQuery AnalyIcs P.284 Chapter 9 Understanding Query ExecuIon $'4 $PMVNO*0Ͱಛ ఆྻͷσʔλ͕Ұ෦ฦͬ ͯ͘Δ ྻΛॱ൪ʹಡΈߦ Λऔಘɻ8)&3&۟ͳ ͲΛݟͯඞཁͳߦͷΈ ʹߜΓϝϞϦͰอ࣋ ֤TIBSE͔ΒσʔλΛू ɻྫ͑ιʔτ-*.*5 ͷߜΓࠐΈͳͲ͢Δ ूͨ݁͠Ռ ΛDBMMFSʹฦ͢ ࢄ ू
#JH2VFSZͷ͍͢͝ॴ • ΧϥϜܕ*0ɺ42-ͷׂ౷࣏ – Ͱ͜Εɺ.11తʹ͘͠ͳ͍ • ͡Ό͋ɺ#JH2VFSZͷԿ͕͍͔͢͝ – (PPHMFͷͰ͔͍Πϯϑϥ
ׂͱ֖ͳ͍ŋŋŋ
͜ΜͳΫιΫΤϦͰඵɺ̐ඵͩ
,"*;&/QMBUGPSN*OD Ͱͷ͍Ͳ͜Ζ
Ϣʔεέʔε • ΞΫηεϩάͷอଘௐࠪ • ΞϓϦέʔγϣϯϩάͷղੳ %BUBXBSF )PVTF • "#ςετͷ༗ҙࠩఆ
ΞΫηεϩά
ΞΫηεϩά #JH2VFSZ • /HJOYͷϩάΛqVFOUQMVHJOCJHRVFSZͰ ૹΓଓ͚Δ – &&Ͱ҉߸Խ͞ΕͯΔΑ • Կ͔༻͕͋ͬͨΒ42-Ͱղੳ –
%BJMZ8FFLMZ.POUIMZ17 – ϓϩμΫγϣϯͷσόοά
qVFOUQMVHJOCJHRVFSZ • CZUBHPNPSJT͞ΜɺZVHVJ͞Μଞ • ઌ͔Β,"*;&/QMBUGPSN*OD͕ϝ ϯςφʹ – ࣮࣭ɺԶ QBUDIFTXFMDPNF Ͱ͢
ΞϓϦέʔγϣϯͷϩάղੳ
ϩάΛඈ͢ • 3BJMT͔ΒUEMPHHFSSVCZͰqVFOUE • qVFOUEQMVHJOCJHRVFSZͰ#2ʹඈ͢
ϩάΛඈ͢ܖػ • ϦΫΤετຖ – "QQMJDBUJPO$POUSPMMFS – ϩάΠϯϢʔβͷଐੑΛඈ͢ˠ%"6."6ͷ ࢉग़ʹ • Ϟσϧͷঢ়ଶมߋ࣌
– "DUJWF3FDPSE0CTFSWFS – ϞσϧຖʹదͳଐੑΛݟસͬͯඈ͢ – #JH2VFSZෳࡶͳ42-Ͱී௨ʹԠ͢Δ㱺ϓ ϩμΫτϚωʔδϟ͕ؾܰʹ42-ॻ͍ͯΔ
ਖ਼نԽ͋·Γ͠ͳ͍ • ελʔεΩʔϚ – %8)ͷఆ൪ͷϞσϦϯά • ϑΝΫτςʔϒϧŋŋŋϩά • ࣍ݩςʔϒϧŋŋŋϚελʔσʔλ ސ٬໊ͱ͔
– ਖ਼نԽ͠ͳ͍ͷ͕ηΦϦʔ
"#ςετ༗ҙࠩఆ • "#ςετͷαʔϏεͳͷͰ͆ • ৄࡉൿີ • SFRTFDͱ͔qVUFOEͰૹͬͯΔ ͚ͲͬͪΌΒ͞ – ˞SFRTFDͷ)551SFRVFTUqVFOUE͕όοϑΝϦϯά͢ΔͷͰ
#JH2VFSZͷ"1*ίʔϧͣͬͱগͳ͍
֎෦πʔϧͱͷଓ • ΤΫηϧ – #JH2VFSZ$POOFDUPSGPS&YDFMCZ(PPHMF – ϐϘοτੳʹ • %0.0 #*
– FYQFSJNFOUBMͳ#JH2VFSZΠϯλϑΣʔε ͋ͬͨ – 5BCMFBVϝδϟʔͲ͜ΖରԠ࢝͠ΊͯΔ
໘ͳͱ͜Ζ • qVFOUEQMVHJOCJHRVFSZ͕εΩʔϚϑΝΠϧΛཁٻ ͢Δ – ͕͔ͩ͠͠IBLPCFSB͞Μ͕QBUDIΛॻ͍ͯ͘Εͨ – W͔ΒGFUDI@TDIFNBػೳ͕͑ΔΑ • ࣍ݩςʔϒϧͷߋ৽
– 61%"5&Ͱ͖ͳ͍ͷͰ – ؒͱ͔ʹҰճফͯ͠࡞ΔɺΈ͍ͨͳ – 1SFTUPΈ͍ͨʹҧ͏σʔλιʔεΛ+0*/Ͱ͖ͨΓ͢Δͱخ ͍͠ͷ͕ͩŋŋŋ
࢛ํࢁͦͷ • 42-ͱ͍ͬͯඪ४42-͡Όͳ͍Α – 3&(&91@."5$) ͱ͔3&(&91@&953"$5 ͱ͔+40/ ͱ ͔501 ͱ͔
• ʮͲ͏ͤϑϧεΩϟϯͯ͠Δ͠ʯͱ͍͏લఏʹཱͭͱΑ ͍ – -&'5 '03."5@65$@64&$ UJNF BTEBZ (3061#:EBZͱ͔ – 3&(&91@&953"$5 UJUMF S aX BTGSBHNFOU(3061#: GSBHNFOU03%&3#:GSBHNFOU@DPVOUEFTDͱ͔ – αϒΫΤϦ7JFX
࢛ํࢁͦͷ • 61%"5&%&-&5&ͳ͍ – ཁΒͳ͍ΧϥϜʹOVMM • ΧϥϜܕ͔ͩΒOVMMͳΒ༰ྔ৯Θͳ͍ – εΩʔϚՃ؆୯ • ߋ৽جຊআͯ͠࡞Γ͠
࢛ํࢁͦͷ • (PPHMF"OBMZUJDT #JH2VFSZศརͦ͏ – ("ͷੜϩάΛ#JH2VFSZͰղੳͰ͖ΔΦϓγϣϯ – ͨͩ͠("ͷ༗ྉαʔϏε • Ͱ͔͍σʔλͷΠϯϙʔτ
– (PPHMF%BUB4UPSFʹஔ͍͔ͯΒΠϯϙʔτ͢Δͱߴ • 5BCMF%FDPSBUPST – σʔλͷ࣌ؒൣғΛࢦఆͯ͠ΫΤϦɻεΩϟϯରͷσʔλ͕খ͘͞ͳ ΔͷͰΫΤϦඅ༻ΛઅͰ͖Δ • +0*/੍ݶ.#ੲͷ – +0*/&"$)Λ͏ͱ.BQ3FEVDFͷTIV⒐FΈ͍ͨͳॲཧͰڊ େͳ+0*/ ԯYԯͱ͔ŋŋŋ ͯ͘͠ΕΔΑ
·ͱΊ • #JH2VFSZϑϧεΩϟϯͰͰ͔͍σʔλͷ 42-͕ඵͳαʔϏε • ΫιΫΤϦྗۀͰॲཧͪ͠Ό͏ΧοίΠΠ • ׂ౷࣏ (PPHMFͷ%$نͰ֖ͳ͍ ฒྻॲཧܥ
• όονɺϩάղੳͳΜ͔ʹ͑·͢ • ࢲ(PPHMFࣾͷճ͠ऀͰ͍͟͝·ͤΜ
5IBOLT ֆCZ͋ΘΏ͖