DBã®å¯¿åœã¯ã¢ããªããé·ãïŒ é·çãããDBã«å¿ èŠãªèšèšãšãªãã¡ã¯ã¿ãªã³ã°ãå®è·µããåŠã¶
ã¢ããªã±ãŒã·ã§ã³ã®å¯¿åœãããé·ããããŒã¿ã®è¿œå ãããŒãã«ã®å€æŽã§æé·ãç¶ãããããŒã¿ããŒã¹ããšãã©ã®ããã«ä»ãåã£ãŠããã°ããã®ã§ããããïŒ æœæ ¹å£®å€§ïŒsoudaiïŒããã«ããå¯çš¿ã§ãã
ããã«ã¡ã¯ãããŒã ãïŒ@soudai1025ïŒã§ãã
æ°ãããµãŒãã¹ãå§ãããšããå¿ ããšèšã£ãŠããã»ã©ããŒã¿ããŒã¹ã¯å©çšãããŠããŸãããŸãä»çšŒåããŠãããµãŒãã¹ã®å€ãã§ããRDBMSãã¯ããããããããªããŒã¿ããŒã¹ãå©çšãããŠããŸãããããªã«åºãå©çšãããŠããããŒã¿ããŒã¹ã ãããããå€ãã®åé¡ã®å ã«ãªãã®ããŸãäºå®ã§ãã
ããã§ä»åã¯ãWebãµãŒãã¹ãäžå¿ã«ããŒã¿ããŒã¹ã®éžã³æ¹ãèšèšã«ã€ããŠã話ããŠãããããšæããŸãããããŠç§ããŸãã«ä»ã2011幎ããç¶ãWebãµãŒãã¹ããªãã«ã¬ãã®RDBMSã®ãªãã¡ã¯ã¿ãªã³ã°ã«æºãã£ãŠããããã®çµéšãäœãããšãªããäŒãããŸãã
- DBã®å¯¿åœã¯ã¢ããªã±ãŒã·ã§ã³ããé·ã
- 0ãã1ã«ãããšãã®DBèšèš
- 1ãã100ã«æé·ããä»ãæŠã£ãŠããããš
- 壮倧ãªãããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°
- ãããããæŠãç¶ãããšã³ãžãã¢ãž
DBã®å¯¿åœã¯ã¢ããªã±ãŒã·ã§ã³ããé·ã
äžçªæåã«ãäŒããã¹ãããšã¯ãããŒã¿ããŒã¹ã®å¯¿åœã¯ã¢ããªã±ãŒã·ã§ã³ãããé·ããšããããšã§ããããã¯ã©ãããããšã§ããããïŒ
æ³åããŠã¿ãŠãã ãããäŸãã°ãæ°ããSNSã®ãµãŒãã¹ããªãªãŒã¹ãããšããŸãããã®SNSã¯1幎ã2幎ãšé 調ã«ãŠãŒã¶ãŒæ°ãå¢ãããŠãããŸãããããŠãç²åŸãããŠãŒã¶ãŒãããæŽ»çšãããããæ°ãã«ECãµãŒãã¹ãããŒã³ããããšããŸãããã
ãã®ECãµãŒãã¹ããªãªãŒã¹ãããç¬éãããSNSã®äŒå¡ããŒã¿ã¯ECãµãŒãã¹ãšå ±æãããããšã«ãªããŸãã
ãã®ããã«åãããŒã¿ããŒã¹ãè€æ°ã®ã¢ããªã±ãŒã·ã§ã³ããåç §ããããšã¯äžè¬çã§ãããäŸãã°RDBMSãå©çšããŠããã°ãã©ã³ã¶ã¯ã·ã§ã³ãåããŠããŸãããé©åãªãŠãŒã¹ã±ãŒã¹ãšèšããã§ãããã
ããŠãECãµãŒãã¹ãé èª¿ã«æ¡å€§ããŠãããããæµè¡ïŒã¯ãïŒãå»ãããã£ãŠSNSãéããããšã«ãªããŸããããããªããšããŒã¿ããŒã¹ã¯ã©ãã§ããããïŒ å ±ã«çãŸãè²ã£ãSNSãéããŠããECãµãŒãã¹ããäŒå¡æ å ±ãåç §ãããŠãããããéããããšã¯ãããŸããã
ãã®ããã«è€æ°ã®ã¢ããªã±ãŒã·ã§ã³ããåç §ãããããšãããããŠã¢ããªã±ãŒã·ã§ã³ãããããŒã¿ããŒã¹ã®å¯¿åœãé·ãããšããäžè¬çãªããšãªã®ã§ãã
ã¢ããªã±ãŒã·ã§ã³ã®ãªãã¬ãŒã¹ãšDBã®ãªãã¬ãŒã¹
ããŒã¿ããŒã¹ã®å¯¿åœãèããã«ã¯ããã1ã€è¯ãäŸããããŸãã
ECãµãŒãã¹ããªãã¬ãŒã¹ããããšèãããšããã¢ããªã±ãŒã·ã§ã³ã³ãŒããæšãŠãŠãå šãŠæ°ããå®è£ ããããšã¯ããåŸãã§ããããããããããŒã¿ããŒã¹ã¯ã©ãã§ããããïŒ äžèº«ã®ããŒã¿ãå šãŠæšãŠãŠãæ°ããäœãçŽãããšã¯ãŸããªãã§ãããã
ããŒããŠã§ã¢ã§ããã°æ éãå®æäº€æã§æ°ãããªãããšããããŸãããOSãããã°ã©ãã³ã°èšèªã¯ããŒãžã§ã³ã¢ããã宿çã«è¡ãããŸããç¹ã«ããã°ã©ãã³ã°èšèªã®ããŒãžã§ã³ã¢ããã®éã«ã¯ãåãããŠãªãã¡ã¯ã¿ãªã³ã°ãè¡ãããšãããã§ãããã
ã§ã¯ãããŒã¿ããŒã¹ã¯ã©ãã§ããããïŒ ããã«ãŠã§ã¢ã®ããŒãžã§ã³ã¢ãããããããšã¯ãã£ãŠãããªãã¡ã¯ã¿ãªã³ã°ãŸã§ãããçµéšãããæ¹ã¯ãèªè ã®æ¹ã®äžã§ãå°ãªãã®ã§ã¯ãªãã§ããããããã¡ããããŒã¿ãæšãŠãŠãæ°ããããŒã¿ããŒã¹ãæ§ç¯ããããšã¯ãŸããããŸããã
ãã®ããã«ãããŒã¿ããŒã¹ã¯å¯¿åœãé·ããããã巚倧ã«ãªããããããŸãå€åã«å¯ŸããæããçãŸããããã®ãç¹åŸŽã§ãã
è€æ°ã®ã¢ããªã±ãŒã·ã§ã³ããåç §ãããå Žå
å çšãSNSãšECãµãŒãã¹ãäŸã«æããŸããããè€æ°ã®ã¢ããªã±ãŒã·ã§ã³ããåç §ãããã±ãŒã¹ã¯ä»ã«ããããŸãã
äŸãã°ãSaaSãPaaSãšã®é£æºã§ããããªãã䜿ããµãŒãã¹ããã¹ããã®ããã·ã¥éç¥ãSaaSã䜿ã£ãŠå®è£ ããŠããå Žåãããã·ã¥ã®ãªã¹ãã飿ºããå¿ èŠããããŸãã
ãŸãããµãŒãã¬ã¹ã¢ãŒããã¯ãã£ããã€ã¯ããµãŒãã¹åããŠããã°ããã®åŸåã¯ããé¡èã«ãªãããšã§ããããã€ã³ã¿ãŒãã§ã€ã¹ãšããŠREST APIããã£ãããåã ã®ããŒã¿ã¹ãã¢ã¯ãããšããŠããå ±éã®ããŒã¿ã¹ãã¢ã¯å¿ èŠã ããã§ãããããŠããã®å€ãã®å ±éã®ããŒã¿ã¹ãã¢ã®äžã«ãRDBMSãã¯ãããšããããŒã¿ããŒã¹ãããããšã§ãããã
ãã®ä»ãããŒã¿åæåºç€ã«ãæšä»ã¯SaaSãå©çšããããšãäžè¬åããŠããŸãããè€æ°ã®ã¢ããªã±ãŒã·ã§ã³ã§ããŒã¿ãå ±æããä»çµã¿ã¯ããããããªå Žæã§çºçããŸãã
0ãã1ã«ãããšãã®DBèšèš
ãã®ããã«ãããŒã¿ããŒã¹ã¯ããŸããŸãªãšããã§äœ¿ãããããéèŠãªååšã§ãããã ããããããŒã¿ããŒã¹ã®åé¡ãå€ãã®ãµãŒãã¹ã«åœ±é¿ããŸããã¿ãªããããããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ãªã©ã§å°ã£ãèšæ¶ãããã®ã§ã¯ãªãã§ãããããã§ã¯ãã©ãããŠãã®ãããªç¶æ ã«ãªãã§ããããïŒ
ãã®çç±ã¯ãããŒã¿ããŒã¹ã®ç¹æ§ã«ãããŸããåºæ¬çã«ããŒã¿ããŒã¹ã«ã¯ããŒã¿ã远å ãããŠãããŸãããããŒã¿ã®ç¶æ ãå€ããäœæ¥ã®å€ãããããŒãã«ãã«ã©ã ã®è¿œå ã§ãããã¡ããæŽæ°ãåé€ããããŸãããåç §ãé€ãããŒã¿ããŒã¹ã®ç¶æ ã®å€åã®å€ãã¯è¿œå ã§è¡ãããããããŸãã«ããŒã¿ããŒã¹ãæé·ããŠããã®ã§ãã
ãããŠ5幎ã10幎ãšããé·ãããŒã¿ããŒã¹ã®å¯¿åœãšãã®ç¹æ§ãåã¿åã£ãŠã巚倧ãªããŒã¿ããŒã¹ãçãŸããã®ã§ãã
仿§è¿œå ã«åŒ·ãèšèš
ããã§ã¯ãã©ãããã°ä»æ§ã®è¿œå ã«åŒ·ãããŒã¿ããŒã¹ãäœãããšãã§ããã®ã§ããããïŒ
ããŒã¿ããŒã¹ã®èšèšã¯ç©ã¿æšã«äŸããããŸããäŸãã°æ¬¡ã®å³ã®ããã«ãæåã®èšèšããæ£ããèšèšãããŠãããªããæ¬¡ã«è¡ããã仿§ã®è¿œå ããããããªããŸãããã®ããã«æ£ããèšèšããŠããã°ã远å ã¯ããã»ã©é£ããããšã§ã¯ãããŸããã
builderscon 2017ç»å£è³æãrdb antipattern refactoringã25ããŒãžãã
ããããæ¬¡ã®ãããªåœ¢ã«ãªã£ãŠãããšãã¯ã©ãã§ãããïŒ æ¬¡ã«ä¹ãã仿§ãé£ããããšã¯ãäžèŠããŠããããŸããã
åãããrdb antipattern refactoringã27ããŒãžãã
ããã«ããã®äžã«äžžãä¹ãã倩æãçŸããæ¥ã«ã¯ãåŸã®ã¡ã³ããã³ã¹ãå°ççµµå³ã«ãªãããšã¯å®¹æã«æ³åã§ããŸãããããããã®ãããªç¶æ ã¯æ®å¿µãªããæ£èŠãããã¢ã³ããã¿ãŒã³ãšåŒã°ããããæªãèšèšãšããŠååšããŠããŸãã
ããã§ã¯ãæ£ããèšèšããç©ã¿æšãèŒããŠããã«ã¯ã©ãããã°ããã®ã§ããããïŒ
ããŒã¿ãšæ å ±ã®éã
æ£ããèšèšã®çãã¯ãæ®å¿µãªãããããŸãããããããæ£ããçãã«è¿ã¥ãããã®ææ³ã¯ããã€ããããŸãããã®äžã§éèŠãªããšã¯ããŸãããŒã¿ãšæ å ±ã®éããç¥ãããšã§ãã
ããŒã¿ã¯ãããã®ãŸãŸã®äºå®ã§ãããããŠæ å ±ã¯ã衚瀺ãããå 容ã«åãããŠããŒã¿ãå å·¥ããçµæã§ãã
äŸãã°ããŠãŒã¶ãŒæ å ±ã®äžã«ãçå¹Žææ¥ãããã£ããšããŸããããã¯ããã®ãŸãŸã®äºå®ãããŒã¿ã§ããããã§ã¯ããŠãŒã¶ãŒãããã£ãŒã«ã«ã幎霢ãã衚瀺ãããå Žåã¯ã©ãã§ããããïŒ çããã®ãæ°ã¥ãã®éãã幎霢ã¯çå¹Žææ¥ãå å·¥ããæ å ±ãªã®ã§ãã
幎霢ãäºå®ã ãšæããããããããŸããããæ¯å¹Žã«ãŠã³ãã¢ãããããå€åããŸããããã«å¯ŸããŠãçå¹Žææ¥ã¯å€åããŸãããããããããŒã¿ãšæ å ±ã®å€§ããªéãã®1ã€ã§ãã
åèãSQLã¢ã³ããã¿ãŒã³ãæ¥æ¬èªçïŒãªã©ã€ãªãŒãžã£ãã³ã2013幎ïŒã®ãŸãããã§ããç£èš³è ã®åç°çäºãããæ¬¡ã®ããã«æžããŠããŸãã
ããŠãçããã¯ãæ å ±ããšãããŒã¿ãã®éãããåç¥ã§ããããããã®äºè ã®é¢ä¿ã¯ãå€ãã®æ å ±ãç§ãã貎éãªããŒã¿ããšãã衚çŸã§èšãå°œãããŸãããã€ã§ãæã ãæ¬²ããã®ã¯ãæå³ã®ããïŒç®çãæã£ãïŒæ£ããæ å ±ãªã®ã§ããäžæ¹ãããŒã¿ã¯åãªãåçš®ã®äºå®ã®å€ïŒäœããã®ãåç§°ãšãæ¥ä»ãšãéé¡ãšãïŒã§ãã£ãŠããèªäœã«ç®çã¯ãããŸããã
ã¿ãªããã«ãããã®éããèŠããŠãããšæããŸãã ã€ãŸããããŒã¿ããŒã¹ã«ä¿åããã¹ããªã®ã¯ãŸãã«ããŒã¿ãäºå®ãä¿åããããšãéèŠãªã®ã§ãã
ããŒã¿ã¢ããªã³ã°ãæåã«ãã
ããã§ã¯ãããŒã¿ãã©ã®ããã«ä¿åããŠãããïŒ ãã®ããã«ã¯ããŸãããŒã¿ã¢ããªã³ã°ããããšã倧äºã§ãã
ããŒã¿ã¢ããªã³ã°ã®äž»ãªç®çã¯ãããŒã¿ã®å®çŸ©ãããã©ãŒããããæ±ºããããšã§ããããŒã¿ã¢ãã«ã«ã¯ã3ã€ã®æ®µéããããŸãã
- æŠå¿µã¹ããŒã
- äºæ¥ã«ãŒã«ãæ¥åããŒã¿ãªã©ãæœè±¡åããŠããšã³ãã£ãã£ãšããŠå®çŸ©ãã
- è«çã¹ããŒã
- ããŒãã«ããã³ã«ã©ã ã®å Žåã¯ERå³ããªããžã§ã¯ãæåã¯ã©ã¹ãªã©ã®å Žåã¯UMLå³ãªã©ã§è¡šçŸããŠå®çŸ©ãã
- ç©çã¹ããŒã
- å®éã«å©çšããããã«ãŠã§ã¢ãªã©ã«åãããŠå®çŸ©ãã
åé ã§ããŒã¿ã¢ããªã³ã°ããŸããããšèª¬æããŸãããããŸãã¯æŠå¿µã¹ããŒãã®éšåããå§ããŸããããŒã¿ã¢ããªã³ã°ã§ã¯ãçŸå®äžçã®ããŒã¿ããšã³ãã£ãã£ã«åããŠããããšã§ãã©ã®ããã«é¢é£ä»ããŠãããæŽçããããšãã§ããŸãã
ããã«ãã£ãŠãRDBMSãªããªã¬ãŒã·ã§ãã«ã¢ãã«ã«ãã£ãŠè«çã¹ããŒããèšèšããæ£èŠåããŠããããšã«ãªããŸããããªã¬ãŒã·ã§ãã«ã¢ãã«ãé£ããããŒã¿ã¢ãã«ãäŸãã°ããªãŒãã°ã©ããªã©ã¯ãRDBMS以å€ã®ããŒã¿ã¹ãã¢ãæ€èšããããšã«ãªããŸãã
ãã®ããã«ããŒã¿ã¢ããªã³ã°ããããšã§ãã©ã®ããŒã¿ããã©ãã«ãã©ã®ããã«ä¿åããŠããããšããããšãããããªããŸãã
ãã®ãšããæ å ±ãä¿åããŠããŸã£ããããªã¬ãŒã·ã§ãã«ã¢ãã«ãèŠæãªããŒã¿ã¢ãã«ãRDBMSã«ä¿åããããéã«ãªã¬ãŒã·ã§ãã«ã¢ãã«ã«ãã¹ããšãããçãã«ããŠããŸããšãåŸã ã«é¿ãèšèšã«ãªã£ãŠããŸããŸãã
ãã®è©±ã¯ãä»å¹Žã®buildersconã§ãããŠããã ããŸããã
RDB THE Right Way ~壮倧ãªãRDBãªãã¡ã¯ã¿ãªã³ã°ç©èª~ - builderscon tokyo 2018
RDBMSãšNoSQLã®äœ¿ãåã
NoSQLã¯ãNot only SQLãã®ããšã§ãRDBMS以å€ã®å šãŠãæããŸãã®ã§ã察象ã¯ãšãŠãåºãç¯å²ã«åã³ãŸãããããèžãŸããäžã§ãRDBMSãšNoSQLãã©ã®ããã«äœ¿ãåãããšè¯ãã®ã§ããããã
ãŸããå¿ããŠã¯ãããªãããšãšããŠãRDBMSãšNoSQLã¯æä»ã§ã¯ãªããå ±åã§ããååšã§ããã§ãã®ã§ãã©ã®ããã«ãŠã§ã¢ã䜿ããã¯ã±ãŒã¹ãã€ã±ãŒã¹ã§ãã
ããã¯ãã¡ããRDBMSã®çš®é¡ã«ãã£ãŠãéããŸããå€§èŠæš¡ãªãªãŒãã¬ããªã«ãå¿ èŠãªã±ãŒã¹ãªã©ãMySQLãè¯ãå Žé¢ããããŸããæ¥åãããŒãè€éã§å¶çŽã欲ãããšãã«ã¯PostgreSQLã䜿ãããšãããã§ããããå€§èŠæš¡ãªECãµã€ããæ±ºæžã·ã¹ãã ã¯Oracle DBã®äž»æŠå Žã§ãã
ãã®ããã«RDBMSã ãã§ã䜿ãåãããããŸãããNoSQLã¯ãããRDBMSã®èŠæãªãšãããåããŠãããååšã§ããã€ãŸããRDBMSãèŠæãªããšãNoSQLã«ããããã¹ãããšããã®ã䜿ãåãã®ã³ãã§ãã
ããã§ãå çšã®ããŒã¿ã¢ããªã³ã°ãéèŠã«ãªããŸããããªãŒãã°ã©ããªã©ãªã¬ãŒã·ã§ãã«ã¢ãã«ä»¥å€ã®ããŒã¿ã¢ãã«ã¯ãRDBMSãèŠæãšããŠããŸããããNoSQLãæ€èšããŠãè¯ãã§ãããã
ããã«è«çèšèšã»ç©çèšèšãšèœãšã蟌ãã ãšããRDBMSã®ãã©ã³ã¶ã¯ã·ã§ã³ãäžèŠã ã£ãããåç §ãæŽæ°ããããŒã ã£ãããããªããå¥ã®ããŒã¿ã¹ãã¢ãæ€èšããããªããŸããå€§èŠæš¡ãªæŽæ°ããã°ããããªç°å¢ã§ã¯ã次ã®ãããªã¢ãŒããã¯ãã£ã®äŸããããŸãã
ãã®ããã«RDBMSãšNoSQLãå ±åããŠããäºãã«åŸæãªãšãããçããããšã倧åã§ãã
æåããNoSQLã䜿ãã¹ãã
ããã¯å çšã®äŸã®éãã±ãŒã¹ãã€ã±ãŒã¹ã§ãããç©æ¥µçã«æ¡çšãã¹ããïŒ ãšãããšæ©ãŸãããšããã§ãã
å©çšããããŒã¿ã¹ãã¢ã®çš®é¡ãå¢ããã°å¢ããã»ã©ã·ã¹ãã ã¯è€éã«ãªããŸãããéçºç°å¢ã®çšæã倧å€ã«ãªããŸããããã¯ãã¹ã¿ãŒãã¢ããã®ã¹ããŒãæã殺ããŠããŸãåå ã«ååãªããŸããããŒã³ãããŠåœãããã©ãããããããªãWebãµãŒãã¹ã§ã¯ãæåããéåãªããŒã¿ã¹ãã¢å±€ãäœã£ãŠãç¡é§ã«ãªããããããŸããã
ããã§è«çèšèšæã«ãããèžãŸããäžã§ãRDBMSã«ãããã倿ãã¢ãªã§ãããããããšãã«å¹ããŠããã®ããJSONåãCTEïŒååž°ã¯ãšãªïŒãšãã£ãRDBMSã®æ©èœã§ããNoSQLã䜿ããããšããRDBMSã®æ©èœã§ååãªå¯Ÿå¿ãã§ããªãããäžåºŠã¯æ€èšããŠã¿ãŠãã ããã
ãã ãæ³šæãå¿ èŠãªããšã§ãããRDBMSã§è¡šçŸã§ãããšããŠããèŠæãªããšã¯å€ãããŸããããªã¬ãŒã·ã§ãã«ã¢ãã«ã®èšèšã®ã¬ãŒã«ãèžã¿å€ããŠããããšãæèããããã«ããŸãããããã®äžã§ãå°èŠæš¡ãªãšãããªã©ã§ãŸãRDBMSã®æ©èœã䜿ã£ãŠå®è£ ããããšã¯ãããžãã¹å€æãšããŠãããã話ã§ãã
ãã®ããã«å€ãã®ã·ã¹ãã ã§RDBMSãæ¡çšãããçç±ã®1ã€ã¯ããã©ã³ã¶ã¯ã·ã§ã³ä»¥å€ã«ãRDBMSã ãã§å€ãã®ã·ã¹ãã ãæ§ç¯ããããšãã§ããããã§ãããã®ç¹æ§ãçãããŠãçŽ æ©ããµãŒãã¹ãæ§ç¯ããŠãããŸãããã
ããŒã³ãã¯é·ãDBã®æ ã®å§ãŸã
ãããŸã§çè«ãšçæ³ã®è©±ãããŠããŸããããå®éã®çŸå Žã§ã¯ç°¡åãªããšã§ã¯ãªããšãã£ãããæ¹ãããã§ããããå®éã«ã劥åç¹ãã©ãã«çœ®ããã®å€æã¯éåžžã«é£ãããæ£è§£ã¯ãããŸããã
RDBMSã«é¢ãããŸãšããšããŠã¯ã以äžã®4ç¹ãå¿ ãå®ã£ãŠãã ããããã®æ¹ãè¯ãçµæã«ãªããŸãã
- ããŒã¿ã¢ããªã³ã°ããã£ãããšãæåã«è¡ã
- æ£èŠåãè¡ã
- å¶çŽã掻çšãã
- RDBMSã®é£ã³éå ·ã«ãããªãé Œããªã
åé ã«ãè¿°ã¹ããšãããåæèšèšã¯ãã®åŸã®ãµãŒãã¹ã®æ¹åã«å€§ããªåœ±é¿ãäžããŸãããã®ããã«ãããããã®ç¹ãåžžã«æèããããã«ããŸãããã
1ãã100ã«æé·ããä»ãæŠã£ãŠããããš
åæèšèšãããŸããã£ãŠãããã®åŸã®ç©ã¿éããããŸããããšã¯éããŸããããŸãæåã¯ã¹ããŒããåªå ããŠäœã£ãèšèšãåŸã ã«èª²é¡ãããããæè¡çè² åµã«ãªãããšããããŸãã
ãµãŒãã¹ãããçšåºŠæé·ããŠãããšããã®ãããªèª²é¡ã«å¯ŸããŠåãåãå¿ èŠããããŸãããã®éã«å¿ èŠãªããšãããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ã§ãã2017幎ã®buildersconã§ããããŒã¿ããŒã¹ã®ãªãã¡ã¯ã¿ãªã³ã°ã«ã€ããŠç»å£ããŸããã
RDBã¢ã³ããã¿ãŒã³ ãªãã¡ã¯ã¿ãªã³ã° - builderscon tokyo 2017
ããã§ã¯å®éã«äžèšãèžãŸããäžã§ãä»ãŸãã«ç§ãè¡ã£ãŠããããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ã«ã€ããŠã玹ä»ããŸãã
ããŒã¿ããŒã¹ã®äžåãªåã
ããŒã¿ããŒã¹ã®ãªãã¡ã¯ã¿ãªã³ã°ã®å¯Ÿè±¡ãèŠæ¥µããå¿ èŠããããŸããäŸãã°ãåèãããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ãïŒAddison-Wesley Professionalã2006ãæ¥æ¬èªçã¯çµ¶çïŒã§ã¯ã次ã®ãããªé ç®ã¯ãªãã¡ã¯ã¿ãªã³ã°ã®å¯Ÿè±¡ãšèšèŒãããŠããŸãã
- è€æ°ã®ç®çã«äœ¿ãããã«ã©ã
- ã¬ã³ãŒãã®å±æ§ã«åãããŠå€ã®æå³ãå€ããã«ã©ã
- äŒå¡ã ãšå ¥äŒæ¥ãã¹ã¿ããã ãšå ¥ç€Ÿæ¥ãšãããªã©
- è€æ°ã®ç®çã«äœ¿ãããããŒãã«
- ã«ã©ã ã®å Žåãšåæ§ã«1ã€ã®ããŒãã«ãè€æ°ã®æå³ãæã€
- UsersããŒãã«ã«äŒå¡ã管çè ãäºæ¥è ãªã©ãæ··åšããŠãããªã©
- åé·ãªããŒã¿
- 鿣èŠåãªã©
- çå¹Žææ¥ãšå¹Žéœ¢ã«ã©ã ããã£ãå Žåã1幎çµã£ããšãã«å¹Žéœ¢ã«ã©ã ãäºå®ãããããŠããŒã¿ã®æŽåæ§ãåããªããªãã
- ã«ã©ã ã®å€ãããããŒãã«
- memo1ãmemo2ãmemo3...memo99 ãªã©
- è€æ°ã®ãšã³ãã£ãã£ã®è²¬åãæããŠããå¯èœæ§ããã
- è¡ã®å€ãããããŒãã«
- ããŒã¿ãåé€ããªãããŒãã«
- åé€ãæãããã«è«çåé€ã§å¯Ÿå¿ãããªã©
- æ¬åœã«ããŒã¿ã®è¡æ°ã倧ãããªãããŒãã«ãªãããŒãã£ã·ã§ã³ãªã©ãæ€èšãã
- ãã¹ããŒããã«ã©ã
- ããŒã¿ã®äžã«ããžãã¹ããžãã¯ãªã©ãããŒã¿ä»¥äžã®æå³ãæã£ãŠãããã®
- 9ããå§ãŸãidã¯ç®¡çè ã1ããå§ãŸãidã¯ãŠãŒã¶ãŒãªã©
- 倿Žã®ææ
- ããŒã¿ããŒã¹ã®å€æŽãããŒã¿ã®æŽæ°ã«ãã£ãŠãã¢ããªã±ãŒã·ã§ã³ãå£ããã®ã§ã¯ïŒ ãšããææããã£ãŠæãä»ãããªãç¶æ
ãããã®ç®æãèŠã€ãããšããéèŠãªã®ã¯æè¡çè² åµãååããå¿ èŠã¯ãããïŒ ã確èªããããšã§ãã
æè¡çè² åµã«ã¯ãããžãã¹çãªäŸ¡å€ã®ããããŒãºãšãå®å šãªãè² åµã®è ã£ãçä¹³ããããŸããã©ã¡ããç°èãæŸã£ãŠãããšããŠããããã«å¯Ÿããã¢ãããŒãã¯å€§ããå€ãããŸãã
ããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ã¯æéãæéãããããããã ããããèŠã€ããéã«ã¯æ¬¡ã®ç¹ãæ€èšããŸãããã
- ãªãã¡ã¯ã¿ãªã³ã°ã®æå³ã¯ãããïŒ
- äœæ¥ã«å¿ããã®å¹æã¯ãããïŒ
- ä»ããã¹ããïŒ
äŸãã°ãã«ã©ã ã®ååãäžé©åã ã£ããšããŸããååãæ£ãããããããå€ãã®ã¢ããªã±ãŒã·ã§ã³ã³ãŒããä¿®æ£ããå¿ èŠããããšãã«è²»çšå¯Ÿå¹æãããå Žé¢ã¯å°ãªãã§ãããã
ããã«å¯ŸããŠããŒã¿ã®äžæŽåãé »çºããåãåãã察å¿ã«è¿œãããŠããç¶æ³ãªããããŒã¿ã®å¶çŽã®è¿œå ãªã©ã¯å·¥æ°ãæãã£ãŠãåãçµãã¹ã課é¡ã§ãããã®ããã«äžåãªåããå ãåããé©åãªåªå é äœãã€ããŠããããšã倧åã§ãã
ãªãã¡ã¯ã¿ãªã³ã°ã®ããã®æºå
ããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ããããšæ±ºããå ŽåãæŠãåã®æºåãå¿ èŠã§ãã
ãŸããªãã¡ã¯ã¿ãªã³ã°ã®æ¹åæ§ã決ããå¿ èŠããããŸããèªåããããããªãã¡ã¯ã¿ãªã³ã°ã¯äœãªã®ãïŒ ããã£ããæ±ºããŸããããäž»ãªããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ã®åé¡ã¯æ¬¡ã®ãšããã§ãã
- æ§é âŠâŠ ããŒãã«ãViewã®å®çŸ©
- ããŒã¿å質 âŠâŠ ããŒã¿ã®å€
- åç §æŽåæ§ âŠâŠ ããŒãã«ã®é¢é£æ§
- ã¡ãœãã âŠâŠ ã¹ãã¢ãããã·ãŒãžã£ãŒ
- å€æŽ âŠâŠ ããŒãã«ãã«ã©ã ã®è¿œå
- ã¢ãŒããã¯ã㣠âŠâŠ ã¢ããªãšã®ã€ã³ã¿ãŒãã§ã€ã¹
åé¡ãã¯ã£ãããã察象ãéžå®ããŠç§»è¡æéãæ±ºãŸãã°ã次ã«å¿ èŠãªã¿ã¹ã¯ã¯å®éã«ãªãã¡ã¯ã¿ãªã³ã°ããããã®æºåã§ã倧ãã2ã€ãããŸãã
- ãã¹ããšã¢ãã¿ãªã³ã°ãæãã
- ãªãªãŒã¹æŠç¥ã決ãã
ç¹ã«ãã¹ããã¢ãã¿ãªã³ã°ãäžååã§ã¯ããªãã¡ã¯ã¿ãªã³ã°äžã«çºçããåé¡ã«å¯Ÿå¿ããŠãããšããç¡çã§æŠãããšã«ãªããŸããããŒã¿ããŒã¹é害ã¯å³ãµãŒãã¹é害ã§ããããäºåã«æºåããã£ããæŽããŠãããŸãããã
æºåãæŽãã°ãããšã¯ç²ã ãšå°ãããªãã¡ã¯ã¿ãªã³ã°ãç¹°ãè¿ããŠããã®ã¿ã§ããæéã¯ããããŸãããçµæã¯å¿ ãã€ããŠããŸãã
现ããç¹ã¯ãåè¿°ããbuilderscon 2017ã®ç»å£å 容ã§èª¬æããŠããŸãã®ã§ããã²èŠãŠããã ããã°ãšæããŸãã
壮倧ãªãããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°
ãããŸã§èªãã èªæžã®çããã¯ãå®éã®ããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ããŠãã話ãç¥ãããããšæããŠãããšæããŸããããã§ãç§ãå®éã«ããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ãè¡ã£ãŠããå 容ããåè¿°ã®è©±ãèžãŸããŠèª¬æããŠãããŸãã
çŸç¶ãææ¡ãã
ãªãã«ã¬ã®ããŒã¿ããŒã¹ã¯ã2011幎ã«ãµãŒãã¹ãããŒã³ããããŠä»¥æ¥ãäŸã«æŒãã远å 远å ã§æé·ããŠããŸããããŸããå åŒãµãŒãã¹ã®ãã¿ããªã®å©æŽ»ããªã©ãããåç §ãããŠããããŸãã«ãã«ãã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ã§ãã
ãããããšããã©ããã§å¶çŽãäžååã ã£ãããããã©ãŒãã³ã¹ã®éœåã§éæ£èŠåãããŠãããã§ãããŒã¿ã®äžæŽåã«æ©ãŸãããŠããŸãããç¹ã«ã婿޻ããŒãã£ãã€ããã©ãpartyããŒãã«ãè¥å€§åããŠãããå€ãã®å Žæã«äŸåãããããŠããã©ãŒãã³ã¹ã®ããã«ããã¯ã«ãªã£ãŠããŸããã
ããã¯å®å šã«ããŒã¿ããŒã¹ã®äžåãªåããæŸã£ãŠããŸããããã§ãããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ãè¡ã£ãŠããããšã決ããŸããã
æ¹éãæ±ºãã
å®éã«ããŒã¿ããŒã¹ããªãã¡ã¯ã¿ãªã³ã°ããéã®æ¹éã¯ããã€ãèããããŸãããä»åã¯2ã€ã®æ¹éãæ€èšããŸããã
- ç¹å®ã®ã¿ã€ãã³ã°ã§ãªãã¡ã¯ã¿ãªã³ã°åŸã®ç¶æ ã«åãæ¿ãã
- ãªãã¡ã¯ã¿ãªã³ã°åŸã®ç¶æ ãšåã®ç¶æ ãäœããäž¡æ¹ã«æŽæ°ãè¡ã
1ã¯ãç§»è¡èšç»ããã£ããçµãã°ãŠã©ãŒã¿ãŒãã©ãŒã«åã§é²ããããšãã§ããã®ã§å¹ççã§ããã察å¿ãäžåºŠã§å®äºããŸãããããããªãã«ã¬ä»¥å€ã®ãµãŒãã¹ã§ãDBãåç §ããŠããŸããããªãã«ã¬ã®æ°èŠéçºãæ¢ããããšã¯ã§ããŸããã
ããã§ãä»åã¯2ã®æ¹éãéžæããæéã¯ãããã確å®ã«é²ããŠããããšã«ããŸãããããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ã¯å°ããã¹ã³ãŒãã§é²ããŠããããšãæåã®ç§èš£ã ããã§ãã
ããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ã®ææ³
ææ³ãšããŠã¯ãäžèšã®å³ã®ããã«ããŒã¿ããŒã¹ãã³ããŒããã³ããŒå ã§ããŒãã«ãé©åã«åèšèšããããŒãã«æ§é ã«å²ãæ¯ãããã«ããŸãããããã«ãããæ¢åã®ã·ã¹ãã ã¯å šã圱é¿ãåããŸããã
ãããŠãåãæ¿ãæ¹ã¯ãåç §ãæœè±¡åããããREST APIãçšæããåç §ã»æŽæ°ãAPIçµç±ã«ããããšã§ãã¢ãã«å±€ã®ãªãã¡ã¯ã¿ãªã³ã°ãšDBç§»è¡ã段éçã«è¡ãããšã«ããŸããã
ããã§éèŠãªå€æã¯ãç§»è¡å ã®RDBMSãšããŠå ã®Amazon Auroraã®ããŒã¹ã§ããMySQLã§ã¯ãªããPostgreSQLãæ¡çšããããšã§ããçç±ã¯2ã€ãããŸãã
1ã€ç®ã¯ãå€ãããŒã¿æ§é ããæ°ããããŒã¿æ§é ã«å€æŽããéšåããããªã¬ãŒãæ ã£ãŠããããšã§ããAurora 1ç³»ã®ããŒã¹ã«ãªã£ãŠããMySQL 5.6ã¯ã1ã€ã®ããŒãã«ã®1ã€ã®ã€ãã³ãã«1ã€ã®ããªã¬ãŒããèšå®ã§ããŸãããéåžžã®ç¯å²ã§ããã°ããã§å¿ èŠååãšãããã®ã§ãããä»åã¯ããªãã®å€§èŠæš¡ãªãªãã¡ã¯ã¿ãªã³ã°ã«ãªããŸããã
å®éã«partyããŒãã«ã¯ã1ã€ã®ããŒãã«ãã5å以äžã«åå²ããŠããŸãããããªããšã1ã€ã®ããªã¬ãŒã§å
šãŠå¯Ÿå¿ããã«ã¯è²¬åã倧ããããŸãã
MySQL 5.7ãMySQL 8ãAurora 2ç³»ãæ€èšããŸããããããªã¬ãŒã®æè»æ§ã§ã¯PostgreSQLãåªããŠãããããåæ°ã«å¶éã®ãªãPostgreSQLãæ¡çšããŸããã
ããããçŸç¶ã¯Auroraã䜿ã£ãŠãããããPostgreSQLã«ã¯ç°çš®DBéã®ç§»è¡ãå¿ èŠã«ãªããŸããç°çš®DBéç§»è¡ããŒã«ãããã€ãæ€èšããçµæãAWS Database Migration ServiceïŒä»¥äžãDMSïŒãæ¡çšããŸããã
DMSã§ã¯ãç°çš®DBéã§ããªã¢ã«ã¿ã€ã ã«ããŸãã§éåæã¬ããªã±ãŒã·ã§ã³ããŠãããã®ããã«é£æºã§ããããããµãŒãã¹ãæ¢ããããšãªãç§»è¡ãå¯èœã«ãªããŸãããŸããã³ã¹ãé¢ã§ãDMSã§å©çšããã€ã³ã¹ã¿ã³ã¹ãµã€ãºã®ã¿ãšãä»ã®ããŒã«ããå§åçã«ã¡ãªããããããŸããã
以äžã®çµæãããçŸåšã¯æ¬¡ã®ãããªæ§æã«ãªã£ãŠããŸãã
ãã1ã€ã®çç±ã¯ãæ £ããŠããããã°ã©ãã³ã°èšèªã§ã¹ãã¢ããã¡ã³ã¯ã·ã§ã³ãæžãããšããç¹ã§ã次ã®ããã°èšäºã§ã説æããŠããããã«pl/v8ïŒJavaScriptïŒãæ¡çšããŠããŸãã
ãã®ç¶æ ã§ãAPIãäœããšãããŸã§ã¯æ¢åã®ãµãŒãã¹ã¯å šã圱é¿ãåããŸãããããçšåºŠAPIãäœã£ãŠãAPIã®çµæãšæ¢åã®çµæã®diffãèŠãããšã§ãæ¯ãèãã®ãã¹ããããããšãã§ããŸããåç §ã®åãæ¿ããAPIåäœã§è¡ãããšãã§ããããŒã«ããã¯ãç°¡åã«è¡ãããšãã§ãããããå°ããå§ããããšã«é©ããŠããŸãã
ç°çš®DBéç§»è¡ã«ã€ããŠã¯ã宿
åœã®
ããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ã®é²æ
å®éã«äžèšã®æ¹æ³ã§æºåãå§ããŠãçŸåš7ã«æãçµã£ãŠããŸããã¡ãªããã§ããæ¢åãµãŒãã¹ã«åœ±é¿ãäžããªãããšãAPIåããããšã§ããŒã¿ã¹ãã¢å±€ãæœè±¡åã§ããããšãåãå¥ããŠãé 調ã«ç§»è¡ããŠããŸãã
ãã£ãšãçŸç¶ã®ã¹ã±ãžã¥ãŒã«ã§ã¯ãå®å šã«ç§»è¡ã§ããã®ã¯2019幎4æãç®åŠã«ããŠããŸãã®ã§ã1幎èšç»ãšãªããŸãããŸããç§»è¡ããŠçµããã§ã¯ãªããç§»è¡åŸãæ°ããªããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ã¯å§ãŸããŸãããªããªããããŒã¿ã¯ç§»è¡äžãç§»è¡åŸãæé·ãç¶ããããã§ãã
ãããããæŠãç¶ãããšã³ãžãã¢ãž
ãããŸã§èªãã§ããã ããŸãããããããã§ãããïŒ ããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ã¯ããã®åœ±é¿ç¯å²ã®åºãããèŠåŽãå€ãããã®å²ã«ã¯ããžãã¹çãªã¡ãªãããå°ãªããšèšãããããšãå€ããšããã§ããæ°æ©èœã®è¿œå ã®åªå é äœãé«ãããããšã§ãã©ãããŠãåŸåãã«ãããã¡ãªã¿ã¹ã¯ã§ããããã€ãã¯åãåãå¿ èŠããããŸãã
ããŒã¿ããŒã¹ã®åé¡ã¯ãæéãçµãŠã°çµã€ã»ã©ããŒã¿ããŒã¹èªäœã®æé·ãšãšãã«å€§ãããªã£ãŠãããŸããã ããããã誰ããèŠæãæã£ãŠåãçµãã§è¡ãå¿ èŠããããŸãããããŠããã®èª°ãã¯ãã®ãµãŒãã¹ã«è§ŠããŠããããªãèªèº«ã§ãã
ç§ã®å°æ¬ãããšã³ãžãã¢ã®èšèãåŒçšããŸãã
æãåããããã®ã ããäžçãå€ãã by
id:onishi ![]()
ãã®èšèã¯ççã ãšæã£ãŠããŸããããªãã®ãµãŒãã¹ãè²ãŠãå€ããŠããã®ã¯ããªãã®ãã®æã«å§ããããŠããã®ã§ãããã®èšäºãèŠãçãããããããæ©ã«èªåãã¡ã®ããŒã¿ããŒã¹ããã²èŠçŽããŠã¿ãŠãã ããã
æœæ ¹ 壮倧ïŒããã»ãããšãïŒ




