Slide 1

Slide 1 text

)JSPNV/BLBNVSBQFSGUPLZP  --.0QTͷύϑΥʔϚϯεΛࢧ͑Δٕज़

Slide 2

Slide 2 text

)JSPNV/BLBNVSB )JSPNV /BLBNVSB QPSJO "*.-0QT&OHJOFFS*OUFSFTUJOH JO*OGPSNBUJPO3FUSJFWBM

Slide 3

Slide 3 text

-BZFS9ͷ--.0QT

Slide 4

Slide 4 text

-BZFS9͸ݱࡏ"*"HFOUΛΰϦΰϦ ਐΊ͍ͯΔ https://layerx.co.jp/news/20250401/

Slide 5

Slide 5 text

--.0QT͸ॏཁج൫ ϓϩϯϓτόʔδϣϯ؅ཧ --.࣮ߦ࣌ͷτϨʔεͳͲͷΦϒβʔόϏϦςΟ Ϟσϧ͝ͱͷਫ਼౓ݕূ ධՁσʔληοτ؅ཧ ࣮ݧͷ؅ཧ

Slide 6

Slide 6 text

-BOHGVTFΠϯϑϥߏ੒ w Ϋϥ΢υ൛ͱηϧϑϗετ൛͕͋Δ w Ϋϥ΢υ൛͸೔ຊϦʔδϣϯ͕ͳ͘ɺσʔλ؅ཧͷ؍఺͔ΒηϧϑϗετΛબ୒ w σʔλετΞͱͯ͠1PTUHSF42- 4 $MJDL)PVTF Λ༻͍Δ

Slide 7

Slide 7 text

$MJDL)PVTFͱ͸ Φʔϓϯιʔεͷ෼ੳ޲͚ 0-"1 ྻࢦ޲σʔλϕʔε -BOHGVTFτϨʔε݁Ռ౳ͷ֨ೲઌͱͯ͠ར༻ ॻ͖ࠐ·Εͨσʔλ͸ϒϩοΫετϨʔδͰอ؅͞ΕΔ "84ͷ৔߹͸΍&'4ͳͲ ࠓճ͸&'4Λ࠾༻ ෳ਺αʔόʹΑΔΫϥελߏ੒ʹରԠ

Slide 8

Slide 8 text

ΞʔΩςΫνϟ -BOHGVTF "-#ܦ༝ͷ&$4PO'BSHUFB ୯Ұͷ&$44FSWJDFɺ"VUP4DBMJOH༗ޮԽ $MJDL)PVTF /-#ܦ༝ͷ&$4PO'BSHUFB αʔό͝ͱʹݸผͷ&$44FSWJDFΛ࡞੒ ಺෦௨৴͸ϩʔυόϥϯαΛڬ·ͣ௚઀௨৴

Slide 9

Slide 9 text

໰୊ͱվળ

Slide 10

Slide 10 text

ແࣄՔಇʂͱࢥͬͨΒʜ • ຖ೔ͷΑ͏ʹλεΫ͕ෆ҆ఆͳঢ়ଶʹ • Langfuse ͕τϨʔεΛه࿥Ͱ͖ͳ͔ͬͨͱΤϥʔΛు͘ • Max attempts reached for * record. Dropping record. • େྔͷHTTPλΠϜΞ΢τ • ClickhouseWriter.writeToClickhouse Error: Timeout error.

Slide 11

Slide 11 text

$16.FNPSZ͸·ͩ༨༟͕͋Δ

Slide 12

Slide 12 text

"*͸ωοτϫʔΫͷ໰୊ͩͱݴ͍ுͬͯΔ ωοτϫʔΫͷ໰୊Ͱ͠ΐ͏ʂʂʂ ͔͠͠ɺ֤λΠϜΞ΢τઃఆΛ֬ೝͯ͠΋ɺ໰୊͸ͳͦ͞͏ɻ ͦ΋ͦ΋T͔͚ͯ΋τϨʔεʹॻ͖ࠐΊͳ͍%#͕͓͔͍͠ɻ

Slide 13

Slide 13 text

&'4ͷ໰୊Λൃݟ w 5ISPVHIQVUVUJMJ[BUJPO͕ৗʹߴ͍͜ͱ͕ൃ֮

