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
大きなデータと戦う技術 / fighting-large-data
Search
yuuki takezawa
October 13, 2018
Technology
3
600
大きなデータと戦う技術 / fighting-large-data
明日の開発カンファレンス 2018秋
yuuki takezawa
October 13, 2018
Tweet
Share
More Decks by yuuki takezawa
See All by yuuki takezawa
PHPでアクターモデルを活用したSagaパターンの実践法 / php-saga-pattern-with-actor-model
ytake
0
1.5k
PHP ステートレス VS ステートフル 状態管理と並行性 / php-stateless-stateful
ytake
0
150
PHPでアクターモデルを理解・体験しよう / Understand and experience the actor model in PHP
ytake
2
510
再考 アクターモデル/ reconsider actor model
ytake
0
1.2k
GoとアクターモデルでES+CQRSを実践! / proto_actor_es_cqrs
ytake
1
460
Phluxorでアクターモデルを 理解・体験しよう / toolkit-for-flexible-actor-models-in-php-phluxor
ytake
1
290
オブジェクトのおしゃべり大失敗 メッセージングアンチパターン集 / messaging anti-pattern collection
ytake
2
1.1k
DRE/SREのプラクティス融合によるクラウドネイティブなデータ基盤作り / dre_sre
ytake
0
830
技術的負債と向き合う取り組みでよかったもの / positive_efforts_to_tackle_technical_debt
ytake
10
3.9k
Other Decks in Technology
See All in Technology
ガバクラのAWS長期継続割引 ~次の4/1に慌てないために~
hamijay_cloud
1
600
250510 StepFunctionのテスト自動化始めました vol.1
east_takumi
1
160
コスト最適重視でAurora PostgreSQLのログ分析基盤を作ってみた #jawsug_tokyo
non97
2
890
AIにおけるソフトウェアテスト_ver1.00
fumisuke
1
360
AIによるコードレビューで開発体験を向上させよう!
moongift
PRO
0
410
2025-04-14 Data & Analytics 井戸端会議 Multi tenant log platform with Iceberg
kamijin_fanta
1
180
Oracle Cloud Infrastructure:2025年4月度サービス・アップデート
oracle4engineer
PRO
0
400
C++26アップデート 2025-03
faithandbrave
0
1.2k
PagerDuty×ポストモーテムで築く障害対応文化/Building a culture of incident response with PagerDuty and postmortems
aeonpeople
3
570
Compose におけるパスワード自動入力とパスワード保存
tonionagauzzi
0
200
Gateway H2 モジュールで スマートホーム入門
minoruinachi
0
140
白金鉱業Meetup_Vol.18_AIエージェント時代のUI/UX設計
brainpadpr
1
290
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
41
2.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
33k
Done Done
chrislema
184
16k
Agile that works and the tools we love
rasmusluckow
329
21k
Building an army of robots
kneath
305
45k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
How STYLIGHT went responsive
nonsquared
100
5.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Transcript
େ͖ͳσʔλͱઓ͏ٕज़ yuuki takezawa asucon 2018ळ
Profile • ᖒ ༗و / ytake • גࣜձࣾΞΠελΠϧ CTO •
PHP, Hack, Go, Scala • Apache Hadoop, Apache Spark, Apache Kafka • twitter https://twitter.com/ex_takezawa • facebook https://www.facebook.com/yuuki.takezawa • github https://github.com/ytake
None
Agenda • ΞϓϦέʔγϣϯͱσʔλઃܭ • ղܾ͢ΔͨΊʹ
ΞϓϦέʔγϣϯͱσʔλઃܭ
ΞϓϦέʔγϣϯͷσʔλʹ͍ͭͯ • WebΞϓϦέʔγϣϯͳͲΛࢧ͑Δ RDBMS • IoTͳͲʹද͞ΕΔେنͳσʔλ
ΞϓϦέʔγϣϯͷΛࢧ͖͑ΕΔʁ • ఆ֎ͷΛ͛Δ WebΞϓϦέʔγϣϯ ఆظతͳσʔλϕʔεϦϑΝΫλϦϯάɺ ΞϓϦέʔγϣϯͷϦϑΝΫλϦϯά ͕࣮ࢪͰ͖Δ͔Ͳ͏͔
ΞϓϦέʔγϣϯͷΛࢧ͖͑ΕΔʁ • ϋʔυΣΞɾΞϓϦέʔγϣϯো ΞϓϦέʔγϣϯʹ߹ΘͤͯΫϥυ ͔ɺΦϯϓϨΛબ͢Δ
খ͞ͳνʔϜͷ߹
࠷ॳͷΞϓϦέʔγϣϯ • σʔλϕʔεઃܭ + Active Record etc ϑϨʔϜϫʔΫͰߏங͞ΕΔ ΞϓϦέʔγϣϯ •
গਓͷ։ൃऀͰߏ͞ΕΔ։ൃ৫
ෳνʔϜͷ
ΞϓϦέʔγϣϯͷ • ૿͑ΔΞϓϦέʔγϣϯػೳ • ։ൃνʔϜͷ૿һ εΩϧ༷ʑ
ΞϓϦέʔγϣϯͷ • Ϩίʔυ૿Ճɾ࣮ίʔυ૿ՃʹΑΔ ύϑΥʔϚϯεͷԼ ϥΠϒϥϦͰൃߦ͞ΕΔSQLʹ͍ͭͯ ཧղ͍ͯ͠Δ͔Ͳ͏͔ όΠφϦΛσʔλϕʔεʹ֨ೲʂʁ
ΞϓϦέʔγϣϯͱσʔλϕʔε • खܰʹ͑Δ͔Β͏ Ͱͳٙ͘Λ࣋ͭ ൃߦ͞ΕΔSQLݱࡏͷ ΞϓϦέʔγϣϯنʹ߹͍ͬͯΔ͔Ͳ͏͔ • ϋʔυΣΞ૿ڧͰΓΔ ͕ޙճ͠ʹͳΔ͜ͱ
ΞϓϦέʔγϣϯͷͱσʔλϕʔε • σʔλऔಘ؆ུԽͷͨΊͷ σʔλϕʔεઃܭ • ΞΫηεϩάͳͲͷσʔλΛ֨ೲ ཁҙ
େنνʔϜͷ
ߋͳΔΞϓϦέʔγϣϯͷ • ૿͑ଓ͚ΔΞϓϦέʔγϣϯػೳ • ։ൃνʔϜͷڊେԽ ෳͷνʔϜߏͱ ෳͷεςʔΫϗϧμ
ΞϓϦέʔγϣϯͷ • Ϩίʔυ૿Ճɾ࣮ίʔυ૿ՃʹΑΔ ͞ΒͳΔύϑΥʔϚϯεԼ • ͋ͪͪ͜Ͱى͜Γ࢝ΊΔো
ϦϦʔεΛ༏ઌͤ͞Αʂ
ฐ • ϦϦʔε༏ઌͷͨΊɺ ܧ͗͠ͷΞϓϦέʔγϣϯ • εςʔΫϗϧμ૿Ճʹ͏ ΞϓϦέʔγϣϯͷෳࡶԽ • খதنͷΞϓϦέʔγϣϯ࣌ͷ ઃܭͱ࣮༝དྷͷෆ۩߹͕૿Ճ
σʔλઃܭ༝དྷͷ • େྔσʔλͷϑϧεΩϟϯ • INDEXෆͷͨΊͷύϑΥʔϚϯεԼ • γϯϓϧͳߏނͷػೳՃ࣌ͷ ΫΤϦෳࡶԽ
ղܾ͢ΔͨΊʹ
ෳࡶ͞ͱͷઓ͍
ΞϓϦέʔγϣϯͷྨ • ॻ͖ࠐΈ͕ଟͷΞϓϦέʔγϣϯ • ಡΈࠐΈ͕ଟͷΞϓϦέʔγϣϯ ඞͣͲͪΒ͔ʹྨ͞ΕΔ
྆ํ͋Γ·͚͢Ͳɾɾʁ
ΞϓϦέʔγϣϯͷ୯Ґ • ҰͭͷΞϓϦέʔγϣϯʹ ͨ͘͞Μͷػೳ͕٧·͍ͬͯΔέʔε ػೳҰͭͣͭΛղͯ͠ߟ͑Δ
ॻ͖ࠐΈଟͷΞϓϦέʔγϣϯ • ॻ͖ࠐΈʹڧ͘ɺ εέʔϧ͕༰қͳσʔλϕʔε Cassandra, Dynamodb, MongoDB • ػೳ୯ҐͰߟ͑Δ ܾࡁܥͳΒRDBMSซ༻ͳͲ
ಡΈࠐΈଟͷΞϓϦέʔγϣϯ • RDBMSͷΈͰे • LIKEݕࡧͳͲElasticsearch, Solr
ॻ͖ࠐΈͱಡΈࠐΈͷ౷߹ • ͲͪΒ͔͚ͩͰΖ͏ͱ͠ͳ͍ࣄҰͭ • Message Brokerซ༻ʹΑΔࢄॲཧ Apache Kafka, RabbitMQ Amazon
SQS, Amazon Kinesis(Firehose)
CQRS "A few myths about CQRS". Ouarzy's Blog. http://www.ouarzy.com/2016/10/02/a-few-myths-about-cqrs/
ࢀর
࣮ྫ
େྔσʔλͷΞϓϩʔν
େྔσʔλͷΞϓϩʔν Ϣʔβʔͷ࣌ܥྻߦಈϩά͕ QIQSELBGLBܦ༝ͰૹΒΕͯ͘Δ
େྔσʔλͷΞϓϩʔν "QBDIF,BGLB "QBDIF;PPLFFQFS QBSUJUJPO ݱࡏԯ͘Β͍ ΞϓϦέʔγϣϯͷোɾऔΓ͜΅͠ͳ͠
େྔσʔλͷΞϓϩʔν σʔλϕʔεΛ݁߹ͯ͠ϏδωεϩδοΫٵऩ QVTI௨ࢦࣔͳͲΠϕϯτΛૹ৴ ଞαʔϏε͕SBCCJUNRΛ͍ͬͯΔͨΊ
େྔσʔλͷΞϓϩʔν ,BGLB$POOFDUʹΑΔసૹΛซ༻
େྔσʔλͷΞϓϩʔν $BTTBOESB $MVTUFS ͪ͜Βԯͪΐͬͱ͘Β͍ োͳ͠ɾίϯύΫγϣϯఆظ࣮ߦͰ τϥϒϧͳ͠
ूܭܥσʔλͱͷઓ͍
ΞΫηεϩάͳͲͷσʔλͷ׆༻ • ΞΫηεϩάͳͲͷղܾํ๏ • ΞϓϦέʔγϣϯͰఏڙ͞ΕΔػೳ ϩάΛར༻͢ΔϨίϝϯσʔγϣϯ ੳػೳ
ϩάσʔλͷΞϓϩʔν • ΄ͱΜͲաڈͷσʔλͷूܭͰ ΄΅ෆม • ूܭޙʹ ଞͷσʔλͱֻ͚߹ΘͤΔͳͲ
ϩάσʔλͷΞϓϩʔν • RDBMSͰूܭ ୯७ͳεϨʔϒͱ͓ͯ͘͠ࣄ ेԯҎ্ͷσʔλͰແཧ͠ͳ͍ • ूܭςʔϒϧͱΞϓϦέʔγϣϯ༻ͷ ςʔϒϧซ༻͠ͳ͍
ϩάσʔλͷΞϓϩʔν • HDFSͰूܭ RDBMS͔ΒApache Sqoopɺ Apache SparkͳͲͰసૹ • ूܭॲཧApache SparkͳͲͰߦ͍ɺ
ଞͷσʔλϕʔεͱ݁߹͠ɺ֨ೲ
࣮ྫ
ϩάσʔλͷΞϓϩʔν
ϩάσʔλͷΞϓϩʔν ूܭରͷ σʔλϕʔεɾςʔϒϧΛసૹ
ϩάσʔλͷΞϓϩʔν )%'43%#.4ͷσʔλ Λอ
ϩάσʔλͷΞϓϩʔν )%'4ʹ͋Δσʔλɺ ଞͷ3%#.4্ͷσʔλΛ݁߹
ϩάσʔλͷΞϓϩʔν ूܭॲཧޙ࠶ͼ)%'4ͳͲʹ ֨ೲ͢͠FUD
ूܭσʔλͱϦΞϧλΠϜσʔλͷΞϓϩʔν • ूܭ݁ՌΛ֨ೲͨ͠σʔλετϨʔδʴ ετϦʔϜॲཧͷΈ߹Θͤ • WebΞϓϦέʔγϣϯͰ ूܭߦΘͳ͍
KappaΞʔΩςΫνϟ
KappaΞʔΩςΫνϟ
࣮ྫ
ϩάσʔλͷΞϓϩʔν ͦͷ2
ϩάσʔλͷΞϓϩʔν ͦͷ2 ༷ʑͳΞϓϦέʔγϣϯ͔Β σʔλૹ৴
ϩάσʔλͷΞϓϩʔν ͦͷ2 "QBDIF,BGLB͕ શͯͷσʔλΛड৴
ϩάσʔλͷΞϓϩʔν ͦͷ2 ,BGLB 4QBSL4USFBNJOH ΞϓϦέʔγϣϯ͔Βૹ৴͞Εͨσʔλͱɺ 3%#.4ʹ֨ೲ͞ΕͨσʔλΛ݁߹͠ɺ ूܭɾूΛߦ͏
ϩάσʔλͷΞϓϩʔν ͦͷ2 ूܭɾू͞ΕͨσʔλΛɺ ಡΈࠐΈͰར༻͢ΔΞϓϦέʔγϣϯʹ ߹Θͤͯอ $BTTBOESBͱ4QBSL4USFBNJOHͷΈͰ ೖग़ྗΛߦ͏έʔε
ϩάσʔλͷΞϓϩʔν ͦͷ2 ूܭɾू͞Εͨσʔλͷ͏ͪ ༷ʑͳՕॴͰར༻͞ΕΔͷɺ)%'4 ࠶ܭࢉɺোൃੜ࣌ʹ෮چͤ͞ΔͳͲ
ϩάσʔλͷΞϓϩʔν ͦͷ2 ΞϓϦέʔγϣϯଆ͔Β $BTTBOESBͷΈʹ͍߹ΘͤΛߦ͏
·ͱΊ
·ͱΊ • نʹ߹Θͤͨσʔλઃܭ ఆظతͳσʔλϕʔεϦϑΝΫλϦϯά • దࡐదॴΛݟۃΊΔٕज़ • ΞϓϦέʔγϣϯͱઓ͏৺