Upgrade to Pro — share decks privately, control downloads, hide ads and more …

作らない分析基板のススメ/DWH For Startup With YAGNI

作らない分析基板のススメ/DWH For Startup With YAGNI

- スタートアップにおけるデータウェアハウス
- データウェアハウス設計について

Masatoshi Shimada

October 01, 2018
Tweet

More Decks by Masatoshi Shimada

Other Decks in Technology

Transcript

  1. ϨγϐಈըϝσΟΞ
    ʰ%&-*4),*5$)&/ʱΛࢧ͑Δ
    ࡞Βͳ͍෼ੳج൫ͷεεϝ
    ౡాխ೥

    View Slide

  2. ࣗݾ঺հ
    w ౡాխ೥!TNENUT
    w σʔλ΢ΣΞϋ΢εΞʔΩςΫτ
    4DBMBc1ZUIPOc(PMBOHc+BWBc%%%

    w גࣜձࣾΤϒϦʔॴଐ
    w %&-*4),*5$)&/σʔλ෼ੳܥશൠ୲౰
    ओʹ෼ੳج൫ɺ഑৴໘࠷దԽͳͲΛ୲౰

    View Slide

  3. ΞϓϦϦϦʔε
    μ΢ϯϩʔυɿສ
    Ϩγϐ਺ɿສ݅Ҏ্
    ݄ؒಈը࠶ੜ਺ɿԯສճҎ্
    "QQ4UPSF#&450'
    (PPHMF1MBZϕετΦϒ
    ೥ࠃ಺ΞϓϦμ΢ϯϩʔυୈ̏Ґ
    ʢ̍Ґ-*/&ɺ̎Ґ:BIPP+"1"/˞ඇήʔϜɹ"QQ"OOJFௐ΂ʣ
    ɾຖ೔৽ணϨγϐಈը͕഑৴͞ΕΔ
    ɹɾྉཧϨγϐಈըʢௐཧݙཱखॱʣ
    ɹɾ޿ࠂओλΠΞοϓಈը
    <13>%&-*4),*5$)&/ͷ঺հʢ͔ΜͨΜʹʣ
    3

    View Slide

  4. ΞδΣϯμʢ֓ཁʣ
    ࠓ೔͸໿೥൒ʹ౉Γӡ༻ͨ͠%&-*4),*5$)&/ͷ
    ෼ੳج൫͕ͲͷΑ͏ʹ࡞ΒΕɺར༻͞Ε͍ͯΔ͔ʹ͍ͭͯ
    ʰ࡞Βͳ͍෼ੳج൫ͷεεϝʱͱ͍͏λΠτϧͰ͓࿩ͤͯ͠͞௖͖·͢ɻ

    View Slide

  5. ΞδΣϯμ
    w ελʔτΞοϓʹ͓͚Δσʔλ΢ΣΞϋ΢ε
    w σʔλ΢ΣΞϋ΢εઃܭʹ͍ͭͯ
    w ·ͱΊ

    View Slide

  6. ελʔτΞοϓʹ͓͚Δ
    σʔλ΢ΣΞϋ΢ε

    View Slide

  7. ελʔΞοϓاۀ಺ͷࣄ৘
    w গਓ਺ͰΞϓϦ಺,1*Λ͢΂ͯूܭ͢Δඞཁ͕͋Δ
    σʔλΤϯδχΞʢ໊ʣɺσʔλΞφϦετʢ໊ʣ
    σʔλΤϯδχΞΞφϦετʹࢪࡦՄࢹԽͷूܭۀ຿͕ूத
    w ࣮ࢪࡁΈͷࢪࡦʢ"#ςετ౳ʣͷ༗ޮੑ൑அΛଈ࠲ʹߦ͍͍ͨ
    શͯͷࢪࡦͷ෼ੳ͸ʢ޻਺తʹʣࣄ্࣮ෆՄೳ
    ඞવతʹબ୒ͱूத͕ൃੜ͢Δ͜ͱʹͳΔ
    w ΞϓϦ಺σʔλ෼ੳ΁ͷཁٻ͸ແݶେʹ๲ΒΉ
    ύʔΩϯιϯͷ๏ଇʢ΍Γ͍ͨ͜ͱ͸ແݶେʣ

    View Slide

  8. σʔλ෼ੳΛඞཁͱ͢Δओͳϖϧιφ૾
    ϓϩμΫτΦʔφʔ
    σΟϨΫλʔΤϯδχΞʢࢪࡦ୲౰ʣ
    σʔλΞφϦετ
    σʔλαΠΤϯςΟετ
    σʔλΤϯδχΞ
    ػցֶशΤϯδχΞ

    View Slide

  9. ελʔτΞοϓʹ͓͚Δ%8)ͱ͸ᶃ
    wجຊతʹࣗྗͰࢪࡦͷ෼ੳ͕Մೳͳσʔλج൫Ͱ͋Δ͜ͱ
    wඞཁͱ͢Δೳྗ͸42-ɺ#*πʔϧɺදܭࢉπʔϧ
    w೉͍͠σʔλ෼ੳ͸σʔλΞφϦετσʔλΤϯδχΞɹɹɹɹ
    ʹґཔ͢Δ
    wʰΤΫηϧ͕ਆπʔϧʱͰ͋ͬͯ΋໰୊ͳ͍ɻɹɹɹɹɹɹɹɹ
    ʢࢪࡦͷ༗ޮੑ൑அ͕Ͱ͖Ε͹ྑ͍ʣ
    ϓϩμΫτΦʔφʔσΟϨΫλʔΤϯδχΞʢࢪࡦ୲౰ʣ
    ʹͱͬͯͷσʔλ΢ΣΞϋ΢εͱ͸ɺ

    View Slide

  10. ελʔτΞοϓʹ͓͚Δ%8)ͱ͸ᶄ
    σʔλΞφϦετσʔλαΠΤϯςΟετ
    ʹͱͬͯͷσʔλ΢ΣΞϋ΢εͱ͸ɺ
    wΤϯδχΞϦϯάͷٕज़ελοΫ͕ෆཁͰ͋Δ͜ͱɹɹɹɹɹɹɹ
    δϣϒεέδϡʔϥ΍෼ࢄσʔλॲཧϑϨʔϜϫʔΫΛɹɹɹɹɹ
    ಁաతʹͯ͠Πϯϑϥ΍࣮ߦج൫Λۃྗҙࣝͤ͞ͳ͍
    wجຊతʹ42-ͷΈͰ෼ੳՄೳͰ͋Δ͜ͱɹɹɹɹɹɹɹɹ
    ଟ૬ߏ଄ͷதؒςʔϒϧ͸ෆཁͰ͋Δ͜ͱ͕๬·͍͠
    wΠϯϑϥΛҙࣝ͠ͳ͍Ͱ෼ੳՄೳͱͳΔ͜ͱɹɹɹɹɹɹɹɹɹɹ
    3FETIJGU5SFBTVSF%BUBͳͲΛࢦ͢

    View Slide

  11. w؅ཧը໘ΛಠࣗͰ։ൃ͢Δඞཁ͕ແ͍͜ͱɹɹɹɹɹɹɹɹɹɹɹɹ
    3FEBTI.FUBCBTF౳Λར༻͠ʰπʔϧʹཁٻΛ߹ΘͤΔʱɹɹ
    πʔϧͰຬͨͤͳ͍ཁٻ͸΍ΉΛಘͣࣗલͰߏங͢Δ
    w)BEPPQΫϥελͳͲͷΠϯϑϥߏங͢Δඞཁ͕ແ͍͜ͱɹɹɹ
    5SFBTVSF%BUBɺ%BUBCSJDLTͳͲͷ4BB4Λར༻͢Δɹɹɹɹɹ
    ػցֶशΤϯδϯ΋ϏϧτΠϯ͞Εͨ෺ΛબͿ
    wΠϯϑϥ΍ϩάج൫ΛՄೳͳݶΓ4BB4#BB4ʹ೚ͤΔ
    ελʔτΞοϓʹ͓͚Δ%8)ͱ͸ᶅ
    σʔλΤϯδχΞػցֶशΤϯδχΞ
    ʹͱͬͯͷσʔλ΢ΣΞϋ΢εͱ͸ɺ

    View Slide

  12. ελʔτΞοϓʹ͓͚Δ%8)ͱ͸
    ݶΒΕͨϦιʔεͷதͰग़དྷΔ͜ͱ͸ݶΒΕ͍ͯΔɻ
    ϦʔϯελʔτΞοϓᐌ͘ɺʰՄೳͳݶΓখ͘͞࡞Δɻʱ
    ͢ͳΘͪɺʰग़དྷΔ͚ͩ࡞Βͳ͍ɻʱ
    ՄೳͳݶΓɾָʹ࡞Γ
    ՄೳͳݶΓɾখ͘͞࡞Γ
    ՄೳͳݶΓɾૣ͘࢖͏

    View Slide

  13. ʰग़དྷΔ͚ͩ࡞Βͳ͍͜ͱʱ͕ɺ
    Ϧιʔεͷޮ཰ԽΛଅ͠ҙࢥܾఆΛՃ଎͢Δɻ
    ɾଵଦɿ࠷খݶͷίετͰ෼ੳՄೳʹ
    ɾ୹ؾɿͲͷΑ͏ͳσʔλ΋ଈ࣌෼ੳՄೳʹ
    ɾၗຫɿ୭Ͱ΋෼ੳج൫Λࣗ༝ʹ࢖͑ΔΑ͏ʹ
    ϓϩάϥϚʔࡾେඒಙ
    ελʔτΞοϓʹ͓͚Δ%8)ͱ͸

    View Slide

  14. ʰग़དྷΔ͚ͩ࡞Βͳ͍ʱ
    ɹσʔλ΢ΣΞϋ΢εઃܭʹ͍ͭͯ

    View Slide

  15. σʔλ΢ΣΞϋ΢εུ֓ਤ
    "1*αʔό
    ޿ࠂޮՌଌఆ
    Πϕϯτܭଌ
    ՄࢹԽ
    3&45"1*
    %8)

    View Slide

  16. 4JOHMF4PVSDFPG5SVUI
    The state of your whole application is stored in an object tree within a single store. by redux.
    w ΞϓϦέʔγϣϯͷঢ়ଶ͸Ұݩ؅ཧ͞ΕΔ΂͖Ͱ
    ͋Δ
    w Ϗοάσʔλʹ͓͍ͯ΋ɺҰͭͷ৔ॴʹू໿ͯ͠ݕ
    ࡧՄೳͱ͢Δ΂͖Ͱ͋Δ
    w ݱ࣮తʹ͸اۀ಺ͷσʔλ͸༷ʑͳܗͰଘࡏ͓ͯ͠
    Γ݁߹͢Δ͜ͱ͸೉͍͠

    View Slide

  17. σʔλ΢ΣΞϋ΢εͷઃܭࢥ૝
    wશ৬੹͕ࣗྗͰσʔλΛऔΓग़ͤΔΑ͏ɺ෼ੳͷෑډΛప
    ఈతʹԼ͛ͯฏқͳ42-Ͱ෼ੳՄೳͱ͢Δ
    wҰͭͷσʔλιʔεͰݕࡧՄೳͱ͢Δʢ4405ʣ
    w༧ΊͻͳܗͱͳΔ,1*ͷՄࢹԽάϥϑΛେྔʹ࡞Γɺɹɹɹɹɹ
    ࢀߟͱͳΔ42-͕େྔʹ͋Δঢ়ଶʹ͢Δɹɹɹɹɹɹɹɹɹɹ
    ඇΤϯδχΞͷϝϯόʔʹσʔλ෼ੳΛ֮͑ͯ΋Β͏
    αϯϓϧίʔυίʔυεχϖοτ͸ڧྗͳڭҭࡐྉ

    View Slide

  18. σʔλ΢ΣΞϋ΢ε಺ͷσʔλϑϩʔ
    σʔλΛ্ྲྀ͔ΒԼྲྀʹ͔͚ͯ୯ํ޲σʔλϑϩʔͰৠཹ͍ͯ͠Δ
    ɹ্ྲྀʢ45%
    ͸ΑΓੜϩάʹ͍ۙ࠶ར༻Մೳͳσʔλ
    Լྲྀ 5%3FETIJGU
    ͸ूܭࡁΈσʔλ΍ػցֶशͷ݁ՌͳͲ
    ɹͨͩ͠Ұ෦ྫ֎΋͋ΔʢػցֶशϞσϧͳͲ͕֘౰ʣ
    3&45

    View Slide

  19. ֤ετϨʔδͷ໾ׂͱΫΤϦํ๏
    ΞϓϦ಺શσʔλΛू໿ͯ͠όοΫΞοϓ͞ΕΔσʔλϨΠΫ
    େྔσʔλͰൃߦස౓ͷ௿͍ΫΤϦʹݶఆͯ͠ɺ
    "UIFOBͰΫΤϦՄೳʹ͍ͯ͠Δʢ+40/1BSRVFUʣ
    ݪଇͱͯ͠4405ͱͳΔΑ͏ʹઃܭ͞Εͨσʔλ΢ΣΞϋ΢ε
    ੜϩάͱ࠶ར༻Մೳͳཻ౓ͱͳΔதؒςʔϒϧ͕อ؅͞ΕΔ
    ʢ3FEBTI͔Β͸XJUI۟Λଟ༻͢ΔΫΤϦ͕࣮ߦ͞ΕΔʣ
    4QBSLΛར༻ͨ͠ෳࡶͳूܭࡁΈςʔϒϧ͕อ؅͞ΕΔσʔλϚʔτ
    42-͚ͩͰ͸͘Έ্͛Δ͜ͱ͕೉͍͠ूܭ݁Ռ͕อଘ͞ΕΔ
    ʢ3FEBTI͔Β͸جຊతʹ+0*/͕ແ͍ΫΤϦ͕ൃߦ͞ΕΔʣ
    4
    5SFBTVSF%BUB
    3FETIJGU

    View Slide

  20. ࡞Βͳ͍෼ੳج൫Λ࣮ݱ͢ΔͨΊʹ
    ԿΛ࡞͔ͬͨ
    ΞϓϦ಺,1*ΛՄࢹԽ͢ΔμογϡϘʔυ42-ɺ1ZUIPO
    ΫΤϦ਺ɿ
    μογϡϘʔυ਺ɿ
    தؒςʔϒϧΛੜ੒͢Δδϣϒͷ؅ཧɺதؒςʔϒϧੜ੒༻ͷ42-
    EJHϑΝΠϧ਺ɿ
    42-਺ϑΝΠϧ਺ɿ
    4QBSLΛૢ࡞͢ΔϊʔτϒοΫɺ4DBMBɺ1ZUIPOɺ.-ɺ42-
    3FEBTI͔Β͸جຊతʹ+0*/͕ແ͍ΫΤϦ͕ൃߦ͞ΕΔ
    ίϚϯυ਺ɿ
    3FEBTI

    View Slide

  21. ࡞Βͳ͍෼ੳج൫Λ࣮ݱ͢ΔͨΊʹ
    ԿΛ࡞͔ͬͨ
    ʰग़དྷΔ͚ͩ࡞Βͳ͍ʱσʔλ΢ΣΞϋ΢εͰ࡞ΒΕͨ෺͸ɺ
    3FEBTIEJHEBHEBUBCSJDLTͷ఺ʹू໿͞ΕΔ
    ɾଵଦɿ࠷খݶͷίετͰ෼ੳՄೳʹ
    ɾ୹ؾɿͲͷΑ͏ͳσʔλ΋ଈ࣌෼ੳՄೳʹ
    ɾၗຫɿ୭Ͱ΋෼ੳج൫Λࣗ༝ʹ࢖͑ΔΑ͏ʹ
    ϓϩάϥϚʔࡾେඒಙ

    View Slide

  22. ·ͱΊ

    View Slide

  23. w ࠷খͷ޻਺Ͱ࠷େͷޮՌΛൃش͢ΔͨΊʹ͸ɺɹɹɹɹɹɹɹɹɹ
    ඞཁͱͳΔ࡞ۀΛݶఆͯ͠࡞Βͳ͍બ୒ͱ࡞ΔूதΛૂ͏
    w σʔλͷҰݩ؅ཧʢ4405ʣΛຬͨ͢͜ͱΛ࠷ॏཁͱҙࣝ͠ɺɹɹɹɹ
    σʔλ΢ΣΞϋ΢ε಺ͷσʔλϑϩʔΛઃܭ͢Δ
    w %8)ΞʔΩςΫτͱͯ͠͸ɺϓϩμΫτʹؔΘΔϝϯόʔશһ͕ɹ
    σʔλΛݩʹͨ͠ࢪࡦΛߟ͑ͯࣗ૸Ͱ͖Δ؀ڥΛఏڙ͢Δ
    ·ͱΊ

    View Slide

  24. ಈըΛ௨ͯ͡

    ੈքΛ΋ͬͱָ͘͠

    ΋ͬͱॆ࣮ͨ͠ຖ೔ʹ
    ΤϯδχΞ
    શ৬छੵۃ࠾༻தʂ
    https://corp.every.tv/recruits

    View Slide

  25. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide