-æ£ç¢ºã«ã¯äœã«ã€ããŠè©±ããŸããïŒããªããã£ããªéžæãšçµåã«ã€ããŠã§ã¯ãããŸãã-ããªãã®ã»ãšãã©ã¯ãã§ã«ãããã«ã€ããŠç¥ã£ãŠãããšæããŸãã
ããŒã¿ããŒã¹ã®å®éã®äœ¿çšæ³ãçŽé¢ããå¯èœæ§ã®ããåé¡ãããã³ããã¯ãšã³ãéçºè ãšããŠç¥ã£ãŠããå¿ èŠã®ããããšã«ã€ããŠèª¬æããŸããããããã®æ å ±ããããŸããããã«å 容ããããŸãããããã®åãã€ã³ãã®è©³çŽ°ãçŽæ¥å®å šã«ç¥ãå¿ èŠã¯ãããŸãããããã®ãã€ã³ããååšããããšãç¥ãå¿ èŠããããŸãã
ãŸããæ§é ãæ§ç¯ããŠããŒã¿ãä¿åããã¿ã¹ã¯ããããšãã«ãéžæããããŒã¿ã¢ãã«ãšãã®ä¿åæ¹æ³ãç解ã§ããããã«ãã©ã®ãããªåé¡ã解決ãããããç¥ãå¿ èŠããããŸãããŸãã¯ãåé¡ããããããŒã¿ããŒã¹ãããŠã³ããŠãããé ãããŸãã¯ããŒã¿ã«åé¡ããããäžæŽåãããããšãããã£ããšããŸãã次ã«ãã©ããæãããç解ããå¿ èŠããããŸããã€ãŸããã©ã®æŠå¿µãååšããã©ã¡ãã®åŽããåé¡ã«åãçµãããç¥ãå¿ èŠããããŸãã
ãŸããããŒã¿ã«ã€ããŠèª¬æããŸãããšã«ããããã¯äœã§ããïŒç§ãã¡ã®åšãã«ã¯ããããã®äºå®ãããããã®æ å ±ããããŸãããããããäœããã®åœ¢ã§åéããããŸã§ããããã¯ç§ãã¡ã«ãšã£ãŠåœ¹ã«ç«ããªããã®ã§ããããããåéãæ§ç¯ãä¿åããŸãããããŠãããŒã¿ãšåŒã°ããã®ã¯ãã®æ ŒçŽãããæ§é ã§ããããããæ ŒçŽããã®ã¯ããŒã¿ããŒã¹ãšåŒã°ããŸãããããããã®ããŒã¿ãã©ããã§åéãããŠããéããåºæ¬çã«ç§ãã¡ã«ãšã£ãŠã圹ã«ç«ã¡ãŸããããããã£ãŠãããŒã¿ããŒã¹ã®äžã«ã¬ã€ã€ãŒïŒDBMSïŒããããŸããããã«ãããããŒã¿ãååŸãä¿åãåæããããšãã§ããŸãããããã£ãŠãåãåã£ãããŒã¿ãããŠãŒã¶ãŒã«ãã§ã«è¡šç€ºã§ããæ å ±ã«å€æããŸãããŠãŒã¶ãŒã¯ç¥èãåãåãããããé©çšããŸãã
æ å ±ãšäºå®ãæ§é åããããããã©ã®ãããªåœ¢åŒã®ããŒã¿ã§ãã©ã®ã¢ãã«ã§ä¿åãããã«ã€ããŠèª¬æããŸãããããŠãå€ãã®ãŠãŒã¶ãŒãåæã«ããŒã¿ã«ã¢ã¯ã»ã¹ããŠæ£ããçµæãåŸãããšãã§ããããã«ããããååŸããæ¹æ³ãããã«ãããé©çšããæçµçãªç¥èãçå®ã§æ£ãããã®ã«ãªããŸãã
ãŸãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã«ã€ããŠèª¬æããŸãããªã¬ãŒã·ã§ãã«ã¢ãã«ã¯å€ãã®äººã«éŠŽæã¿ããããšæããŸããããã¯ãããŒãã«ã®ã¿ã€ããšããŒãã«éã®é¢ä¿ã®ã¢ãã«ã§ãããŠãŒã¶ãŒéã§ããŒã¿ãã¡ãã»ãŒãžãæžã蟌ãã¡ãã»ã³ãžã£ãŒããããšæ³åããŠã¿ãŠãã ãããããããã¹ãŠããå¹ ã®åºã1ã€ã®å€§ããªããªã¥ãŒã ã®ããããŒãã«ã«æžã蟌ãããšãã§ããŸããããã«ã¯ã誰ããã誰ã«ã誰ã«ãã©ã®ãã£ããã§ãå€ãã®å埩ããŒã¿ããããŸãããããŠãããããã¹ãŠãããŸããŸãªããŒãã«ã«æžã蟌ãããšãã§ããŸããã€ãŸããããŒã¿ãæ£èŠåããããã3çªç®ã®éåžžã®åœ¢åŒã«ããããšãã§ããŸãã
ã¹ã©ã€ãã«ã¯ã¡ã¢ãšãªã³ã¯ããããŸããããã§ã¯ããã¹ãŠã®æŠå¿µã«ã€ããŠæ·±ãæãäžããããšã¯ããŸããããªãã¿ã®ãªãæè¡çãªæŠå¿µã«ã€ããŠã¯è©±ããªãããã«ããŸããããããç§ãèšãããšã¯ãã¹ãŠã¹ã©ã€ãããŒãã«ãããŸããæ£èŠåãå«ãããªãã¡ã¬ã³ã¹ããããŸãããã®æŠå¿µã«æ £ããŠããªãå Žåã¯ããããèªãããšãã§ããŸãã
äžè¬çã«ãæ£èŠåãšã¯ãããŒã¿ãããæ§é åããããšãç®çãšããŠãããŒã¿ãããŒãã«ã«åå²ããããšã§ããããšãã°ããŠãŒã¶ãŒãã¡ãã»ã³ãžã£ãŒãã£ãããã¡ãã»ãŒãžã®ããŒãã«ãã§ããŸããããã®æ§é ã«ãããç§ãã¡ãç¥ã£ãŠãããŠãŒã¶ãŒããã£ããããã®ã¡ãã»ãŒãžãããã«èšé²ãããŸããã€ãŸããããŒã¿ã®æŽåæ§ãä¿èšŒããŸããç§ãã¡ã¯åžžã«å šäœåãåéã§ãããšããäºå®ãä¿èšŒããŸãããããåæã«ãããšãã°ãã¡ãã»ãŒãžããŒãã«ã«ã¯IDã®ã¿ãèå¥åã®ã¿ãæ ŒçŽããŸãããããã£ãŠãããŒã¿ããŒã¹ã®å šäœçãªãµã€ãºãçž®å°ããŠãããŒã¿ããŒã¹ãå°ããããŸãããããã£ãŠããã®ããŒã¿ããŒã¹ãžã®æžã蟌ã¿ã容æã«ãªããŸããåžžã«å€ãã®ããŒãã«ã«æžã蟌ãå¿ èŠã¯ãããŸããã IDã¹ãã·ã£ãªã¹ããšäžç·ã«1ã€ã®ããŒãã«ã«æžã蟌ãã ãã§ãã
æ£èŠåã«ã€ããŠè©±ããšãéåžžã«ã°ã©ãã£ã«ã«ã§ãããããäžè¬ã«ã·ã¹ãã ã®ããžã§ã³ãå€§å¹ ã«ç°¡çŽ åãããã©ã®ããŒãã«éã«ã©ã®ãããªé¢ä¿ãããããããã«ããããŸãã
ã¡ãã»ã³ãžã£ãŒã«ã¡ãã»ãŒãžãæžã蟌ãã§ããŠããã®ãããªãŠãŒã¶ãŒããŸã ããªãå Žåã¯ãäœæããå¿ èŠããããããããŒã¿ãæžã蟌ããšãã®ãšã©ãŒã®æ°ãæžãããŸããããããæçµçãªå šäœåã§ããäžè¬çãªããŒã¿ã¯å®å šãªãŸãŸã§ãã
ããŒã¿ããŒã¹ã®ãµã€ãºãå°ããããããšã«ã€ããŠã¯ãã§ã«è¿°ã¹ãŸããããŠãŒã¶ãŒã«é¢ãããã¹ãŠã®ããŒã¿ãæ¯åã¡ãã»ãŒãžããŒãã«ã«æžã蟌ãå¿ èŠã¯ãããŸããããããã¡ã€ã«ã衚瀺ããã«ã¯ãUserããŒãã«ã«ç§»åããã ãã§ãã
ãŸããäŸåé¢ä¿ã«äžè²«æ§ããªãããšã«ã€ããŠãèŠåããŸããããããã¯ä»ã®ããŒãã«ã®IDãžã®åãªããªã³ã¯ã§ãããèå¥åã¯1ã€ã®ããŒãã«å ã®äžæã®å€ã§ããå¥ã®æ¹æ³ã§ã¯ããããã¯ãã©ã€ããªããŒãšåŒã°ãããããã®ãã©ã€ããªããŒãžã®ãªã³ã¯ãããå Žåãå¥ã®ããŒãã«å ã®ãªã³ã¯èªäœã¯å€éšããŒãšåŒã°ããŸãã
ãã®æ§é ã¯ãããŒã¿ã誀ã£ãŠåé€ããããšãããä¿è·ããŸããããšãã°ãã¡ãã»ãŒãžãããããããŠãŒã¶ãŒãåé€ããããšã¯ã§ããŸãããããã¯ãšãŠãå°ããã§ãããã»ãŒããã£ãããã§ãã
ç§ãã¡ã¯åªããæ§é ãäœãäžããããã«èŠããŸãããã¹ãŠãæ確ã§ããã¹ãŠãäŸåããŠããããã¹ãŠãäžå¯æ¬ ã§ããä»ã«äœãæ±ãå¿ èŠããããŸããïŒ
ç§ãã¡ãå®éã«ãããéçšããå€ãã®ãŠãŒã¶ãŒãããŠãããã«å¿ããŠå€ãã®ã¡ãã»ãŒãžããããšæ³åããŠã¿ãŸãããã圌ãã¯åžžã«äºãã«éä¿¡ããŸããã¡ãã»ãŒãžããŒãã«ã§äœãèµ·ãã£ãŠããã®ã§ããïŒããã¯çµ¶ããæé·ããŠããŸãããŸããããŒã¿ä»¥å€ãæ€çŽ¢ããã«ã¯ãåžžã«ãã¹ãŠã®ã¡ãã»ãŒãžã調ã¹ããã®ãŠãŒã¶ãŒããã®ãã®ãã©ããããã®ãã£ããã§ãââããã©ããã確èªããŠããã衚瀺ããå¿ èŠããããŸãã
åœç¶ããŠãŒã¶ãŒãå€ãã»ã©ãã¡ãã»ãŒãžãå€ããªããæ€çŽ¢ã¯ãšãªã«ãããæéãé·ããªããŸããããŒãã«å ã®ã¡ãã»ãŒãžããã°ããæ€çŽ¢ã§ãããœãªã¥ãŒã·ã§ã³ãå¿ èŠã§ãã
ãã®ãããªå Žåãã€ã³ããã¯ã¹ã¯æ€çŽ¢ãé«éåããããã«äœ¿çšãããŸããã€ã³ããã¯ã¹ãšã®æãåçŽãªé¢é£ä»ãã¯ãæ¬ã®å 容ã§ããæ¬ã®äžããæ å ±ãèŠã€ããå¿ èŠãããå Žåã¯ãæ¬ããããããç®æ¬¡ã«ç§»åããããšãã§ããŸããã€ã³ããã¯ã¹ã¯äžçš®ã®ç®æ¬¡ã§ãã
é»è©±åž³ã®è¯ãäŸããããŸããé»è©±ã§æåãã¯ãªãã¯ãããšããã®æåã§å§ãŸãå§ãåç §ãããšããã«ã¹ããŒãããŸããããŒã¿ããŒã¹ã€ã³ããã¯ã¹ã¯éåžžã«ãã䌌ãæ¹æ³ã§æ©èœããŸããã¡ãã»ãŒãžã®ããããŒãã«ãšããã®ããŒã¿ãååŸããæ¹æ³ãèŠãŠã¿ãŸãããã
ããŒã¿ã®åãæ±ãã«ã泚æãã ãããããŒãã«ã«ããè¡ã§ã¯ãªããäžè¬çã«ãã€ã³ããã¯ã¹ã¯ãå®è¡ããã¯ãšãªã«åºã¥ããŠäœæãããŸãã
äž»ã«ãã£ããã§ãªã¯ãšã¹ããè¡ããã€ãŸãããã®ãã£ããã«å«ãŸããã¡ãã»ãŒãžã確èªãããšããŸãããã£ããåã«æ£ç¢ºã«ã€ã³ããã¯ã¹ãäœæããŸããããããŒã¿ããŒã¹ã€ã³ããã¯ã¹ã¯å¥ã®æ§é ã§ããããŒãã«ã¯ããããç¬ç«ããŠããŸããã€ãŸãããã€ã§ãã€ã³ããã¯ã¹ãåé€ããŠåæ§ç¯ã§ããããŒãã«ã¯ããã«æ©ãŸãããããšã¯ãããŸããã
ããã§ã¯ãéžæããå 容ã確èªããåã«ã€ã³ããã¯ã¹ãé 眮ããŸãããã£ãã11ã«ã¯ãã§ã«ããã€ãã®ã¡ãã»ãŒãžãããããããšã³ããªã®æ°ããã§ã«ãããã«æžå°ããŠããå¥ã®æ§é ããããŸããDBMSã¯ããã®å°ããªãã£ããããŒãã«ã§ã¯ã€ãã¯æ€çŽ¢ãæäŸããŸããããã¯ã©ã®ããã«è¡ãããŸããïŒåœç¶ãæ€çŽ¢ã¯åçŽãªæ€çŽ¢ã§ã¯ãããŸãããå€ãã®é«éæ€çŽ¢ã¢ã«ãŽãªãºã ããããŸããã»ãšãã©ã®ããŒã¿ããŒã¹ã§ããã©ã«ãã§äœ¿çšãããŠããæãäžè¬çãªã¢ã«ãŽãªãºã ã®1ã€ãèŠãŠãããŸãããã©ã³ã¹ã®åããæšã§ãã
ããã¯ã©ã®ããã«æ©èœããŸããïŒãã£ããçªå·ããããããã¯æŽæ°å€ã§ãããããªãŒã¯æ¬¡ã®ååã«åŸã£ãŠæ§ç¯ãããŸãïŒããŒãã®å·ŠåŽã«ããå€ãå°ãªãã»ã©ãããŒãã®å³åŽã«ããå€ãå€ããªããŸãããã®æ§é ã¯ç§ãã¡ã«äœãäžããŸããïŒãã®ããªãŒã®æŠèŠã·ãŒããèŠããšãäžéšã«ãããã¹ãŠã®å€ã䞊ã¹ãããŠããŸããããã¯ãçç£æ§ã®åäžã«å€§ããªãã©ã¹ã§ããçç±ããèŠãããŸãã
ããšãã°ãå€ãæ¢ããŠããŸãã 1ã€ã®æå³ãæ€çŽ¢ããã®ã¯éåžžã«ç°¡åã§ãããã®å€ã倧ãããå°ãããã«å¿ããŠãããªãŒãäžã«ç§»åããããå·Šãå³ã«ç§»åããŸãã
ããšãã°ãç¯å²ãèŠã€ãããå Žåã¯ããããã©ãã»ã©åçŽã§é«éã§ãããã調ã¹ãŸããå€ã«å°éããé åºä»ããããå€ã«æ²¿ã£ãŠãã§ã«èã®ãªã³ã¯ããã©ããæåŸã«ç§»åããŸãã
ãããšãŸã§ã®ç¯å²ãå®çŸ©ããå¿ èŠãããå Žåã¯ããŸã£ããåãããšãè¡ããŸããåæå€ãèŠã€ããŠããªãŒããªã³ã¯ããã©ã£ãŠæ倧å€ã«å°éããŸããç§ãã¡ã¯äžåºŠã ãæšãæ©ããããšãŠã䟿å©ã§ããšãŠãéãã§ãã
åæ§ã«ãæ倧å€ãšæå°å€ãæ€çŽ¢ããŸããå®å šã«å·Šãå®å šã«å³ã«æ©ããŸãã泚æãªã¹ãããéãããŸããã€ãŸãããã¹ãŠã®ãã£ãããé çªã«ååŸããå¿ èŠãããå Žåã¯ãæåã®ãã£ããã«å°éãããªãŒããå³ç«¯ã®å€ãŸã§ééãããšãé åºä»ããªã¹ããååŸãããŸãããã®ååã«ãããããŒã¿ããŒã¹ã¯ã€ã³ããã¯ã¹ããŒãã«ã§éžæããå¿ èŠã®ããè¡ãéåžžã«è¿ éã«æ€çŽ¢ããããããè¿ããŸãã
ããã§ç¥ã£ãŠããã¹ãéèŠãªããšã¯äœã§ããïŒãã£ãããæ§é ã®ããã«æããŸãã次ã«ããã®ãããªããªãŒã«åŸã£ãŠååãäœæããæ€çŽ¢ããŸãããªãããŸããããªããšæããŸããïŒåããšã«ããªãŒãäœæãããšãé床ãåäžããªãã®ã¯ãªãã§ããïŒ ïŒ...ïŒ
ç§ãã¡ã®éžæã¯æ¬åœã«ã¹ããŒãã¢ããããŸããããå€ã調ã¹ãå¿ èŠããããã³ã«ãã€ã³ããã¯ã¹ã«ç§»åããããã«å€èªäœãžã®ãªã³ã¯ãèŠã€ããŸããã€ã³ããã¯ã¹ã«ã¯éåžžãæååèªäœã§ã¯ãªããæååãžã®åç §ãæ£ç¢ºã«å«ãŸããŠããŸãããããŠãéžæã®ããã«ããã¯å®å šã«æ©èœããŸãããã ããããŒãã«ããŒã¿ãèšå®ããããããŒã¿ãæŽæ°ãŸãã¯åé€ããããããšããã«ãããããã¹ãŠã®ããªãŒãåæ§ç¯ããå¿ èŠããããŸãã
å®éãåé€ããŠãåæ§ç¯ã¯ãããŸãããããã®ããªãŒãæçåãããã ãã§ãå€ãã®ç©ºã®å€ãäœæãããŸãã空ã®å€ãæã€å·šå€§ãªããªãŒããããŸãããããããããã®ããªãŒãæ¯ååæ§ç¯ãããã®ã¯ãæŽæ°ãšäœæã«ãããã®ã§ãããã®çµæããã®ãã¹ãŠã®æ§é ã«å€§ããªãªãŒããŒããããçºçããŸãããŸããããŒã¿ããã°ãããã§ããããŠããŒã¿ããŒã¹ãé«éåãã代ããã«ãã¯ãšãªã®é床ãäœäžãããŸãã
ä»ã«ç¥ã£ãŠããã¹ãéèŠãªããšã¯äœã§ããïŒããŒã¿ããŒã¹ãæäœãããšãã¯ãããŒã¿ããŒã¹ã«ååšããã€ã³ããã¯ã¹ã調ã¹ãŠèªãã§ãã ãããåããŒã¿ããŒã¹ã«ã¯ç¬èªã®å®è£ ããããç¬èªã®ç°ãªãã€ã³ããã¯ã¹ãããããã§ããã¹ããŒãã¢ããããããã®ã€ã³ããã¯ã¹ããããæŽåæ§ã確ä¿ããããã®ã€ã³ããã¯ã¹ããããŸããæãåçŽãªãã®ã®1ã€ã¯ãäž»ããŒã ãã§ããããããŠããŒã¯ãªã€ã³ããã¯ã¹ã§ãããŸããããŒã¿ããŒã¹ã«é¢ããŠã¯ãããŒã¿ããŒã¹ãã©ã®ããã«æ©èœããããã©ã®ããã«æäœãããã確èªããŠãã ãããããã¯ãæé©ãªã¯ãšãªãäœæããã®ã«åœ¹ç«ã€çš®é¡ã®ç¥èã ããã§ãã
ããŒã¿ãæ¿å ¥ãããšãã«ã€ã³ããã¯ã¹ãç¶æãããªãŒããŒãããã«çæããå¿ èŠãããããšã«ã€ããŠèª¬æããŸãããã€ã³ããã¯ã¹ãäœæãããšããããã¯éåžžã«éžæçã§ãªããã°ãªããªããšããããšãå¿ããŸãããã©ãããæå³ã§ããïŒ
ãã®æšãèŠãŠã¿ãŸããããã€ã³ããã¯ã¹ãtruefalseã«èšå®ãããŠããå Žåãå·Šå³ã«2ã€ã®å·šå€§ãªæšçã衚瀺ãããããšãç解ããŠããŸãããããŠãç§ãã¡ã¯ããããããŒãã«ã®50ïŒ ãééããŸãããããã¯å®éã«ã¯ããŸãå¹ççã§ã¯ãããŸãããæãç°ãªãå€ãæã€åã«ã€ã³ããã¯ã¹ãäœæããã®ãæåã§ããããã«ãããéžæãã¹ããŒãã¢ããããŸãã
æçåã«ã€ããŠè¿°ã¹ãŸãããããŒã¿ãåé€ãããšãã¯ããããèŠããŠããå¿ èŠããããŸããã€ã³ããã¯ã¹ã«å«ãŸããããŒã¿ãé »ç¹ã«åé€ãããå Žåã¯ããããããã©ã°ããå¿ èŠãããããããç£èŠããå¿ èŠããããŸãããŸãã䜿çšããŠããåã§ã¯ãªãããã®ããŒã¿ã®äœ¿çšæ¹æ³ã«åºã¥ããŠã€ã³ããã¯ã¹ãäœæããŠããããšãç解ããããšãéèŠã§ãããŸããã€ã³ããã¯ã¹ãå«ãã¯ãšãªã¯æ éã«äœæããå¿ èŠããããŸãããã¡ããšãããšã¯ã©ãããæå³ã§ããïŒãªã¯ãšã¹ããäœæããŠããŒã¿ããŒã¹ã«éä¿¡ãããšãããŒã¿ããŒã¹ã«çŽæ¥éä¿¡ãããã®ã§ã¯ãªããã¯ãšãªã¹ã±ãžã¥ãŒã©ãšåŒã°ããç¹å®ã®ãœãããŠã§ã¢ã¬ã€ã€ãŒã«éä¿¡ãããŸãã
ã¹ã±ãžã¥ãŒã©ãŒã«ã¯ãæäœã³ã¹ããšãã®ã³ã¹ãã«é¢ããç¹å®ã®å¯Ÿå¿ããŒãã«ããããŸãã PostgreSQLã®äŸã«ã¯ãããŒã¿ãããŒãã«ã«é¢ããæ å ±ãåéããç¹å¥ãªæè¡ããŒãã«ããããŸãããã©ã³ããŒã¯ãã©ã®ã¯ãšãªããããã©ã®ããŒã¿ãpg_statããŒãã«ã«æ ŒçŽãããŠãããã確èªããŸããããã¯ãããŒãã«ã«ããããŒã¿ã®éãããŒãã«å ã®åãããŒãã«äžã®ã€ã³ããã¯ã¹ã«é¢ããäžè¬çãªæ å ±ãæ ŒçŽããåãªãããŒãã«ã§ããããã«åºã¥ããŠã圌ã¯ã¯ãšãªã®å®è¡èšç»ã調ã¹ãã¯ãšãªã«ãããèšç»ã«å¿ããŠæéãèšç®ããæé©ãªèšç»ãéžæããŸãã
ã¯ãšãªã®äºæž¬å®è¡æéã確èªããå Žåã¯ãExplainæäœã䜿çšã§ããŸããå®éã®å®è¡ãå¿ èŠãªå Žåã¯ãExplainanalyzeã䜿çšã§ããŸããéãã¯äœã§ããïŒç§ãèšã£ãããã«ãã¹ã±ãžã¥ãŒã©ãŒã¯æåã«åæäœã®æšå®æéã«åºã¥ããŠå®è¡æéãèšç®ããŸãããã®ãããå®éã®æéã¯ãã·ã³ãããŒã¿ã®æ§è³ªã«ãã£ãŠç°ãªãå ŽåããããŸãããããã£ãŠãå®éã®å®è¡ãå¿ èŠãªå Žåã¯ããã¡ããExplainanalyzeã䜿çšããããšããå§ãããŸãã
ãã®ã¹ã©ã€ãã§äŸãèŠãããšãã§ããŸããããã¯ãã€ã³ããã¯ã¹ãæã€åã«åºã¥ãã¯ãšãªãã¹ãã£ã³ã€ã³ããã¯ã¹ã䜿çšãããããŒãã«å šäœãå®å šã«ã¹ãã£ã³ããå Žåãããããšã瀺ããŠããŸããããã¯ãã€ã³ããã¯ã¹ã®éžææ§ãäœãããã©ã³ããŒãããŒãã«ã«å¯Ÿãããã«ã¹ãã£ã³ã¯ãšãªã®æ¹ãåçæ§ãé«ããšèããŠããå Žåã«çºçããŸãã
ã¡ãã»ã³ãžã£ãŒãããããã£ãããªã¹ãã«ãããšãã°ãã£ããåãæªèªã¡ãã»ãŒãžã®æ°ã衚瀺ããããšããŸãããã£ãããéããã³ã«ããã¹ãŠã®ãã£ããã®ãã¹ãŠã®ããŒã¿ãåèšç®ãããšãéåžžã«äžæ¡ç®ã«ãªããŸãã
ãã®ãããªããšããããŸã-éæ£èŠåãããã¯ã䜿çšãããæãããããªããŒã¿ã®ã³ããŒããŸãã¯å¿ èŠãªããŒã¿ã®äºåèšç®ã§ããããããããŒãã«ã«ä¿åããŸãã
ããã¯ããŠãŒã¶ãŒãšãã£ããã®é¢ä¿ãã©ã®ããã«èŠãããã瀺ããŠããŸããã€ãŸãããŠãŒã¶ãŒIDãšãã£ããIDã«å ããŠããã£ããåããã£ãããã°ãããã³æªèªã¡ãã»ãŒãžã®æ°ãç°¡åã«ä¿åããŸãããããã£ãŠãæ¯åããã¹ãŠã®ããŒãã«ãããŒãããŠéžæãè¡ããããããã¹ãŠãåèšç®ããå¿ èŠã¯ãããŸããã
éæ£èŠåã®ãã©ã¹ã¯äœã§ããïŒããŒã¿ãµã³ããªã³ã°ããã»ã¹ãã¹ããŒãã¢ããããŸããã€ãŸããç§ãã¡ã®éžæã¯å¯èœãªéãè¿ éã«è¡ããããŠãŒã¶ãŒã«å¯èœãªéãè¿ éã«åçãæäŸããŸãã
é£ããã®ã¯ãæ°ããããŒã¿ãè¿œå ãããã³ã«ãããããã¹ãŠã®åãåèšç®ããå¿ èŠãããããšã©ãŒãçºçããå¯èœæ§ãéåžžã«é«ãããšã§ããã€ãŸããéžæãã¯ããã«åçŽã«ãªããåžžã«åå ããå¿ èŠããªãå Žåãããªã¬ãŒãããã§ãã³ã°ãããåèšç®ããäœãå¿ããªãããã«ããå¿ èŠããããããæŽæ°ãšäœæã¯éåžžã«é¢åã«ãªããŸãã
ãããã£ãŠãéæ£èŠåã¯æ¬åœã«å¿ èŠãªå Žåã«ã®ã¿äœ¿çšããå¿ èŠããããŸãããããŠããã®ããžãã¯å šäœã«åŸã£ãã®ã§ãæåã«ããŒã¿ãæ£èŠåãããããã©ã®ããã«äœ¿çšãããã確èªããã€ã³ããã¯ã¹ã調æŽããå¿ èŠããããŸããããŸãæ©èœããŠããªããšæãããã¯ãšãªãããå Žåã¯ãéæ£èŠåããåã«Explainã確èªããŠãã ãããããããå®éã«ã©ã®ããã«å®è¡ãããããã¹ã±ãžã¥ãŒã©ãŒãã©ã®ããã«å®è¡ãããã調ã¹ãŠãã ããããããŠãã®æã ããããªãããã§ã«éæ£èŠåããŸã å¿ èŠã§ãããšããçµè«ã«éãããšããããªãã¯ãããããããšãã§ããŸãããããããã®ãããªæ £è¡ããããããŒã¿ã®éæ£èŠåã¯å®éã®ãããžã§ã¯ãã§ãã䜿çšãããŸãã
ããã«é²ãã§ã¿ãŸããããããŒã¿ãé©åã«æ§é åããããŒã¿ã¢ãã«ãéžæããåéãããã¹ãŠãéæ£èŠåããã€ã³ããã¯ã¹ãäœæãããšããŠããITã®äžçã§ã¯å€ãã®åé¡ãçºçããå¯èœæ§ããããŸãã
ãœãããŠã§ã¢ã«é害ãçºçããããé»æºãåããããããŒããŠã§ã¢ãŸãã¯ãããã¯ãŒã¯ã«é害ãçºçãããããå¯èœæ§ããããŸãã 2çªç®ã®ã¯ã©ã¹ã®åé¡ããããŸããå€ãã®ãŠãŒã¶ãŒãããŒã¿ããŒã¹ãåæã«äœ¿çšããŠããŸããåãããŒã¿ãåæã«æŽæ°ã§ããŸããç§ãã¡ã¯ããããã¹ãŠã®åé¡ã解決ã§ããªããã°ãªããŸããã
ãããäœã§ãããã®ç¹å®ã®äŸãèŠãŠã¿ãŸãããã
äŒè°å®€ãäºçŽããããŠãŒã¶ãŒã2人ãããšæ³åããŠã¿ãŠãã ããããŠãŒã¶ãŒ1ã¯ããã®æç¹ã§äŒè°å®€ã空ããŠããããšã確èªããäºçŽãéå§ããŸãã圌ã®ãŠã£ã³ããŠãéãã圌ã¯ç§ã®ååã®ã©ãã«é»è©±ããããèããŸãã圌ãèããŠããéããŠãŒã¶ãŒ2ã¯äŒè°å®€ã空ããŠããããšã確èªããèªåçšã®ç·šéãŠã£ã³ããŠãéããŸãã
ãã®çµæããŠãŒã¶ãŒ1ããã®ããŒã¿ãä¿åãããšãã圌ã¯å»ãããã¹ãŠãæ£åžžã§ãããšèããäŒè°å®€ãäºçŽãããŸããããããããã®æç¹ã§ããŠãŒã¶ãŒ2ãèªåã®ããŒã¿ãäžæžããããã£ããã«ãŒã ããŠãŒã¶ãŒ2ã«å²ãåœãŠãããŠããããšãå€æããŸãããããã¯ããŒã¿ç«¶åãšåŒã°ããŸãããããŠãç§ãã¡ã¯ãããã®å¯Ÿç«ã人ã ã«ç€ºããã©ãããããããããã解決ããããšãã§ããªããã°ãªããŸãããåé²é³ããã®ã¯ãã®å Žæã§ãã
ã©ããã£ãŠããã®ïŒãŠãŒã¶ãŒ1ãèããŠããéãäŒè°å®€ããã°ãããããã¯ããã ãã§ãã圌ãããŒã¿ãä¿åããå ŽåããŠãŒã¶ãŒ2ã«ãããèš±å¯ããŸããã圌ãããŒã¿ããªãªãŒã¹ããŠä¿åããªãã£ãå ŽåããŠãŒã¶ãŒ2ã¯äŒè°ãäºçŽã§ããŸããæ ç»ã®ãã±ãããè³Œå ¥ãããšãåæ§ã®åçã衚瀺ãããŸãããã±ããã®æ¯æãã«ã¯15åãäžããããŸãããã以å€ã®å Žåã¯ããã±ãããåãåã£ãŠæ¯æãããšãã§ããä»ã®äººã«åã³æäŸãããŸãã
ããã¯ãç§ãã¡ã®æ¥åãå®å šã«å®è¡ãããããšãä¿èšŒããããšãããã«éèŠã§ãããã瀺ãå¥ã®äŸã§ããéè¡å£åº§1ããå£åº§2ã«ééããããšããŸããçŸæç¹ã§ã¯3ã€ã®ãªãã¬ãŒã·ã§ã³ããããŸããååãªè³éãããããšã確èªããæåã®ã¢ã«ãŠã³ãããè³éãå·®ãåŒããŠã2çªç®ã®ã¢ã«ãŠã³ãã«é ããŸãããããã®ç¬éã®ããããã§ç§ã倱æããå ŽåãäœããããŸããããªãããšã¯æããã§ãã
ããšãã°ããã®æ®µéã§ããŒã¿ãèªã¿åãå¥ã®ãã©ã³ã¶ã¯ã·ã§ã³ãçºçããå Žåãã¢ã«ãŠã³ãã®è³éãäžè¶³ããä»ã®æäœãå®è¡ã§ããªããªããŸããããšãã°ã2çªç®ã®ç¬éã«åé¡ãçºçããå Žåã1ã€ã®ã¢ã«ãŠã³ããããéãåŒãåºããŸãããã2çªç®ã®ã¢ã«ãŠã³ãã«ã¯ãéãå ¥ããŸããã§ããããã®çµæãç§ã®éè¡å£åº§ããã¹ãŠã®ç§ã®å£åº§ãããããåæžãããããšãå€æããŸããããã®ãéã¯æ±ºããŠè¿éããããšã¯ã§ããŸããã
ãã®ãããªåé¡ã解決ããããã«ããã©ã³ã¶ã¯ã·ã§ã³ã®æŠå¿µããããŸããããã¯ã3ã€ã®æäœãã¹ãŠãåæã«ã¢ãããã¯ã«çµ±åçã«å®è¡ããããšã§ãã
ããŒã¿ããŒã¹ã¯ã©ã®ããã«ãããè¡ããŸããïŒããããã¹ãŠã®å€æŽãç¹å®ã®ãã°ã«æžã蟌ã¿ããã©ã³ã¶ã¯ã·ã§ã³ãã³ãããããããšãã«ã®ã¿é©çšããŸãããããã£ãŠãããããã¹ãŠã®æäœãå šäœãšããŠå®è¡ããããããŸã£ããå®è¡ãããªãããšãä¿èšŒããŸãã
ãã®æç¹ã§é害ãçºçããå Žåãæåã®ã¢ã«ãŠã³ããããéãå·®ãåŒãããããšã¯ãªãããããã£ãŠãããã倱ãããšã¯ãããŸããã
ãã©ã³ã¶ã¯ã·ã§ã³ã«ã¯4ã€ã®ããããã£ãããããããã«ã¯4ã€ã®èŠä»¶ããããŸãããããã¯ãã¢ãããã¯æ§ãäžè²«æ§ãåé¢ãããã³èä¹ æ§ã§ããããŒã¿ã®ååæ§ãäžè²«æ§ãåé¢ãããã³æ°žç¶æ§ã§ãããããã®ããããã£ã¯äœã§ããïŒ
- ã¢ãããã¯æ§ãŸãã¯ã¢ãããã¯æ§ã¯ãå®è¡ããŠããæäœãå®å šã«å®äºããéšåçã«å®è¡ãããªãããšãä¿èšŒããŸãããããã£ãŠãããŒã¿ããŒã¹å ã®ããŒã¿ã®å šäœçãªäžè²«æ§ãæäœã®ååŸã®äž¡æ¹ã«ãªãããã«ããŸãã
- Consistency â -, . (Integrity). - , , Integrity Error, : , . . â , .
, , , , . . .
- Isolation â , . . , .
- Durability â , , , , .
æç±ã«ã€ããŠããå°ã話ããŸãããããã©ã³ã¶ã¯ã·ã§ã³ã®åé¢ã¯éåžžã«é«äŸ¡ãªããããã£ã§ãããå€ãã®ãªãœãŒã¹ãããã«è²»ããããŸãããã®ãããããŒã¿ããŒã¹ã«ã¯ããã€ãã®åé¢ã¬ãã«ããããŸããåé¡ãäœã§ããããèŠãŠã¿ãŸããããããã«åºã¥ããŠãåé¡ã解決ããæ¹æ³ã«ã€ããŠã¯ãã§ã«èª¬æããŸãã
åé¡ã«ã¯ãæŽæ°ã®åªå€±ãããŒãã£ãªãŒããç¹°ãè¿ãäžå¯ã®ãªãŒãããŽãŒã¹ããªãŒãã®4ã€ã®äž»èŠãªã¯ã©ã¹ããããŸããããèŠãŠã¿ãŸãããã
倱ãããæŽæ°ã¯ããŠãŒã¶ãŒ1ãããŒã¿ãäžæžãããããã«ã€ããŠç¥ããªãå Žåã®ãã£ããã«ãŒã ã®äŸã®ãããªãã®ã§ããã€ãŸãããã®ãŠãŒã¶ãŒãå€æŽããããŒã¿ããããã¯ããªãã£ããããäžæžããããŸããã
ããŒãã£ãªãŒãã®åé¡ã¯ããŠãŒã¶ãŒãå¥ã®ãŠãŒã¶ãŒã«ããäžæçãªå€æŽã確èªãããšãã«çºçããŸããå€æŽã¯ãããŒã«ããã¯ããããåã«äžæçã«è¡ãããšãã§ããŸãã
ãã®å ŽåããŠãŒã¶ãŒ1ã¯ããŒã¿ããŒã¹ã«äœããæžã蟌ã¿ãŸãããåœæã®ãŠãŒã¶ãŒ2ã¯ãããããäœããèšç®ãããã®ããŒã¿ã«åºã¥ããŠåæãæ§ç¯ããŠããŸããããŸãããŠãŒã¶ãŒ1ã¯ãšã©ãŒãšäžæŽåãæ€åºãããã®ããŒã¿ãããŒã«ããã¯ããŠããŸãããããã£ãŠããŠãŒã¶ãŒ2ãæžãçããåæã¯ã圌ãèšç®ããããŒã¿ãããååšããªããããåœç©ã§ãããæ£ãããããŸããããŸãããã®åé¡ã解決ã§ããå¿ èŠããããŸãã
ç¹°ãè¿ãäžå¯èœãªèªã¿åããšã¯ã1ã€ã®é·ããã©ã³ã¶ã¯ã·ã§ã³ãæã€ãŠãŒã¶ãŒãããå Žåã§ãã圌ã¯ããŒã¿ããŒã¹ããããŒã¿ããã§ãããããã®æç¹ã§ãŠãŒã¶ãŒ2ã¯åãããŒã¿ã®äžéšãå€æŽããŸãã
ãã®å ŽåããŠãŒã¶ãŒ1ã¯èªåãæã£ãŠããããŒã¿ãžã®å€æŽããããã¯ããŠããªãããšãããããŸãããããŠã圌èªèº«ãããŒã¿ã®ã¹ãããã·ã§ãããåãåã£ããšããäºå®ã«ããããããã圌ãåãéžæãç¹°ãè¿ãèŠæ±ããããšãã圌ã¯ãããã®è¡ã§ç°ãªãå€ãååŸããããšãã§ããŸãããããã£ãŠãããã¯ç«¶åããããæžã蟌ãããŒã¿ã®äžäžèŽãæã¡ãŸãã
ãŠãŒã¶ãŒ2ãããŒã¿ãè¿œå ãŸãã¯åé€ããå Žåã«ããåæ§ã®åé¡ãçºçããå¯èœæ§ããããŸããã€ãŸãããŠãŒã¶ãŒ1ãèŠæ±ãè¡ããåãããŒã¿ã2åèŠæ±ããåŸãè¡ããã£ããæ¶ããŸããããã®å Žåããã©ã³ã¶ã¯ã·ã§ã³ã®ãã¬ãŒã ã¯ãŒã¯å ã§ãããããã©ãåŠçããããã©ã®ããã«åŠçããããç解ããããšã¯éåžžã«å°é£ã§ãã
ãããã®åé¡ã解決ããããã«ã4ã€ã®åé¢ã¬ãã«ããããŸããæåã®æäœã¬ãã«ã¯ãã³ããããããŠããªãèªã¿åãã§ããããã¯ãPostgreSQLãããã¯ãªããšèª¬æããŠãããã®ã§ããããŒã¿ã®èªã¿åããŸãã¯æžã蟌ã¿ãè¡ãå Žåãä»ã®ãŠãŒã¶ãŒã«ãããã®ããŒã¿ã®èªã¿åããŸãã¯æžã蟌ã¿ããããã¯ããŸãããå€æŽããããã¯ããŠããªãããšãããããŸããããããã®4ã€ã®åé¡ã¯ãã¹ãŠåŒãç¶ãçºçããå¯èœæ§ããããŸãããããããã®åé¢ã¬ãã«ã¯äœãé²ããŸããïŒããã«ãããããŒã¿ããŒã¹ã«å°çãããã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ã確å®ã«å®è¡ãããŸãã 2人ã®ãŠãŒã¶ãŒãåãããŒã¿ã§åæã«ã¯ãšãªã®å®è¡ãéå§ããå Žåããããã®ãã©ã³ã¶ã¯ã·ã§ã³ã¯äž¡æ¹ãšãé çªã«å®è¡ãããŸãã
ããã¯äœã«åœ¹ç«ã¡ãŸããïŒãã®åé¢ã¬ãã«ãå®éã«äœ¿çšãããããšã¯ãã£ãã«ãããŸããããããšãã°ã倧èŠæš¡ãªåæã¯ãšãªãããã2çªç®ã®ã¯ãšãªãèªã¿åã£ãŠãåæãã©ã®æ®µéã«ããããã©ã®ããŒã¿ããã§ã«èšé²ãããŠããããã©ã®ããŒã¿ãèšé²ãããŠããªããã確èªããå Žåã«åœ¹ç«ã¡ãŸãã次ã«ã2çªç®ã®èŠæ±ïŒãããã°ããããã°ããã§ãã¯çšïŒã¯ããã®åé¢ã¬ãã«ã§å®è¡ãããŸãããããŠã圌ã¯æåã®åæã¯ãšãªã®ãã¹ãŠã®å€æŽã確èªããŸããããã¯æçµçã«ããŒã«ããã¯ã§ããŸãããŸãã¯ããŒã«ããã¯ãããŸããããçŸæç¹ã§ã¯ã·ã¹ãã ã®ç¶æ ã確èªã§ããŸãã
ã³ãããæžã¿ã®èªã¿åããã³ãããæžã¿ããŒã¿ã®èªã¿åãããã®åé¢ã¬ãã«ã¯ãPostgreSQLãOracleãå«ãã»ãšãã©ã®ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã§ããã©ã«ãã§äœ¿çšãããŸããããŒãã£ããŒã¿ãèªã¿åããªãããã«ããŸããã€ãŸããå¥ã®ãã©ã³ã¶ã¯ã·ã§ã³ãæåã®ãã©ã³ã¶ã¯ã·ã§ã³ã®äžé段éãèŠãããšã¯ãããŸãããå©ç¹ã¯ãå°ãããŠçãã¯ãšãªã§éåžžã«ããŸãæ©èœããããšã§ããããŒã¿ã®äžéšãäžå®å šãªããŒã¿ã衚瀺ãããããšã¯æ±ºããŠãããŸãããããšãã°ãéšéå šäœã®çµŠäžãåŒãäžããå Žåãäžéšã®äººã ããåŒãäžããããææã¯ããããŸããã2çªç®ã®éšåã¯ã€ã³ããã¯ã¹ãªãã®çµŠäžã§åº§ã£ãŠããŸãããã®ãããªç¶æ³ãçºçããå Žåãã¢ããªã¹ããããã«ã移åãããã®ã¯åœç¶ã®ããšã§ãã
ãã®åé¢ã¬ãã«ã¯äœããä¿è·ããŸãããïŒéžæããããŒã¿ãå€æŽãããå¯èœæ§ããããšããäºå®ããä¿è·ãããã®ã§ã¯ãããŸãããå°ããªã¯ãšãªã®å Žåããã®åé¢ã¬ãã«ã§ååã§ããã倧èŠæš¡ã§é·ãã¯ãšãªãè€éãªåæã®å Žåã¯ããã¡ãããããŒãã«ãããã¯ããããè€éãªã¬ãã«ã䜿çšã§ããŸãã
ç¹°ãè¿ãå¯èœãªèªã¿åãåé¢ã¬ãã«ã¯ãç§ãã¡ãããªããšè©±ãåã£ãæåã®3ã€ã®åé¡ããä¿è·ããŸãããããšããã£ããã«ãŒã ãåé²é³ãããšãã«å€±ãããæŽæ°ãããŒãã£èªã¿åã-ã³ããããããŠããªãããŒã¿ã®èªã¿åãããããŠããã®ç¹°ãè¿ãäžå¯èœãªèªã¿åã-ä»ã®ãã©ã³ã¶ã¯ã·ã§ã³ã«ãã£ãŠæŽæ°ãããããŒã¿ã®èªã¿åãã
ããã¯ã©ã®ããã«æäŸãããŸããïŒããŒãã«ãããã¯ãããã€ãŸãéžæãããã¯ãããéžæããã©ã³ã¶ã¯ã·ã§ã³ã«åã蟌ããšãããŒã¿ã®ã¹ãããã·ã§ããã®ããã«èŠããŸãããŸããçŸæç¹ã§ã¯ããã®ããŒã¿ã®ã¹ãããã·ã§ããã䜿çšããŠããéã¯ãä»ã®ãŠãŒã¶ãŒã®å€æŽã¯ç¢ºèªãããŠããŸãããæ¬ ç¹ã¯ãããŒã¿ããããã¯ãããããããŒã¿ãåŠçã§ãã䞊åãªã¯ãšã¹ããå°ãªããªãããšã§ããããã¯éåžžã«éèŠãªåŽé¢ã§ãããããŠãäžè¬çã«ããªãããã»ã©å€ãã®åé¢ã¬ãã«ãããã®ã§ããïŒ
ã¬ãã«ãé«ãã»ã©ãããŒã¿ããŒã¹ã䞊è¡ããŠæäœã§ãããããã¯ãå€ããªãããŠãŒã¶ãŒãå°ãªããªããŸããåãã©ã³ã¶ã¯ã·ã§ã³ã«ã¯ãå€æŽã§ããªãããŒã¿ã®ç¹å®ã®ã¹ãããã·ã§ããã衚瀺ãããŸãããã ããæ°ããããŒã¿ã衚瀺ãããå ŽåããããŸãããããã£ãŠããã®åé¢ã¬ãã«ã§ã¯ãéžæã«é©ããæ°ããããŒã¿ã®åºçŸããç§ãã¡ãæãããšã¯ã§ããŸããã
ãã1ã€ã®åé¢ã¬ãã«ããããŸã-ã·ãªã¢ã«åãããã¯ãã°ãã°æ³šæãšåŒã°ããŸããããã¯ãããŒãã«ã®å®å šãªããŒã¿ããã¯ã§ããããŒãã«ãããã¯ããŠãããããããŒãã«ãžã®æžã蟌ã¿ãèš±å¯ããªãããããã¡ã³ãã èªã¿åããã€ãŸããè¿œå ãŸãã¯åé€ããããŒã¿ã®ã¿ã®èªã¿åãããç¯çŽã§ããŸãããããŠãç§ãã¡ã¯ç§ãã¡ã®èŠæ±ãç·åçã«æºãããŸãã
ããã¯ã粟床ãšããŒã¿ã®æŽåæ§ãéèŠã§ããè€éã§å€§èŠæš¡ãªåæã¯ãšãªã«éåžžã«åœ¹ç«ã¡ãŸããããæç¹ã§ãŠãŒã¶ãŒããŒã¿ãèªã¿åã£ãåŸãæ°ããçµ±èšãå¥ã®ããŒãã«ã«è¡šç€ºãããåæããŠããªãããšãå€æããããšã¯ããããŸããã
ããã¯æé«ã®åé¢ã¬ãã«ã§ããããã¯ã®æ°ãæãå€ããã¯ãšãªã®äžŠååãå¯èœãªéãå°ãªããªã£ãŠããŸãã
ãã©ã³ã¶ã¯ã·ã§ã³ã«ã€ããŠç¥ã£ãŠããã¹ãããšã¯äœã§ããïŒãããã¯DBMSã¬ãã«ã§å®è£ ãããŠãããã¯ãšãªãæ£ããäœæããæ£ãã圢æããã ãã§ããŒã¿ã®äžè²«æ§ãä¿ããããããç§ãã¡ã®ç掻ãç°¡çŽ åãããŸãããŸãããŠãŒã¶ãŒã䜿çšããããŒã¿ãæ£ç¢ºã«ãããã¯ããŸããã©ãã§ããã¹ãŠããããã¯ããã®ã¯æªãããšã ãšããããšãå¿ã«çããŠããå¿ èŠããããŸãã䜿çšããŠããã·ã¹ãã ãšã誰ãã©ãã ãèªã¿åã/æžã蟌ã¿ãè¡ããã«ãã£ãŠãåé¢ã®ã¬ãã«ãç°ãªããŸãããã¹ãç¯ãå¯èœæ§ã®ããæéã®ã·ã¹ãã ãå¿ èŠãªå Žåã¯ãæå°ã®åé¢ã¬ãã«ãéžæã§ããŸããããŒã¿ã®äžè²«æ§ã確ä¿ããå¿ èŠã®ããéè¡ã·ã¹ãã ãããå Žåããã¹ãŠãå®è¡ãããäœã倱ãããŸããããã¡ãããæ倧ã®åé¢ã¬ãã«ãéžæããå¿ èŠããããŸãã
ããŒã¿ããŒã¹ãæ§é åããæ¹æ³ãšäœãèµ·ããåŸãããç解ããäžã§ããã§ã«ããªãã®é²æ©ãéããŠããŸããããã«é²ãã§ã¿ãŸãããã
1ã€ã®ããŒã¿ããŒã¹ãä¿åããã®ã¯ã©ãã»ã©å®å šã§ããã確ãã«å®å šã§ã¯ãããŸããã圌女ã«äœããèµ·ãã£ãå Žåãç§ãã¡ã¯ãã¹ãŠã®ããŒã¿ã倱ããŸããããã¯ã¢ãããããå Žåã¯ããŒã«ã§ããŸãããã·ã¹ãã ã®ããŠã³ã¿ã€ã ãçºçããŸãããããã¯ãŒã¯ãæ éããããããŒãã䜿çšã§ããªããªã£ãããããšãã·ã¹ãã ã¯ããŠã³ã¿ã€ã äžã«ãã°ããã¢ã€ãã«ç¶æ ã«ãªããŸãã
ããã¯ã©ã®ããã«è§£æ±ºã§ããŸããïŒãã®ãããªæŠå¿µããããŸã-è€è£œãããã¯ãä»ã®ããŒãããµãŒããŒãžã®ããŒã¿ããŒã¹ã®è€è£œã§ãã
ããã¯ãŸãã«å®å šãªè€è£œã§ãããããŒã¿ããŒã¹ã®ã³ããŒã§ãããã®ã¡ã«ããºã ãã©ã®ããã«äœ¿çšã§ããŸããïŒ
ãŸããããŒã¿ããŒã¹ã«äœããèµ·ãã£ãå Žåããªã¯ãšã¹ããããŒã¿ããŒã¹ã®å¥ã®ã³ããŒã«ãªãã€ã¬ã¯ãã§ããŸããããã¯ååãšããŠè«ççã§ãããããã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ã§ããä»ã«ã©ã®ããã«ããã䜿çšã§ããŸããïŒ
ãŠãŒã¶ãŒããµãŒããŒããé ãé¢ããŠãããšæ³åããŠã¿ãŸããããæ倧æ°ã®ãŠãŒã¶ãŒãã«ããŒããå¯èœãªéãè¿ éã«ãªã¯ãšã¹ããéä¿¡ã§ããããã«ãµãŒããŒãåæ£ã§ããŸãããããã®åãµãŒããŒã«ã¯ä»ã®ãµãŒããŒãšåãã³ããŒããããŸããããªã¯ãšã¹ãã¯ãŠãŒã¶ãŒã«ãã°ããè¿ãããŸãã
ãã1ã€ã®éåžžã«äžè¬çãªäœ¿çšæ³ã¯ãè² è·åæ£ã§ããããŒã¿ã®åäžã®ã³ããŒããããããé ããã§ã¯ãªãã1ã€ã®ããŒã¿ããŒã¹ããã§ã¯ãªããç°ãªãããŒã¿ããŒã¹ããèªã¿åãããšãã§ããŸãããããã£ãŠããµãŒããŒããªãããŒãããŸãã
OLTPã¯ãšãªãšOLAPã¯ãšãªã®æŠå¿µããããŸããããã¯äœã§ããïŒ OLTP-çããã©ã³ã¶ã¯ã·ã§ã³ã¯ãšãªã OLAPã¯é·æçãªåæã§ããããã¯ãç§ãã¡ã倧èŠæš¡ãªçµåã倧èŠæš¡ãªéžæãè¡ããšãã§ãããã¹ãŠãããŒãžããŸãããã®æç¹ã§ãã¹ãŠã®ããŒã¿ãããã¯ãããŠãããããå€æŽããªããããŒã¿ããŒã¹ãå®æããŠããããšãéåžžã«éèŠã§ãã
ãã®ãããªç¶æ³ã§ã¯ãããŒã¿ããŒã¹ã®å¥ã®ã³ããŒã§åæãè¡ãããšãã§ããŸãããããã£ãŠããŠãŒã¶ãŒã«åœ±é¿ãäžããããšã¯ãããŸããããŠãŒã¶ãŒã¯ããŒã¿ããŒã¹ã«ãšã³ããªãäœæããããšãã§ããŸãããããããšããããã®ãšã³ããªãã³ããŒã«è¿œå ãããŸãã
ããŒã¿ããŒã¹ã®ã³ããŒãæ£ããé åžããããã«ããã¹ã¿ãŒããŒããšã¹ã¬ãŒãããŒãã§ãããã¹ã¿ãŒãšã¹ã¬ãŒãã®æŠå¿µãå°å ¥ãããŠããŸããã¹ã¬ãŒãã¯ãã¬ããªã«ãŸãã¯ãã©ãã¯ãŒãšåŒã°ããããšããããããŸãããã¹ã¿ãŒ-ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ãæžã蟌ãããŒãããã¹ã¿ãŒã¯ãã¹ãŠã®å€æŽãé©çšããå€æŽã®ãã°ãä¿æããŠããã®ãã°ãã¹ã¬ãŒãã«éä¿¡ããŸããã¹ã¬ãŒãã¯ãŠãŒã¶ãŒããã®å€æŽãåãå ¥ããŸãããããã¹ã¿ãŒããã®ãã°ãžã®å€æŽã®ã¿ãé©çšããŸãããã¹ã¿ãŒã¯æ¯åã³ããŒãéä¿¡ããã®ã§ã¯ãªããå€æŽãéä¿¡ããããšã«æ³šæããŠãã ãããã¹ã¬ãŒãã¯ãããã®å€æŽãããŒã«ãªãŒããŒãããã¹ã¿ãŒãšåãããŒã¿ã®ã³ããŒãåãåããŸãã
è€è£œãããã·ã¹ãã ã®éåžžã«éèŠãªãã©ã¡ãŒã¿ã¯ãèŠæ±ãåæçãŸãã¯éåæçã«å®è¡ãããããšã§ããåæãªã¯ãšã¹ããšã¯äœã§ããïŒããã¯ããã¹ã¿ãŒãåæã¬ããªã«ãšåæã¹ã¬ãŒãã«èŠæ±ãéä¿¡ããã¹ã¬ãŒãããã¯ããæ¿è«ŸããŸããããšèšãã®ãåŸ ã£ãŠããã¹ã¿ãŒã確èªãè¿ããšãã§ããããããŠåããŠããã¹ã¿ãŒã¯ãŠãŒã¶ãŒã«çããè¿ããŸããã¬ããªã«ãéåæã®å Žåããã¹ã¿ãŒã¯ã¬ããªã«ã«ãªã¯ãšã¹ããéä¿¡ããŸãããããã«ãŠãŒã¶ãŒã«ãããã ãã§ããæžãçããŸããããšäŒããŸãããããã©ã®ããã«æ©èœãããèŠãŠã¿ãŸãããã
ãã¹ã¿ãŒã«ããŒã¿ãæžã蟌ãã ãŠãŒã¶ãŒãããŸãããã¹ã¿ãŒã¯ãããã2ã€ã®ã¬ããªã«ã«éä¿¡ããåæã¬ããªã«ããã®å¿çãåŸ ã¡ãããã«ãŠãŒã¶ãŒã«å¿çããŸãããéåæã¬ããªã«ãèšé²ããããã¹ã¿ãŒã«ãã¯ãã倧äžå€«ã§ããããŒã¿ãæžã蟌ãŸããŸãããšèšãããŸããã
ãã®ãããªéå±€ããã¹ã¿ãŒãšã¹ã¬ãŒãã«é¢ããŠã¯ã1ã€ãŸãã¯è€æ°ã®ããããæã€ããšãã§ããŸãããã¹ã¿ãŒããŒãã1ã€ããå Žåãããã«æžã蟌ãã®ã¯éåžžã«äŸ¿å©ã§ãããåæã¬ããªã«ããèªã¿åãããšãã§ããŸãããªãæ£ç¢ºã«åæããã§ããïŒåæã¬ããªã«ã¯ãããŒã¿ãæ倧ã®ç²ŸåºŠã§ææ°ã§ããããšãä¿èšŒããããã§ãã
ãã°ããã®æäœã§ããããŒã¿ã«ã¯ãšãªãé©çšããå ŽåãæéãããããŸãããããã£ãŠãåä¿¡ãããããŒã¿ã®100ïŒ ã®ç²ŸåºŠãéèŠã§ããå Žåã¯ããã¹ã¿ãŒã§éžæããããã«ãèªã¿åãã«è¡ãå¿ èŠããããŸããããŒã¿ããããã«é ããŠå°çããå¯èœæ§ãããããšã«åé¡ããªãå Žåã¯ãåæã¹ã¬ãŒãããèªã¿åãããšãã§ããŸããããŒã¿ã®é¢é£æ§ã«ãŸã£ããæ¹å€çã§ãªãå Žåã¯ãéåæã¬ããªã«ãããå«ããŠèªã¿åãããšãã§ããŸããããã«ããããã¹ã¿ãŒãšåæã¬ããªã«ãèŠæ±ããã¢ã³ããŒãã§ããŸãã
ã¬ããªã±ãŒã·ã§ã³ã«ã¯è€æ°ã®ãã¹ã¿ãŒãå«ããããšãã§ããŸããããŸããŸãªã¢ããªã±ãŒã·ã§ã³ãããŸããŸãªãããã«æžã蟌ãããšãã§ãããããã®ãã¹ã¿ãŒã¯çžäºã®ç«¶åã解決ããŸãã
ãã®ãããªããŒã¿ã䜿çšããéåžžã«ç°¡åãªäŸã¯ãããããçš®é¡ã®ãªãã©ã€ã³ã¢ããªã±ãŒã·ã§ã³ã§ããããšãã°ãé»è©±ã«ã«ã¬ã³ããŒããããŸãããããã¯ãŒã¯ããåæããã«ã¬ã³ããŒã«ã€ãã³ããèšé²ããŸããããã®å ŽåãããŒã«ã«ã¹ãã¬ãŒãžã§ããé»è©±ã¯ãã¹ã¿ãŒã§ããããŒã¿èªäœãä¿åãããŠããããã¹ã¿ãŒãããã¯ãŒã¯ã衚瀺ããããšãããŒã«ã«ã³ããŒãšãµãŒããŒäžã®ã³ããŒã競åã解決ãããã®ããŒã¿ãçµåããŸãã
ããã¯ããã®ãããªè€è£œã®éåžžã«åçŽãªäŸã§ãããªã³ã©ã€ã³ããã¥ã¡ã³ãã®å ±åç·šéãããããã¯ãŒã¯ã倱ãå¯èœæ§ãéåžžã«é«ãå Žåã«ãã䜿çšãããŸãã
ãã¹ã¿ãŒã¬ã¹ã¬ããªã±ãŒã·ã§ã³ãååšããŸããããã¯äœã§ããïŒããã¯ã¬ããªã±ãŒã·ã§ã³ã§ãããã¯ã©ã€ã¢ã³ãèªäœãã»ãšãã©ã®ã¬ããªã«ã«ããŒã¿ãéä¿¡ããã»ãšãã©ã®ã¬ããªã«ãããããŒã¿ãèªã¿åããŸããããã§ã¯ãäžå€®ã®ã¬ããªã«ãèªã¿åããšæŽæ°ã®å ±ééšåã§ããããšãããããŸãã
ã€ãŸããããŒã¿ãèªã¿åããã³ã«ãããŒã¿ãæãé¢é£æ§ã®é«ãã¬ããªã«ã®å°ãªããšã1ã€ã«ã¢ã¯ã»ã¹ããããšãä¿èšŒããŸãããããŠããããã®éã§ãã¬ããªã«ã¯ãã¬ããªã«éã®å€æŽãšç«¶åã®ã¡ã€ã³ãã°ãšæ å ±ã亀æããããã®ã¡ã«ããºã ãæ§ç¯ããŸãããã®å Žåãå®è£ ãããã®ã¯ãã¡ããã¯ã©ã€ã¢ã³ãã§ããããšããããããŸããå¥ã®ã¬ããªã«ãããæ°ããå€æŽãå«ãããŒã¿ãã¬ããªã«ããåä¿¡ããå Žåã¯ãããŒã¿ãå¥ã®ã¬ããªã«ã«éä¿¡ãããã競åã解決ããŸãã
ã¬ããªã±ãŒã·ã§ã³ã«ã€ããŠç¥ã£ãŠããã¹ãéèŠãªããšã¯äœã§ããïŒã¬ããªã±ãŒã·ã§ã³ã®äž»ãªãã€ã³ãã¯ãã·ã¹ãã ã®é害èæ§ããµãŒããŒã®é«å¯çšæ§ã§ããããŒã¿ããŒã¹ã«äœãèµ·ãã£ãŠããã·ã¹ãã ãå©çšå¯èœã«ãªãããŠãŒã¶ãŒã¯ããŒã¿ãæžã蟌ãããšãã§ãããã¹ã¿ãŒãŸãã¯å¥ã®ã¬ããªã«ãšã®æ¥ç¶ã埩å ããããšããã¹ãŠã®ããŒã¿ã埩å ãããŸãã
ã¬ããªã±ãŒã·ã§ã³ã¯ããµãŒããŒã®ãªãããŒããããã¹ã¿ãŒããã¬ããªã«ãžã®èªã¿åãèŠæ±ã®åé åžã«éåžžã«åœ¹ç«ã¡ãŸãããã®èªã¿åããã¹ã±ãŒãªã³ã°ããããå€ãã®èªã¿åãã¬ããªã«ãäœæããŠãã·ã¹ãã ãããã«é«éåã§ããŸãããŸããå€æ°ã®ããã¯ãå¿ èŠãšããã·ã¹ãã ã®å¯çšæ§ã«åœ±é¿ãäžããå¯èœæ§ã®ããè€éã§é·æçãªåæã¯ãšãªãè€è£œããããšãã§ããŸãã
äŸãšããŠãªãã©ã€ã³ã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠããã®ãããªããŒã¿ãä¿åãã競åã解決ããæ¹æ³ãæ€èšããŸãããåæã¬ããªã«ã®å Žåãã¬ããªã±ãŒã·ã§ã³ã©ã°ãã€ãŸãã¿ã€ã ã©ã°ãçºçããå¯èœæ§ããããŸããéåæã¬ããªã«ã®å Žåãã»ãšãã©ã®å Žåããã«ãããŸããã€ãŸããéåæã¬ããªã«ããããŒã¿ãèªã¿åããšãã¯ãé¢é£æ§ããªãå¯èœæ§ãããããšãç解ããå¿ èŠããããŸãã
éå±€ã«ãããšãåæã¬ããªã«ããã®å¿çãåŸ æ©ããŠãããã¹ã¿ãŒã1ã€ããå Žåããã¹ãŠã®ã¬ããªã«ãåæããŠããŠãäžéšãçªç¶äœ¿çšã§ããªããªã£ãå Žåãã·ã¹ãã ã¯èŠæ±ãä¿åã§ããªããšæ³å®ããã®ãè«ççã§ãããšèšãã®ãå¿ããŸããã次ã«ããã¹ã¿ãŒã¯æåã®åæã¹ã¬ãŒãã«æžã蟌ã¿ãå¿çãåãåãã2çªç®ã®ã¹ã¬ãŒããèŠæ±ããå¿çãåä¿¡ããŸããããã®çµæããã©ã³ã¶ã¯ã·ã§ã³å šäœãããŒã«ããã¯ããå¿ èŠããããŸãã
ãããã£ãŠããã®ãããªã·ã¹ãã ã§ã¯ãååãšããŠã1ã€ã®ã¬ããªã«ãåæãããæ®ãã¯éåæã«ãªããŸããåæã¬ããªã«ã«ãããããŒã¿ãå¥ã®å Žæã«ä¿åãããŸããã€ãŸããäœããçºçããå¯èœæ§ã®ãããã¹ã¿ãŒã«å ããŠããŸã£ããåããã©ã³ã¶ã¯ã·ã§ã³ãã°ãåãããŒã¿ã®å®å šãªã³ããŒãå«ãããŒããå°ãªããšã1ã€ããããšãä¿èšŒããŸãã
äžæ¹ãéåæã¬ããªã«ã¯ããŒã¿ã®æŽåæ§ãä¿èšŒããŸãããéåæã¬ããªã«ã®ã¿ãããããã¹ã¿ãŒãåæãããŠããå Žåããããã¯é ããŠããå¯èœæ§ããããããŒã¿ã¯ãŸã ããã«å°çããŠããªãå¯èœæ§ããããŸãããã®ãããªå ŽåãååãšããŠãããŒã¿ã®æ°žç¶æ§ãéèŠã§ãªãå Žåã¯ããã¹ã¿ãŒãããã1ã€ã®åæã¬ããªã«ãšæ®ããéåæã§ãããããã¹ã¿ãŒãããããã¹ãŠã®ã¬ããªã«ãéåæã§ãããããªéå±€ãæ§ç¯ããŸãã
ãããããã1ã€ãããŸãããã¹ãŠã®ã¬ããªã«ã¯åãæ§æã§ããå¿ èŠããããŸããäŸãšããŠPostgreSQLã«ã€ããŠèª¬æããå ŽåãããŒã¿ããŒã¹ã®ããŒãžã§ã³ãç°ãªãã°æäœãã°ã®åœ¢åŒãç°ãªãå¯èœæ§ããããããPostgreSQLèªäœã®ããŒãžã§ã³ãåãã§ããå¿ èŠããããŸãããŸããã¬ããªã«ãå¥ã®ããŒãžã§ã³ããã®ãã®ã§ããå Žåãä»ã®ããŒã¹ãæžã蟌ãã æäœãèªã¿åããªãå¯èœæ§ããããŸãã
ã¬ããªã«ãšã¯äœã§ããïŒããã¯ãã¹ãŠã®ããŒã¿ã®å®å šãªã³ããŒã§ãããµãŒããŒãåŠçã§ããªãã»ã©å€ãã®ããŒã¿ããããšããŸããããæåã®è§£æ±ºçã¯äœã§ããïŒ
æåã®æ±ºå®ã¯ãããå€ãã®ã¡ã¢ãªããã倧ããªCPUããã倧ããªãã£ã¹ã¯ãåãããããé«äŸ¡ãªãã·ã³ãè³Œå ¥ããããšã§ããéã®ã³ã¹ããé«ããšããåé¡ã«çŽé¢ããªãéãããã®æ±ºå®ã¯ã»ãšãã©ã®å Žåæ£ããã§ãããããã€ã®æ¥ããæ°ããè»ãè²·ãã®ã¯é«ãããããåã«æé·ããå Žæããªããªãã§ãããã 1å°ã®ãã·ã³ã«åããããšãç©ççã«äžå¯èœãªèšå€§ãªéã®ããŒã¿ããããŸãã
ãã®ãããªå Žåãæ°Žå¹³ã¹ã±ãŒãªã³ã°ã䜿çšã§ããŸãã以åã«èŠãããã·ã³ãããã®ããã©ãŒãã³ã¹ã®åäžã¯ãåçŽã¹ã±ãŒãªã³ã°ã§ãããã·ã³æ°ã®å¢å ã¯æ°Žå¹³ã¹ã±ãŒãªã³ã°ã§ãã
ããŒã¿ããã·ã³ããšã«åå²ããã«ã¯ãã·ã£ãŒãã£ã³ã°ãã€ãŸãããŒãã£ã·ã§ãã³ã°ã䜿çšãããŸããã€ãŸããããŒã¿ãããŒãIDãæ¥ä»ã§ã»ã¯ã·ã§ã³ãšãããã¯ã«åå²ããŸããããã«ã€ããŠã¯ããã«èª¬æããŸããããã¯éèŠãªãã©ã¡ãŒã¿ã®1ã€ã§ãããéèŠãªã®ã¯ãããŒã¿ãç¹å®ã®åºæºã«åŸã£ãŠåå²ããå¥ã®ãã·ã³ã«éä¿¡ããããšã§ãããããã£ãŠãç§ãã¡ã®ãã·ã³ã¯å¹çãäœäžããå¯èœæ§ããããŸãããã·ã¹ãã ã¯æ©èœããããŸããŸãªãã·ã³ããããŒã¿ãåä¿¡ã§ããŸãã
ããŒã¿ãã©ãã«ããããäžè¬çã«ç解ããã«ã¯ãã·ã£ãŒããã³ããŒãããã³ããŒã¿ã®ç¹å®ã®å¯Ÿå¿ããŒãã«ãå¿ èŠã§ãã
ç¹å¥ãªããŒã¿ã¹ãã¢ã䜿çšããããã¯ã©ã€ã¢ã³ããåã·ã£ãŒããé çªã«ãŠã©ãŒã¯ã¹ã«ãŒããŠãèŠæ±ã«äžèŽããããŒã¿ããããã©ããã確èªããå ŽåããããŸãã
ã©ã®ã·ã£ãŒããã©ã®ããŒã¿ç¯å²ã«ãããã«ã€ããŠã®ç¹å®ã®ç¥èãæ ŒçŽããç¹å¥ãªãœãããŠã§ã¢ã¬ã€ã€ãŒããããŸãããããŠãããã«å¿ããŠãå¿ èŠãªããŒã¿ãé 眮ãããŠããããŒãã«æ£ç¢ºã«ç§»åããŸãã
倪ã£ãã¯ã©ã€ã¢ã³ããããŸããããã¯ãã¯ã©ã€ã¢ã³ãèªèº«ãå¥ã®ã¬ã€ã€ãŒã«çž«ãä»ããªãããããŒã¿ãã©ã®ããã«ã·ã£ãŒãã£ã³ã°ãããŠãããã«é¢ããããŒã¿ãã¯ã©ã€ã¢ã³ãã«çž«ãä»ããå Žåã§ãã
ãããäºå®ã§ããã¡ãªã¿ã«ãæããã䜿ãããŠãããã®ã§ããè¯ãç¹ã¯ãã¢ããªã±ãŒã·ã§ã³ãã¯ã©ã€ã¢ã³ããäœæããã³ãŒãã§ãããããŒãã«ãã·ã£ãŒãã£ã³ã°ãããŠããããšãèªèããªãããšã§ãããã ããããã¯æ§æãããŒã¿ããŒã¹èªäœã§ç€ºãããŸããç§ãã¡ã¯åœŒå¥³ã«èšãã ãã§ã-éžæããŠãã ããããããŠãã§ã«ããŒã¿ããŒã¹èªäœã«ãã·ã£ãŒããžã®åå²ãšã©ãããéžæãããã«ã€ããŠã®ç解ããããŸããããã§ã¯ãã³ãŒãèªäœã§ãããŒã¿ã®èªã¿åãå ãå®çŸ©ããŸãã
æ å ±ã®æ§é åãšäžè¬çãªæŽæ°ã«åœ¹ç«ã€ç¹å¥ãªãµãŒãã¹ããããŸããäžè²«æ§ãšé¢é£æ§ãç¶æããããšã¯å°é£ã§ããäœããéžæããæ°ããããŒã¿ãèšé²ããŸããããŸãã¯ãäœããå€æŽããããªã¯ãšã¹ããéåžžã«æ£ããã«ãŒãã£ã³ã°ããå¿ èŠããããŸãããªã¯ãšã¹ãã調æŽããããã®ç¹å¥ãªãµãŒãã¹ããããŸãããããã®1ã€ã¯Zookeperã§ããããããäžè¬çã«ã©ã®ããã«æ©èœããããèŠãããšãã§ããŸããéåžžã«èå³æ·±ãæ§é ã§ãã圌ãã¯éçºè ã®ããã«å€ãã®ç¥çµãšæéãç¯çŽããŸããã
éèŠãªããšãããŒãã£ã·ã§ã³ãäœæãããšãã«çæãã¹ãåŽé¢ã¯äœã§ããïŒã·ã£ãŒãã«åå²ããããã«äœ¿çšããããŒãç解ããããšãéèŠã§ãããã®ãã¹ãŠã®ããŒã¿ãååéããããšã¯éåžžã«è²»çšãããããããããŒã¿ãå°æ¥ã©ã®ããã«äœ¿çšãããå¯èœæ§ããããã«ã€ããŠèª€è§£ããªãããšãéåžžã«éèŠã§ããã·ã£ãŒãã£ã³ã°ãé©åãã€æ£ããè¡ã£ãå Žåãæãé »ç¹ã«äœ¿çšãããã¯ãšãªã䜿çšãããšãã©ã®ã¬ããªã«ã«ç§»åããããåžžã«ããããŸãã
ããšãã°ããŠãŒã¶ãŒã®IDã«åŸã£ãŠããã¹ãŠã®ããŒã¿ãç¹å®ã®ã¬ããªã«ã«ä¿åãããšããã®1ã€ã®ã¬ããªã«ã«ã¢ã¯ã»ã¹ããŠããã¹ãŠã®çµåãå®è¡ã§ããããšãããããŸããããããIDã§ãããç¶æããããšã¯æãã¯ãŒã«ãªã¢ã€ãã¢ã§ã¯ãããŸãããçç±ãã話ãããŸãã
ããŒãã£ã·ã§ãã³ã°ã§ããŒã誀ã£ãŠèå¥ããå Žåãéåžžã«è€éãªã¯ãšãªãããå Žåã¯ãå®éã«ã¯å¥ã®ã·ã£ãŒãã«ç§»åãããã¹ãŠã®ããŒã¿ãçµåããŠããããããã¢ããªã±ãŒã·ã§ã³ã«æž¡ãå¿ èŠããããŸãã幞ããã»ãšãã©ã®DBMSããããè¡ã£ãŠãããŸããããããäžååã«èšè¿°ãããã¯ãšãªã§ã¯ãã©ã®ãããªãªãŒããŒããããçºçããŸããïŒãŸãã¯ã·ã£ãŒãã£ã³ã°ã®äžã§ââãééã£ãããŒãã§å£ããŠããŸããïŒ
IDã«ã€ããŠãã·ã¹ãã ãæ°ãããŠãŒã¶ãŒã§ã®ã¿æ©èœããIDãå¢å ããŠããå Žåããã¹ãŠã®ãªã¯ãšã¹ãã¯æåŸã®ããŒãã«éãããŸãã
äœãèµ·ããã®ã§ããïŒä»ã®3å°ã®å®è¡äžã®ãã·ã³ã¯ã¢ã€ãã«ç¶æ ã«ãªããŸãããããŠããã®è»ã¯åã«çããã§ããã-ãããããããã¹ããããããã¯ãæœåšçãªã·ã¹ãã ã®ããã«ããã¯ã§ãããæ¥ç¶ãæåŠããå¯èœæ§ãããããŸãã
ãããã£ãŠãã·ã£ãŒãã£ã³ã°ããŒãå®çŸ©ãããšãã¯ããããã®ããŒãã®ãã©ã³ã¹ãç解ããããšãéåžžã«éèŠã§ããããã·ã¥ã¯éåžžã«é »ç¹ã«äœ¿çšãããŸããããã¯ãå€ããå°ãªããäžç«ã§ãã©ã³ã¹ã®åããããŒã¿ã®é 眮ã§ãããã ããããŒã«ããã·ã¥é¢æ°ãããå Žåãããšãã°ç¯å²ã§éžæããããšã¯ã§ããŸãããç¯å²ãç°ãªãã·ã£ãŒãã«åºããããšã¯ã§ããªããããããã¯è«ççã§ãã
æ¥ä»å¥-åããããšãã°ãåæãåæ£ããŠæ¥ä»ããšã«ã·ã£ãŒããäœæããå Žåããã¡ããã10幎åã®1ã€ã®ã·ã£ãŒãã¯ãŸã£ãã䜿çšãããŸãããããã¯ç§ãã¡ã«ãšã£ãŠæçã§ã¯ãããŸããããŸããããŒã¿ãåæ§ç¯ããŠé床ã«åŒ·åããããšã¯ãåžžã«éåžžã«ã³ã¹ããããããŸãã
åã«åºãŠãã質åã«ãçãããŸããäœããã¹ãã-ã€ã³ããã¯ã¹ãå®çŸ©ããããã·ã£ãŒããäœæããŸããïŒãã¡ãããã€ã³ããã¯ã¹ã
ã»ããã·ã£ãŒãã¯å šäœãéèµ·ããã€ã³ãã©ã¹ãã©ã¯ãã£ãåããå¥åã®ãã·ã³ã§ãããããŠããã®äžéã®ã³ã³ããŒãã³ãã«ã¯ãã€ã³ããã¯ã¹ã«äŒŒããã®ãå«ãŸããŠããŸãããã©ã¡ãŒã¿ã«ããã¯ã€ãã¯æ€çŽ¢ããããŸã-ã©ãã«ãã©ãã«è¡ããããããæ¯çã§ããããããã·ã£ãŒãã£ã³ã°ãããå Žåãæçµçãªç»åã¯æ¬¡ã®ããã«ãªã
ãŸããã¢ããªã±ãŒã·ã§ã³ããããã©ãã«è¡ãã¹ãããç¥ã£ãŠããããçš®ã®é ããããŸãããŸããã·ã£ãŒãããããããããã«ã¬ããªã«ãæ§æãããŠããŸããããŒã¿ãå°ãªãå Žåãããã¯éåžžã«å€§ããªãªãŒããŒãããã§ããã€ãŸããå®éã«åçŽã¹ã±ãŒãªã³ã°ã®å¶éã«éããå Žåã«ã®ã¿ãã·ã£ãŒãã£ã³ã°ã«é Œãå¿ èŠããããŸããããé«äŸ¡ãªãã·ã³ãè³Œå ¥ããŠããããŒã¿ãåå ¥ã«é¢ä¿ããªãå Žåã§ãã次ã«ãããã€ãã®ç°ãªãå®äŸ¡ãªè»ãè³Œå ¥ããŠããã®ãããªã¢ãŒããã¯ãã£ãæ§ç¯ã§ããŸãã
ã¬ããªã«ã®ç®çã¯æããã ãšæããŸããã·ã£ãŒããå£ããŠããããããããã¯ããŒã¿ããŒã¹ã®äžéšã§ãããäžçš®ã®ãŠããŒã¯ãªãã®ã§ãããããã¯ãããã®å Žæã§ã®ã¿èŠã€ãããŸãããŸããããããã³ããŒã«åå²ããŸããããã«ãããããŒãã¯èé害æ§ã«ãªããåé¡ãçºçããªããªããŸãã
æãéèŠãªããšïŒã·ã£ãŒãã£ã³ã°ã¯ãããŒã¿ãåé¡ã«åé¡ãããã ãã§ãªããå®éã«å€§éã®ããŒã¿ãããå Žæã§æ£ç¢ºã«äœ¿çšãããŸãã
ããã§ã¯ãããŒã¿ã¢ãã«ã«ã€ããŠè©³ããèŠãŠãããããŒã¿ãä¿åããæ¹æ³ãèŠãŠã¿ãŸãããã
以åã«èª¿ã¹ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã«ã¯ããŸã第äžã«ãéåžžã«äžè¬çã§èª°ããç解ã§ãããããéåžžã«å€ãã®å©ç¹ããããŸãããªããžã§ã¯ãéã®é¢ä¿ãèŠèŠçã«ç€ºããæŽåæ§ãæäŸããŸãã
ãã ããæ¬ ç¹ããããŸããæ確ãªæ§é ãå¿ èŠã§ãããã¹ãŠã®ããŒã¿ãããã·ã¥ããå¿ èŠãããããŒãã«ããããŸããç§ãã¡ãäžè¬çã«åéãããã¹ãŠã®æ å ±ãšäºå®ãèŠããšããããã¯éåžžã«ç°ãªã£ãŠããŸããã€ãŸãã補åããŒã¿ããŠãŒã¶ãŒããŒã¿ãã¡ãã»ãŒãžãªã©ãåŠçã§ããŸãããã®ããŒã¿ã«ã¯ãæ確ãªæ§é ãšæŽåæ§ãæ¬åœã«å¿ èŠã§ãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã¯åœŒãã«ãšã£ãŠçæ³çã§ãã
ãã ããããšãã°ãæäœã®ãã°ããªããžã§ã¯ãã®èª¬æããããåãªããžã§ã¯ãã®ç¹æ§ãç°ãªããšããŸãããã¡ãããããããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®ãžã§ã€ãœã³ã«æžãçããããšãã§ãããããç§ãã¡ãšãšãã«ééãªãæé·ããããšãå¬ããæããŸãã
ãããŠãä»ã®ã¹ããŒã ãä»ã®ã¹ãã¬ãŒãžã·ã¹ãã ãèŠãããšãã§ããŸãã NoSQLã¯éåžžã«æŽŸæãªç¥èªã§ãããçŽæ¥æçºçã§ãããããŸã-ãSQLãªãããããã¯ã©ã®ããã«ããŠèµ·ãã£ãã®ã§ããïŒ
ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãã©ãã§ãæåããŠããããã§ã¯ãªããšããäºå®ã«çŽé¢ãããšãã圌ãã¯ããã·ã¥ã¿ã°ãå¿ èŠãšããäŒè°ããŸãšããã®ã§ã圌ãã¯#NoSQLãæãã€ããŸãããæ ¹ä»ããããã®åŸã圌ãã¯ãSQLãªããã§ã¯ãªããSQLã ãã§ãªãããšèšãå§ããŸãããããã¯ããªã¬ãŒã·ã§ãã«ã§ã¯ãªããã®ã§ãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã»ã©å³å¯ã«æ§é åãããŠããããæŠç¥çã§ã衚圢åŒã§ã¯ãªããããŸããŸãªããŒã¿ããŒã¹ã®å·šå€§ãªãã¡ããªã§ãã
éãªã¬ãŒã·ã§ãã«ããŒã¿ã¢ãã«ã®ãã¡ããªã¯ãããŒå€ããŒã¿ããŒã¹ãããã¥ã¡ã³ãæåããŒã¿ããŒã¹ãåããŒã¿ããŒã¹ããŒã¿ããŒã¹ãããã³ã°ã©ãããŒã¿ããŒã¹ã®4ã€ã®ã¿ã€ãã«åããããŸãããããã®åãã€ã³ããæ€èšããã©ã®ããŒã¿ãã©ã®ããŒã¿ã«ä¿åããã®ãé©åã§ãäœã«äœ¿çšãããã®ãã調ã¹ãŠã¿ãŸãããã
ããŒå€ããããæãç°¡åã§ãããããèŸæžã§ãããããæ¯çã§ããããã¯ãããŒã¿ãããŒã«ãã£ãŠæ ŒçŽãããããŒã¿ããŒã¹ã§ãããç¹å®ã®ããŒã®äžã«äœããããã¯é¢ä¿ãããŸãããããŒèªäœã®äž¡æ¹ããããããŒã¿ã¯åçŽãªæ§é ã§ããã¯ããã«è€éãªæ§é ã§ãããŸããŸããããã®ãããªããŒã¿ããŒã¹ã®è¯ããšããã¯ãã€ã³ããã¯ã¹ã®ããã«ãããŒã¿ãéåžžã«ãã°ããæ€çŽ¢ããããšã§ããããããããŒå€ããã£ãã·ã¥ã«éåžžã«é »ç¹ã«äœ¿çšãããçç±ã§ããå©ç¹ã¯ãããŒã«ãã£ãŠå€ãç°ãªãå¯èœæ§ãããããšã§ãã
ããšãã°ãããŒã䜿çšããŠãŠãŒã¶ãŒã»ãã·ã§ã³ãä¿åã§ããŸãããŠãŒã¶ãŒãã¯ãªãã¯ããã®ã§ããããå€ã§èšè¿°ããŸãããããã¯ã¹ããŒãã¬ã¹ã§ãããç¹å®ã®ã¹ããŒããå€æ§é ã®ãªãããŒã¿ã¢ãã«ã§ããéåžžã«ã·ã³ãã«ãªæ§é ã§ãããããé«éã§ç°¡åã«ã¹ã±ãŒãªã³ã°ã§ããŸããç§ãã¡ã¯ãã§ã«éµãæã£ãŠããŸãããããŠç§ãã¡ã¯ããããéåžžã«ç°¡åã«ç Žãããããã®ããã·ã¥ãäœãããšãã§ããŸããããã¯ãæãã¹ã±ãŒã©ãã«ãªããŒã¿ããŒã¹ã®1ã€ã§ãã
äŸãšããŠã¯ãRedisãMemcachedãAmazon DynamoDBãRiakãLevelDBããããŸããããŒå€ã¹ãã¬ãŒãžã®å®è£ æ©èœã確èªã§ããŸãã
ããã¥ã¡ã³ãããŒã¿ããŒã¹ã¯ãããã€ãã®çšéã§ããŒå€ãšéåžžã«ãã䌌ãŠããŸãããããã圌ãã®ãŠãããã¯ããã¥ã¡ã³ãã§ããããã¯ãç¹å®ã®ããŒã¿ãéžæããäžæ¬æäœïŒäžæ¬æ¿å ¥ãäžæ¬æŽæ°ïŒãå®è¡ã§ãããããªè€éãªæ§é ã§ãã
åããã¥ã¡ã³ãã¯ãååãšããŠãXMLãJSONããŸãã¯BSONïŒãã€ããªã«ä¿åãããJSONïŒãããèªäœã«ä¿åã§ããŸããããããä»ã§ã¯ã»ãšãã©ã®å ŽåJSONãŸãã¯BSONã§ãããããããŒãšå€ã®ãã¢ã®ãããªãã®ã§ãåè¡ã«ç¹å®ã®ç¹æ§ãããããŒãã«ãšããŠæ³åã§ãããããã®ããŒã䜿çšããŠããããäœããååŸã§ããŸãã
ããã¥ã¡ã³ãæåããŒã¿ããŒã¹ã®å©ç¹ïŒéåžžã«é«ãããŒã¿å¯çšæ§ãšæè»æ§ãåããŠããŸããã©ã®ããã¥ã¡ã³ãã§ããã©ã®JSONã§ãã絶察ã«ãã¹ãŠã®ããŒã¿ã»ãããæžã蟌ãããšãã§ããŸãããŸããã«ã¿ãã°ãäœæããå¿ èŠãããå Žåããã«ã¿ãã°å ã®å補åã®ç¹æ§ãç°ãªãå Žåãªã©ãéåžžã«é »ç¹ã«äœ¿çšãããŸãã
ãŸãã¯ãããšãã°ããŠãŒã¶ãŒãããã¡ã€ã«ã誰ãã圌ãã®å¥œããªæ ç»ã誰ã-圌ãã®å¥œããªé£ã¹ç©ã瀺ããŸããããã¹ãŠã1ã€ã®ãã£ãŒã«ãã«è²Œãä»ããªãããã«ããããã«ãäœãæ ŒçŽããããæ確ã§ã¯ãªããããããã¥ã¡ã³ãããŒã¹ã®JSONã§ãã¹ãŠãæžã蟌ãããšãã§ããŸãã
ããŒã¿ãä¿åããããã®ãã1ã€ã®äŸ¿å©ãªã¢ãã«ã¯ãåããŒã¿ããŒã¹ã§ãããããã¯ãcolumnarãcolumndatabaseãšãåŒã°ããŸãã
ããã¯éåžžã«èå³æ·±ãæ§é ã§ãããç§ãæãã«ãã»ãšãã©ãã¹ãŠã®å€§èŠæš¡ã§è€éãªãããžã§ã¯ãã§äœ¿çšãããŠããŸãããã®ãããªããŒã¿ããŒã¹ã¯ãããŒã¿ãè¡ã§ã¯ãªãåã§ãã£ã¹ã¯ã«ä¿åããããšãæå³ããŸãã倧éã®ããŒã¿ãéåžžã«é«éã«æ€çŽ¢ããããã«äœ¿çšãããŸããååãšããŠãåæã®å Žåãç¹å®ã®åããã®ã¿å€ãéžæããå¿ èŠãããå Žåã
巚倧ãªããŒãã«ããããšæ³åããŠã¿ãŸãããããããŠãããŒã¿ãè¡ã«æ ŒçŽãããšã次ã®ããã«ãªããŸããèšå€§ãªæ°ã®è¡ã§ãããã®ããŒãã«ã®3ã€ã®ãã©ã¡ãŒã¿ãŒãéžæããã«ã¯ãããŒãã«å šäœã調ã¹ãå¿ èŠããããŸãããããŠãåããšã«å€ãæ ŒçŽããå Žåã3ã€ã®å€ã§éžæããå Žåãåã¯ãã®ããã«èšè¿°ãããŠããããã倧ãŸãã«èšã£ãŠ3è¡ã ããééããå¿ èŠããããŸãããããã®3è¡ãééãããšãå¿ èŠãªå€ã®é åºçªå·ãããã«ååŸãããä»ã®åããååŸãããŸãã
ãã®ãããªããŒã¿ããŒã¹ã®å©ç¹ã¯äœã§ããïŒå°éã®ããŒã¿ãæ€çŽ¢ãããããæ§é ãå€æŽããã«ä»»æã®æ°ã®åãè¿œå ã§ãããããã¯ãšãªåŠçé床ãéåžžã«é«ããããŒã¿ã®æè»æ§ãé«ããªããŸããããã§ã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãšã¯ç°ãªããããŒã¿ãç¹å®ã®ãã¬ãŒã ã«åŒ·å¶ããå¿ èŠã¯ãããŸããã
æã人æ°ã®ããåæ±ç¶ã®ãã®ã¯ãããããCassandraãHBaseãããã³ClickHouseã§ãããããããã¹ãããŸããé ã®äžã®è¡ãšåã®æ¯çãéã«ããã®ã¯éåžžã«èå³æ·±ãããšã§ãããããŠãããã¯å€§éã®ããŒã¿ãžã®éåžžã«å¹ççã§é«éãªã¢ã¯ã»ã¹ã§ãã
ã°ã©ãããŒã¿ããŒã¹ã®ãã¡ããªãŒããããŸãããŸããããŒããšãšããžãå«ãŸããŠããŸãããšããžã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®å Žåãšåæ§ã«ããªã¬ãŒã·ã§ã³ã·ããã衚瀺ããããã«äœ¿çšãããŸãããã ããã°ã©ãããŒã¹ã¯ããŸããŸãªæ¹åã«ç¡éã«å€§ãããªãå¯èœæ§ããããŸãããããã£ãŠãããæè»ã§ãããã¹ãŠã®ããŒãã«ãéžæããŠçµåããå¿ èŠããªããããæ€çŽ¢é床ãéåžžã«éããªããŸããããŒãã«ã¯ããã¹ãŠã®ç°ãªããªããžã§ã¯ããšã®é¢ä¿ã瀺ããšããžãããã«ãããŸãã
ãããã®ããŒã¿ããŒã¹ã¯äœã«äœ¿çšãããŸããïŒã»ãšãã©ã®å Žå-é¢ä¿ã瀺ãããã ãã«ãããšãã°ããœãŒã·ã£ã«ãããã¯ãŒã¯ã§ã¯ã誰ã誰ããã©ããŒããŠããããšãã質åã«çããããšãã§ããŸããé©åãªäººã®ãã¹ãŠã®ãã©ãã¯ãŒãžã®ãªã³ã¯ãããã«ãããŸããããã§ãéåžžã«é »ç¹ã«ããããã®ããŒã¿ããŒã¹ã¯è©æ¬ºã¹ããŒã ãèå¥ããããã«äœ¿çšãããŸããããã¯ããã©ã³ã¶ã¯ã·ã§ã³éã®çžäºé¢ä¿ã®å®èšŒã«ãé¢é£ããŠããããã§ããããšãã°ãåãéè¡ã«ãŒããå¥ã®éœåžã§äœ¿çšããããšãããä»ã®èª°ããåãIPã¢ãã¬ã¹ããå¥ã®ãŠãŒã¶ãŒã®ã¢ã«ãŠã³ããå ¥åãããšãã远跡ã§ããŸãã
ãã®ãããªçžäºäœçšãé¢ä¿ãåæããããã«ãã䜿çšãããç°åžžãªç¶æ³ã解決ããã®ã«åœ¹ç«ã€ã®ã¯ããããã®è€éãªé¢ä¿ã§ãã
éãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã«çœ®ãæãããã®ã§ã¯ãããŸããã圌ãã¯ãã éãã圌ãã®ä»äºã®ç°ãªãããŒã¿ãã©ãŒããããšç°ãªãããžãã¯ãæªããè¯ãããããŸãããããã¯ãä»ã®ããŒã¿ãšã¯ç°ãªãã¢ãããŒãã§ãããããŠãã¯ããéãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãé »ç¹ã«äœ¿çšãããŸããããªãã¯ããããæããå¿ èŠã¯ãããŸãã;éã«ãããªãã¯ããããè©Šãå¿ èŠããããŸãã
ãã£ãã·ã¥ãäœæããå Žåã¯ããã¡ãããåçŽã§é«éãªããŒå€ã§ãããããçš®ã®Redisã䜿çšããŸããåæçšã®ãã°ã倧éã«ããå Žåã¯ãClickHouseãŸãã¯åããŒã¹ã«ããããã§ããŸããããã«ãããæ€çŽ¢ãéåžžã«äŸ¿å©ã«ãªããŸãããŸãã¯ãããã¥ã¡ã³ãã®æå³ãç°ãªãå¯èœæ§ããããããããã¥ã¡ã³ãããŒã¹ã«æžã蟌ã¿ãŸããããã¯ãéžæã«ã圹ç«ã¡ãŸãã
䜿çšããããŒã¿ã«åºã¥ããŠããŒã¿ã¢ãã«ãéžæããŸãããªã¬ãŒã·ã§ãã«ãŸãã¯éãªã¬ãŒã·ã§ãã«ã®ãããããããŒã¿ã説æããŠãã ããããã®ããã«ããŠãå°æ¥æ¡åŒµã§ããæé©ãªã¹ãã¬ãŒãžãèŠã€ããããšãã§ããŸãã
ä»æ¥ãããªãã¯ããŸããŸãªåé¡ãšããŒã¿ã®ä¿åæ¹æ³ã«ã€ããŠå€ããåŠã³ãŸãããæåã«èšã£ãããšãããäžåºŠç¹°ãè¿ããŸãããã¹ãŠã詳现ã«ç¥ãå¿ èŠã¯ãªãã1ã€ã®ããšãæãäžããå¿ èŠããããŸããããã¡ãããèå³ãããã°ã§ããŸãããããããããäžè¬çã«ååšããããšãããã«ã©ã®ãããªã¢ãããŒãããããäžè¬çã«ã©ã®ããã«èããããšãã§ããããç¥ãããšã¯éèŠã§ããèé害æ§ãå¿ èŠãªå Žåã¯ãã¬ããªã«ãäœæããã®ãçã«ããªã£ãŠããŸããããŒã¿ãæžãçãããã衚瀺ãããªãã£ããšããŸããããããããããããç§ã®çºèšã¯é ãããšã£ããè»èŒªãäœãçŽãå¿ èŠã¯ãããŸãã-ããŸããŸãªã¿ã¹ã¯ã®ããã®æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ããã§ã«ãããããããŸããèŠéãåºãããšããã°ããã®ä»ã®åé¡ãçºçããå Žåããã°ã®ç¹æ§ã«ãã£ãŠé害ãçºçããå Žæãæ£ç¢ºã«ææ¡ããæ€çŽ¢ãšã³ãžã³ãã解決çãèŠã€ããããšãã§ããŸããæž èŽããããšãããããŸããã