Slide 14

Slide 14 text

&'45ISPVHIQVUNPEFʹ͍ͭͯ w 5ISPVHIQVUVUJMJ[BUJPO͕ৗʹߴ͍͜ͱ͕ൃ֮ • EFS ʹ͸εϧʔϓοτϞʔυ͕3छྨ͋Γɺཁ݅ʹ߹Θͤͯબ୒Մೳ • Elastic: ར༻ঢ়گʹ߹Θͤͯࣗಈతʹεέʔϧ • Bursting: ετϨʔδ࢖༻ྔʹൺྫͯ͠εϧʔϓοτ΋૿͑Δ • Provisioned: ࢦఆͨ͠εϧʔϓοτྔΛݻఆͰ֬อ • ֘౰ͷ EFS ͸ Bursting ʹͳ͍ͬͯͨ • ࢖͍࢝Ίͨ͹͔ΓͰ࢖༻ྔ͸ 3~4GiB ΄Ͳ • ετϨʔδ 1GiB ͋ͨΓ 50KiBps ͷεϧʔϓοτ࿮ → 200KiB/s ΄Ͳ͔͠ͳ͍

Slide 15

Slide 15 text

&'45ISPVHIQVUNPEFͷมߋ • Bursting → Elastic ΁มߋͯ͠ঢ়گ͕վળͨ͠ • AWS ίϯιʔϧͷॳظ஋͸ Elastic • Terraformaws provider ͷॳظ஋͸ Bursting ͳ͜ͱΛݟམͱ͍ͯͨ͠ (ຌϛε)

Slide 16

Slide 16 text

$MJDL)PVTF%FFQ%JWF

Slide 17

Slide 17 text

$MJDL)PVTFͷύϑΥʔϚϯεΛࢧ͑Δٕज़ w τϨʔεͷॻ͖ࠐΈͰΤϥʔ͕ൃੜ͍ͯͨͨ͠ΊɺͦͷลͷڍಈΛௐࠪ͠·ͨ͠ɻ

Slide 18

Slide 18 text

$MJDL)PVTFͷύϑΥʔϚϯεΛࢧ͑Δٕज़  • InsertΛड͚ΔͱɺPartͱ͍͏୯ҐͰ σʔλΛ֨ೲ͢Δɻ • ҰؾʹInsert͢ΔͷͰ͸ͳ͘ɺҰ౓ Bufferʹ֨ೲ͢Δ͜ͱͰɺલ΋ͬͯ σʔλΛιʔτͯ֨͠ೲ͢Δɻ

Slide 19

Slide 19 text

$MJDL)PVTFͷύϑΥʔϚϯεΛࢧ͑Δٕज़  • PartΛ࡞Δࡍʹ͸σʔλΛιʔτ͠ɺΧϥ Ϝʹ෼͚ͯΠϯσοΫε৘ใͱڞʹPartͱ ͯ͠อଘ • ιʔτ͢Δ͜ͱʹΑΓɺΠϯσοΫε৘ใ ͔ΒͲͷϑΝΠϧʹඞཁͳσʔλ͕֨ೲ͞ Ε͍ͯΔ͔͕ܭࢉ͠΍͘͢ͳ͍ͬͯΔɻ

Slide 20

Slide 20 text

$MJDL)PVTFͷύϑΥʔϚϯεΛࢧ͑Δٕज़  Compress columnsͰ͸ɺgranuleͱ͍͏୯ҐʹσʔλΛ෼͚ɺprimary.idxͱ͍͏ϑΝΠϧʹ Ͳͷൣғͷσʔλ͕͋Δ͔Λอଘ͓ͯ͘͜͠ͱͰɺߴ଎ͳσʔλΞΫηεΛ࣮ݱ͍ͯ͠Δɻ

Slide 21

Slide 21 text

Mark͸ΧϥϜ͝ͱʹ࡞ΒΕอଘͨ͠granuleͷ৔ॴΛḷΓ΍͘͢͢Δ $MJDL)PVTFͷύϑΥʔϚϯεΛࢧ͑Δٕज़ 

Slide 22

Slide 22 text

