nosqlãœãªã¥ãŒã·ã§ã³ã¯çŸåšæããªã£ãŠãããšããäºå®ã«ããããããã人ã ã¯æ°ããã¿ã€ãã®ã¹ãã¬ãŒãžã«åãæ¿ããããšã«æ¶æ¥µçã§ãã ããã¯æ£ããã§ããïŒ ç§ã®æèŠã§ã¯ãã¯ãã ãããŠãããã®éã§åºäŒã£ãããŸããŸãªnosqlãªããžããªã®äŸã䜿çšããŠããã®çç±ã説æããããšããŸãã
ç©èªã®å§ãŸã
ãã¹ãŠã®è¯ãäžæ¥ã ããã¯å€§èŠæš¡ãªãšãã£ã·ã§ã³ã§ã®ç§ã®æåã®ããã³ãã¹ããã§ããèå³æ·±ãçµæãåŸãããããšãé¡ã£ãŠããŸã:) nosqlã®çšèªã¯ãã®èšäºã§æžãããŠããŸã ã
æãäžè¬çãªDBMSã§ããMySqlãPostgreSqlãOracleãæ€èšããŠãã ããã å€ãã®éãããããŸããã3ã€ãšããããã°ãããè±å¯ãªæ©èœãåãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã§ãã å°ããªã«ãã§çšã®ã¯ãŒã¯ãããŒã·ã¹ãã ãéè¡ã¢ããªã±ãŒã·ã§ã³ãååºãµã€ããäœæã§ããŸãã ããã¯ãã»ãšãã©ãã¹ãŠã®ã¿ã¹ã¯ã«å¯Ÿããäžè¬çãªãœãªã¥ãŒã·ã§ã³ã§ãã
åå¿è ã®éçºè ã¯ãæåã®SQLããŒã¿ããŒã¹ã«ééãããšãã«ã©ã®ãããªåé¡ã«ééããŸããïŒ
- SQLæ§æãåŠã¶å¿ èŠããã
- ãªã¬ãŒã·ã§ãã«ã¢ãã«ã®æ¬è³ªãç解ããå¿ èŠããã
- ãæ°ã«å ¥ãã®éçºèšèªã§ããŒã¿ããŒã¹ã®ã¯ã©ã€ã¢ã³ãããã¹ã¿ãŒããå¿ èŠããããŸã
ããã ãã§ãããã®åŸã人ã¯1ã€ã®ããŒã¿ããŒã¹ããã¹ã¿ãŒããã ãã§ãªããããŒã¿ããŒã¹ãã¡ããªããã¹ã¿ãŒããããšãã°MysqlããOracleã«ç°¡åã«åãæ¿ããããšãã§ããŸãã ïŒPL / SQLãšä»ã®éèŠãªéãã«ã€ããŠå°ãå¿ããŠãã ããïŒã ãããŠããŸã ORMã䜿çšããŠããå Žåã¯...
ãã®æ³åäžã®åçŽãã¯ãæ®é ·ãªåè«ãæŒããããšãã§ããŸãã ããšãã°ãOracleã§5è¡ã®ã¯ãšãªããããã°ããå Žåãæé©åãè©Šã¿ãŸãã ããã§ã¯ãç¡æã®ããŒãºã¯ããºãæãã§ã®ã¿çºçããããšãç解ãå§ããŸãã
ããã«ãããããããããã¯èšå€§ãªéã®ã¯ãšãªèšèªæ段ã䜿çšããŠæ å ±ãéžæãã䟿å©ãã§ã-ããã¯å¹žãã§ã¯ãããŸãããïŒ
ççŽã«èšã£ãŠã2幎以äžãç§ã¯mysqlãoracleãçå£ã«æ€èšããŠããŸããã ãããŠãç§ãæ°ãæ£ãããŠèªæãããã®ã説æããŸã...
ã¢ã«ãã¬ã¹ã³
ãããŠã ãããæ©èœããããã«ã¯SQLãœãªã¥ãŒã·ã§ã³ãå¿ èŠã§ãããç§ã¯ãŸã alfrescoãç§ã®æåã®nosqlããŒã¿ããŒã¹ãšèããŠããŸãã
ãã®çŽ æŽããããã©ãããã©ãŒã ã«åºã¥ããŠæåã«åº§ã£ãŠéçºãã人ã«ãšã£ãŠãäœãå匷ããå¿ èŠããããŸããïŒ ã¯ããå®éã«ã¯ãããã ãã§ã:)
圌女ã¯å®å šã«ç°ãªã£ãŠããŸãã ãã®äžã®ããŒã¿æ§é ã¯ãxmlã䜿çšããŠèšè¿°ãããŸãã æ¥ç¶ã¯ãããããé¢é£ä»ãã䜿çšããŠå®çŸ©ãããŸãã äŸïŒæçš¿ããã®äžã®ã³ã¡ã³ãã®ãªã¹ãã¯é¢é£ä»ãã§ãã ãããŠãã¢ãã«ã®ç¶æ¿ããããŸãã 1ã€ã®ãããŒãã«ããå¥ã®ãããŒãã«ãã«ç¶æ¿ã§ããŸãã
nosqlãœãªã¥ãŒã·ã§ã³ã¯å¿ ç¶çã«é«éãªãªããžããªã§ãããšããæèŠããããŸãã ããããalfrescoã¯éåžžã«é ããªããžããªã§ãã æ¬åœã«ãæ¬åœã«ã æ¬ ç¹ã®ãã¡ããªã¯ãšã¹ãAPIã«ååãä»ããããšãã§ããŸãã ãªããžããªã«ã¢ã¯ã»ã¹ããã«ã¯2ã€ã®æ¹æ³ããããŸããjavaapiã䜿çšããŠIDã§é¢é£ä»ããšãªããžã§ã¯ããååŸããæ¹æ³ãšãLucene Query Engineãä»ããå±æ§ãšé¢é£ä»ãã«ããéžæã䜿çšããããè€éãªã¯ãšãªã§ãã ã¯ãšãªã¯æãããã«èŠããŸãããã¯ãšãªãšã³ãžã³ã®åçŽãªã©ãããŒãäœæããŠã次ã®ãããªã¯ãšãªãäœæã§ããããã«ããŸããïŒ
Query.field(title).eq("").and(Query.field(text).like("**"));
ãããŠäººçã¯ããçŸããããã楜ãããªããŸããã ãªã¯ãšã¹ãã¯ã¡ã¢ãªããæžã蟌ãŸããŸããããååãèŠã€ããŸãïŒããã«ã¡ã¯ïŒ:)ïŒ
ããã§ããããã¯çŽ æŽãããããšã§ãããªããªããã¯ãŒã¯ãããŒã·ã¹ãã ãäœæããããšã¯éåžžã«äŸ¿å©ã§ãããããã¥ã¡ã³ãã移åãã倧èŠæš¡ã§è€éãªããžãã¹ããã»ã¹ã§ã1人ã®ãŠãŒã¶ãŒãšãå€ãéãããããã§ãã æçµçã«äœããã®çµè«ã«éãããŸã§ã ããšãã°ã解決ããã«ã¯ïŒdoneã
ãã®åŸãããŒãžã§ã³3ã®å§ãŸãã§ããã2011幎ã«ã¯4ããªãªãŒã¹ãããŸãããå€ãã®ãããããã®ãè¿œå ãããããããããã©ãŒãã³ã¹ãåäžããŸããããæ°ããã¹ãã¬ãŒãžã«å€¢äžã«ãªããããŸãã...
ã«ãµã³ãã©
ããã¯ç§ã®æã§ãããä»ãŸã§å€ãããªãã ååã¯åœŒå¥³ã«ããŸãç±å¿ã§ã¯ãããŸããã§ããããããã¯ãµãŒããŒäžã®RAMã®äžè¶³ã«ãããã®ã ãšç§ã¯èããŠããŸãã åœç¶ããµãŒããŒäžã«ãããããã5åè¡ã«ãªããšã8 GBãè¶ ããRAMã䜿çšããå¿ èŠããããŸã...ããŒãããã³ã°ã¢ããããããšããããŸãã
ããã...éåžžã«é«éãªèšé²ãé«éãªèªã¿åãã ããŒã¿ãå®å šã«å¶åŸ¡ããããŒã¿ããŒã¹ãæžã蟌ã¿é床ãŸãã¯èªã¿åãé床ã«æ¥ç¶ãããªããšãã確信ã ç§ã¯ãŸã èªåã®ãããžã§ã¯ãã§ããã䜿çšããŠããŸããã圌女ã¯ãŸã ç§ã倱æãããŠããŸããã ãã®åºå°ã®ç¹åŸŽã¯ã殺ãã®ãé£ããããšã§ãã ããšãã°ãããã©ã«ãèšå®ã®MongoDbã䜿çšããå Žåãªã©ããµãŒããŒãããŠã³ããããšãæããã埩å ãè¡ãå¿ èŠããããŸãã
ããŒã¿ããŒã¹ãžã®ãªã¯ãšã¹ãã¯thrift apiã䜿çšããŠè¡ãããŸãããããã¯å€èŠ³ãéåžžã«æãã§ãã æ¥ç¶ããŒã«ã®ãããªå¿ èŠãªèšåããã¹ãŠäžè¶³ããŠããŸãã ãã€ãã®ã»ãããå ¥ãããšãå®éã«ã¯ãã€ãã®ã»ãããåŸãããŸãã ãã®åé¡ã¯ãAlfrescoã®å Žåãšåæ§ã«ããã倧ããªèŠæš¡ã§ã®ã¿è§£æ±ºããŸãããORMãã¬ãŒã ã¯ãŒã¯ãäœæããå¿ èŠããããŸãããããã¯ã,çŽã®ã¢ããªã³ãšãªããåæã«ããã©ãŒãã³ã¹ã®å¶éã課ããŸããã§ããã èªè»¢è»ã«ä»£ãããªãŒãã³ãœãŒã¹ã®éžæè¢ããããŸãããããããã¯ãã¹ãŠã解決ãããã¿ã¹ã¯ã®ã³ã³ããã¹ãã§ã¯äžå¿«ã«æããŸããã
ç§ã®è£œåãå©å·±çã«äœ¿ãå§ããããã«å€§éã®ãã°ã¬ããŒããæããŠãããããŒã ãªãŒããŒãšæ£è ã®ååã«æè¬ããŸã:)ïŒ
ããã«ãããããããã«ãµã³ãã©ã¯ãŸã ã¡ã¢ãªãé£ã¹ãŠããã®äžè¶³ã§ãã³ã°ããŸãã...
ãªã¢ã¯
圌ãšã®ç¥ãåãã¯çãã£ãã ç§ã¯habrã§èªãã -ã¯ãŒã«ã ç§ã¯ãµã€ãã§èªãã -ã¯ãŒã«ã ã€ã³ã¹ããŒã«ããããã¹ããéå§ããŸããã ãŸããããŒã¿ããŒã¹ãžã®ã¯ãšãªã«å¿ èŠãªæ©èœãäžè¶³ããŠããããšã«æžæã£ãŠããŸããã 第äºã«ã2,000äžè¡ã®èšé²ã§ãåºå°ã¯éåžžã«å¥åŠãªæ¯ãèããããŸããã 圌女ã¯ã¡ããã©æ»ãã ã åèµ·åãããããŒã¹ã¯ããã«å¥åŠãªåäœãããŸããïŒæèŒããã2,000äžè¡ãã10åéããŒããããäœããã®çç±ã§ã4ã€ã®ãã¡1ã€ã®ã³ã¢ã®ã¿ã100ïŒ åŒ·å¶ããŸããã
ããã¯ç§ã®å人çãªç 究ã§ãã£ãããããã®ããŒã¿ããŒã¹ã«æéãè²»ããããšã¯ããããããããŸããã§ããã
ãã€ããŒããŒãã«
ãã®ããŒã¿ããŒã¹ã¯ããµãŒããŒãžã®10åã®ã¬ã³ãŒãã«å¯Ÿããã¡ã¢ãªéçŽåºŠãé«ããªããèšé²ãéåžžã«é«éã ã£ããããæãã®ããã«èŠããŸããã ãã¡ãããããã§ã®æžã蟌ã¿é床ã¯ãéžæãããtimeout'aãã£ã¹ã¯ãžã®ãã©ãã·ã¥ã®ã¿ã«äŸåããŸãã cassandraã®åŸã®Thrift APIã¯åé¡ãåŒãèµ·ããããormã«ãã€ããŒããŒãã«ã®ãµããŒããè¿œå ããããã«æ®ããŸããã
ãããããã®ããŒã¹ã¯éåžžã«äžå®å®ã§ããããã°ã¯ããŸãæ å ±ããªãã£ãããã補åãå®å®çãšåŒã°ããã®ãã©ããçåã«æãã ãã§ããã ãããäžã®åé¡ã«ã€ããŠååãèŠã€ããããšããŠããäœãåŸãããŸããã§ããã åèµ·åããã ãã§ãããŒã¹ãåŸ ã€ããšã¯ã§ããŸããã ãããŠãã¿ã³ããªã³ã§æã¡äžããå¿ èŠããããŸããã2ååèµ·åãããã°ãåé€ããããã«2ã3ååèµ·åããŸãã ãŸãã¯5åã åé¡ã¯ããã«ã¯çŸããªãã£ããã圌女ã¯äœãšãæ¬çªã«åããŠåºçºããã äžè¬çã«ããªãã·ã§ã³ã§ã¯ãããŸãã...
Mysql
ïŒããšãã°ïŒååã®æ²ããé¡ãæ²ããã Nosqlã¯åé¡ã解決ããŸããã§ããã ãã¹ãŠãç¡é§ã§ããã ãã¶ãã¶ãã¿ã¹ã¯ã§mysqlããã¹ããã30å件ã®ã¬ã³ãŒãã§éåžžã«ããŸãæ©èœããŸããã ããã¯ããã©ãããŠïŒ çµå±ã®ãšãããnosqlïŒ ããã°ããŒã¿ïŒãå®ããŒã¿ã«Mysqlã䜿çšããå¿ èŠããããŸããã åœç¶ïŒçµåãªããè€éãªæ¥ç¶ã å®éã®ããŒã¿ãç¶æ³ãå€ããmysqlã®ã¿ã¹ã¯ã®1ã€ãæ©èœããªãã£ããšèšããªããã°ãªããŸããã ããã¯å®å šã«ã§ãã 4ç§ã®èŠæ±ã¯è¶ ããŠããŸãã å³å¯ã«æé©åãããã¯ãšãªã§ãã£ãŠããä»åã¯æ¥ç¶ãšSQLæ©èœã䜿çšããŸãã ããããMysqlã¯ãŸã£ããç°ãªãä»äºãããŸããã äž»ãªãã®ã¯ãèšé²ãããã®æ£ããè¡æ°ã§ãã
äžè¬çã«ãç§ãã¡ã¯è²¡æ¿çã«å¶éãããŠãããããå€ãã®åŒ·åãªãµãŒããŒãè³Œå ¥ããããšã¯äžå¯èœã§ããã 圌ããäžãããã®ã䜿ããŸããã ãããŠã圌ãã¯ã§ããã ãæ©ãä¿åããããšããŸããã
ã¢ã³ãŽãã
ãªã¹ããããŠããããŒã¿ããŒã¹ãšäžŠè¡ããŠã ããã䜿çš/䜿çšããŸã ã ããã¯ãæ°ã«å ¥ãã®ããŒã¿ããŒã¹ã§ãããã6ã€ã®ãããžã§ã¯ãã§æ¢ã«äœ¿çšããŠããŸãã å¿«é©ããšããŠãJavaã®äŸ¿å©ãªORMãã¬ãŒã ã¯ãŒã¯ã§ããMorphiaããããŸããããã¯ãããŒã¿ãµã³ããªã³ã°ãã¹ã±ãŒã©ããªãã£ãé床ã®å€§ããªæ©äŒã§ãã
ãã¡ãããããã«ã¯åŸ®åŠãªéãããããŸãã
- 匷ãæšå¥šãããmongoããŒãžã§ã³ã䜿çš> 2
- é©åãªã»ããã¢ãããè¡ã£ãŠããªãå Žåã¯ãmongoãã·ã£ããããŠã³ããã«ãµãŒããŒã®åèµ·åã«æ³šæããŠãã ãã
- mongorestoreãšãžã£ãŒããªã³ã°ã«ã€ããŠèªã:)
ç§ã®æèŠã§ã¯ããã®ããŒã¿ããŒã¹ã¯SQLãœãªã¥ãŒã·ã§ã³ãšNosqlã®äžçã®éã®ç§»è¡ãšããŠçŽ æŽããããã®ã§ãã å人çã«ãã®ããŒã¿ããŒã¹ã®å©ç¹ã¯äœã§ããïŒ ã¹ããŒãããªãŒããªã¯ãšã¹ãã®ã·ã³ãã«ããããã¥ã¡ã³ãæåãã¹ã±ãŒã©ããªãã£ã ãã®ããŒã¿ããŒã¹ãçãŠãããã©ãã€ã ã«æºè¶³ããŠããŸãã
ããã«ãããããããmongoã®6ã€ã®ãããžã§ã¯ããããå ¥æµŽããã«mysqlã§3ã4ãäœæããããšãã§ããŸãã ç§ã¯ã¢ã³ãŽã奜ãã ãããšãã£ãŠãã¢ã³ãŽã§ããããæžããŸããã
Hadoop
æè¿ãã®ä»äºãå§ããŸãã-çŽ3ãæåãæ°ããä»äºã«ç§»è¡ããŸããã Hadoopã¯ã倧éã®ããŒã¿ãä¿åããã³åŠçããããã®ãœãªã¥ãŒã·ã§ã³ã®ãšã³ã·ã¹ãã ã§ãã map-reduceãšhadoopã®æ¬è³ªãç解ãããšããã®ãœãªã¥ãŒã·ã§ã³ã®æåã«ããã¢ã«ãŽãªãºã ãšåçã®åçŽããé©ãããšã«ãªããŸãã ããã§ãããã®åçŽãã¯ãå°ããªèšäºãåŠçããŠããããã«200ã®ã¬ãã€ãã®ããã¹ãæ å ±ãåŠçããã®ã«åœ¹ç«ã¡ãŸãã åé¡ã¯ãäžé£ã®ã·ã³ãã«ãªã¢ã€ãã¢ãè¿ éã§ã·ã³ãã«ãªãœãªã¥ãŒã·ã§ã³ãããããããšã§ãã ãããŠãããŒã¿ãååã«éãåŠçãããŠããªãããã«æãããå Žåã¯ãã¯ã©ã¹ã¿ãŒã«ããŒããè¿œå ããŸãã
ãã¡ãããæ¬è³ªãç解ããHadoopãœãŒã¹ã³ãŒãã調æ»ããæåã®èšç®ã¿ã¹ã¯ãå®è£ ããã«ã¯æéãããããŸãã
ç§ã«ãšã£ãŠãã®æ±ºå®ã®äž»ãªé©ãã¯ãæ¬åœã«å€§ããªããŒã¿ãä¿åããŠåŠçããå¿ èŠãããå ŽåãããŒã¿ããŒã¹ããŸã£ããå¿ èŠãªããããããªããšããããšã§ããã
çµè«ãšããŠãç§ã¯ããã«ã€ããŠã®ç§ã®å人çãªæèŠãè¡šæããããšæããŸãã
ãã¹ãŠã®ã¿ã¹ã¯ã«åäžã®ãœãªã¥ãŒã·ã§ã³ã¯ãããŸããã ããã«æãè¿ãã®ã¯ãSQLãœãªã¥ãŒã·ã§ã³ã§ãã ånosqlãªããžããªã¯ãç¹å®ã®ç¯å²ã®ã¿ã¹ã¯ã®ã¿ã解決ããããŒã«ã§ãããšåæã«ããã¡ã€ã«ã®æäœãå éšã®èª¿æ»ãæ éãªèšå®ããŸãã¯ã¯ã©ã€ã¢ã³ãã®äœæããå¿ èŠãšããŸãã
çµè«ãžã®è¿œå ïŒ
ç¹å¹è¬ã¯ãªãã®ã§ããŸãèããå¿ èŠããããŸãã ãŸããããŒã¿ããŒã¹ã®ããã¥ã¢ã«ãã©ãã»ã©æ確ã§ãã£ãŠããããã«ããé©ãã®æ°ã¯æžããŸããã çŸåšã®nosqlãœãªã¥ãŒã·ã§ã³ã¯è¥ããæ¬ é¥ã®ããããŒã«ããªãããã§ã¯ãããŸããã ããã«ãé¢ããããããšãã°mongodbãredisãhbaseãcassandraãªã©ãäžéšã®è£œåã¯å®çšŒåã§äœ¿çšããæºåãæŽã£ãŠããŸãã
ãããããäœã䜿çšãããããšãã質åã®çãã«ãã©ãçãã«ã¯ããã®å Žåãããªãã¯èªåã§ãããå¿ èŠãšããŸãã ç¹å®ã®åé¡ã«å¯Ÿãããœãªã¥ãŒã·ã§ã³ããã¹ãããã³èª¿æ»ããããšã«ããã