$MJDL)PVTFͷύϑΥʔϚϯεΛࢧ͑Δٕज़  ϨϓϦέʔγϣϯ࣌ʹ͸࣍ͷσʔλΛૹ৴͢Δඞཁ͕͋Γ·͢ɻ w ΧϥϜσʔλϑΝΠϧ DPMVNO@OBNFCJOܗࣜͷѹॖ͞Εͨσʔλ w ΠϯσοΫεϑΝΠϧ QSJNBSZJEYͳͲͷϓϥΠϚϦΩʔΠϯσοΫε w ϚʔΫϑΝΠϧ DPMVNO@OBNFNSLͳͲͷߦҐஔϚʔΧʔ w ϝλσʔλϑΝΠϧ DIFDLTVNTUYU DPMVNOTUYUͳͲͷύʔπهड़৘ใ

Slide 23

Slide 23 text

$MJDL)PVTFͷύϑΥʔϚϯεΛࢧ͑Δٕज़  1BSUTͷϚʔδ΋ఆظతʹൃੜ͠·͢ɻ ϑΝΠϧγεςϜ΋͜ΕΛ૝ఆͯ͠ε ϧʔϓοτΛ֬อ͢Δඞཁ͕͋ͬͨɻ

Slide 24

Slide 24 text

$MJDL)PVTFͷύϑΥʔϚϯεΛࢧ͑Δٕज़  • ClickHouseͰ͸ϨϓϦέʔγϣϯɺϚʔδͱ͍ͬͨඇಉظॲཧ͕ൃੜ͠·͢ɻ • ϨϓϦέʔγϣϯ࣌ʹ͸ɺ͜ͷPartsΛHTTPܦ༝ͰϨϓϦέʔγϣϯ͢Δͨ ΊɺωοτϫʔΫεϧʔϓοτ΋ؾΛ͚ͭΔඞཁ͕͋Δɻ • ࠓճͷ৔߹͸ωοτϫʔΫͷλΠϜΞ΢τΑΓɺϑΝΠϧγεςϜͷλΠϜ Ξ΢τ͕௕͘ઃఆ͞Ε͍ͯͨͷ͕ࠜຊͷ໰୊ʹؾ͖ͮʹ͍͘ݪҼͰͨ͠ɻ

Slide 25

Slide 25 text

·ͱΊ

Slide 26

Slide 26 text

"*ʹฉ͚ͩ͘Ͱ͸Θ͔Βͳ͍ࠜຊݪҼ͸༨༟Ͱଘࡏ͢Δ ύϑΥʔϚϯε΁ͷ஌ݟɺΠϯϑϥ஌ࣝɺΞϧΰϦζϜͷ஌ࣝ͸Ҿ͖ଓ͖ඞ ཁɻֶΜͰ͍͖·͠ΐ͏ʂʂʂʂ

Slide 27

Slide 27 text

"*࣌୅Ͱ΋%FFQ%JWF͢Δ͜ͱ͸Ձ஋ ཪଆͰಈ͍͍ͯΔॲཧΛ۩ମతʹ஌Δ͜ͱͰɺύϑΥʔϚϯεɺ҆ఆੑΛ্͛Δͱ ͖ʹͲ͜ʹ໨Λ͚ͭΕ͹ྑ͍ͷ͔ͷௐ͕ࠪඇৗʹ͠΍͘͢ͳͬͨɻ ϩά΍ϝτϦΫε͚ͩΛݟͯରԠΛ૝૾͢ΔͷͰ͸ͳ͘ɺ࣮ࡍʹཪଆΛཧղ͢Δ͜ ͱͰɺ֬৴Λ࣋ͬͨࠜຊղܾ͕Ͱ͖ΔΑ͏ʹͳͬͨɻ

Slide 28

Slide 28 text

ϒϩάʹ΋ͯ͠·͢ʂʂ tech.layerx.co.jp/entry/deep-dive-clickhouse

Slide 29

Slide 29 text

)JSPNV/BLBNVSBQFSGUPLZP  --.0QTͷύϑΥʔϚϯεΛࢧ͑Δٕज़ͱ ݱ৔Ͱ࣮ફͨ͠վળ