Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Ô½À´Ô½»ðµÄͼÊý¾Ý¿â¾¿¾¹ÊÇʲô£¿
 
×÷ÕߣºmantouÊåÊå
  3299  次浏览      27
 2019-10-10
 
±à¼­ÍƼö:

±¾ÎÄÖ÷Òª½éÉÜÁËͼÊý¾Ý¿âÏà¹ØÖªÊ¶ºÍÊôÐÔ£¬Ï£Íû¶ÔÄúÓÐËù°ïÖú¡£
±¾ÎÄÀ´×Ô²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þÁõè¡±à¼­ÍÆ¼ö

Ëæ×ÅÉç½»¡¢µçÉÌ¡¢½ðÈÚ¡¢ÁãÊÛ¡¢ÎïÁªÍøµÈÐÐÒµµÄ¿ìËÙ·¢Õ¹£¬ÏÖʵÉç»áÖ¯ÆðÁËÁËÒ»ÕÅÅÓ´ó¶ø¸´ÔӵĹØÏµÍø£¬´«Í³Êý¾Ý¿âºÜÄÑ´¦Àí¹ØÏµÔËËã¡£´óÊý¾ÝÐÐÒµÐèÒª´¦ÀíµÄÊý¾ÝÖ®¼äµÄ¹ØÏµËæÊý¾ÝÁ¿³Ê¼¸ºÎ¼¶ÊýÔö³¤£¬Ø½ÐèÒ»ÖÖÖ§³Öº£Á¿¸´ÔÓÊý¾Ý¹ØÏµÔËËãµÄÊý¾Ý¿â£¬Í¼Êý¾Ý¿âÓ¦Ô˶øÉú¡£

ÊÀ½çÉϺܶàÖøÃûµÄ¹«Ë¾¶¼ÔÚʹÓÃͼÊý¾Ý¿â¡£±ÈÈ磺

Éç½»ÁìÓò£ºFacebook, Twitter£¬LinkedinÓÃËüÀ´¹ÜÀíÉç½»¹ØÏµ£¬ÊµÏÖºÃÓÑÍÆ¼ö

ÁãÊÛÁìÓò£ºeBay£¬ÎÖ¶ûÂêʹÓÃËüʵÏÖÉÌÆ·ÊµÊ±ÍƼö£¬¸øÂò¼Ò¸üºÃµÄ¹ºÎïÌåÑé

½ðÈÚÁìÓò£ºÄ¦¸ù´óͨ£¬»¨ÆìºÍÈðÒøµÈÒøÐÐÔÚÓÃͼÊý¾Ý¿â×ö·ç¿Ø´¦Àí

Æû³µÖÆÔìÁìÓò£ºÎÖ¶ûÎÖ£¬´÷Ä·ÀպͷáÌïµÈ¶¥¼¶Æû³µÖÆÔìÉÌÒÀ¿¿Í¼Êý¾Ý¿âÍÆ¶¯´´ÐÂÖÆÔì½â¾ö·½°¸

µçÐÅÁìÓò£ºVerizon, OrangeºÍAT&T µÈµçÐŹ«Ë¾ÒÀ¿¿Í¼Êý¾Ý¿âÀ´¹ÜÀíÍøÂ磬¿ØÖÆ·ÃÎʲ¢Ö§³Ö¿Í»§360

¾ÆµêÁìÓò£ºÍòºÀºÍÑŸ߾ƵêµÈ¶¥¼¶¾Æµê¹«Ë¾ÒÀʹÓÃͼÊý¾Ý¿âÀ´¹ÜÀí¸´ÔÓÇÒ¿ìËٱ仯µÄ¿â´æ

¼ÈȻͼÊý¾Ý¿âÓ¦ÓÃÕâô¹ã·º£¬Ô½À´Ô½¶àµÄÆóÒµºÍ¿ª·¢Õß¿ªÊ¼Ê¹ÓÃËü£¬ÄÇËü¾¿¾¹Ê²Ã´¹ýÈËÖ®´¦ÄØ£¬ÏÂÃæÎÒÃÇÀ´½Ò¿ªËüµÄÉñÃØÃæÉ´¡£

1. Why Graph DB?

ѧ¹ýÊý¾Ý½á¹¹Õâô¿Î³ÌµÄͬѧÄÔº£ÖÐÓ¦¸Ã»ò¶à»òÉÙÓÐͼµÄ¸ÅÄî¡£

1.1 ʲôÊÇͼ£¿

ͼÓÉÁ½¸öÔªËØ×é³É£º½ÚµãºÍ¹ØÏµ¡£

ÿ¸ö½Úµã´ú±íÒ»¸öʵÌ壨ÈË£¬µØ£¬ÊÂÎÀà±ð»òÆäËûÊý¾Ý£©£¬Ã¿¸ö¹ØÏµ´ú±íÁ½¸ö½ÚµãµÄ¹ØÁª·½Ê½¡£ÕâÖÖͨÓýṹ¿ÉÒÔ¶Ô¸÷ÖÖ³¡¾°½øÐн¨Ä£ - ´ÓµÀ·ϵͳµ½Éè±¸ÍøÂ磬µ½È˿ڵIJ¡Ê·»òÓɹØÏµ¶¨ÒåµÄÈÎºÎÆäËûÊÂÎï¡£

1.2 ʲôÊÇͼÊý¾Ý¿â£¿

ͼÊý¾Ý¿â(Graph database)²¢·ÇÖ¸´æ´¢Í¼Æ¬µÄÊý¾Ý¿â£¬¶øÊÇÒÔͼÕâÖÖÊý¾Ý½á¹¹´æ´¢ºÍ²éѯÊý¾Ý¡£

ͼÐÎÊý¾Ý¿âÊÇÒ»ÖÖÔÚÏßÊý¾Ý¿â¹ÜÀíϵͳ£¬¾ßÓд¦ÀíͼÐÎÊý¾ÝÄ£Ð͵Ĵ´½¨£¬¶ÁÈ¡£¬¸üкÍɾ³ý£¨CRUD£©²Ù×÷¡£

ÓëÆäËûÊý¾Ý¿â²»Í¬£¬¹ØÏµÔÚͼÊý¾Ý¿âÖÐÕ¼Ê×ÒªµØÎ»¡£ÕâÒâζ×ÅÓ¦ÓóÌÐò²»±ØÊ¹ÓÃÍâ¼ü»ò´øÍâ´¦Àí£¨ÈçMapReduce£©À´ÍƶÏÊý¾ÝÁ¬½Ó¡£

Óë¹ØÏµÊý¾Ý¿â»òÆäËûNoSQLÊý¾Ý¿âÏà±È£¬Í¼Êý¾Ý¿âµÄÊý¾ÝÄ£ÐÍÒ²¸ü¼Ó¼òµ¥£¬¸ü¾ß±íÏÖÁ¦¡£

ͼÐÎÊý¾Ý¿âÊÇΪÓëÊÂÎñ£¨OLTP£©ÏµÍ³Ò»ÆðʹÓöø¹¹½¨µÄ£¬²¢ÇÒÔÚÉè¼ÆÊ±¿¼ÂÇÁËÊÂÎñÍêÕûÐԺͲÙ×÷¿ÉÓÃÐÔ¡£

1.3 Á½¸öÖØÒªÊôÐÔ

¸ù¾Ý´æ´¢ºÍ´¦ÀíÄ£ÐͲ»Í¬£¬ÊÐÃæÉÏͼÊý¾Ý¿âÒ²ÓÐÒ»Ð©Çø·Ö¡£

±ÈÈ磺

Neo4J¾ÍÊÇÊôÓÚÔ­ÉúͼÊý¾Ý¿â£¬ËüʹÓõĺó¶Ë´æ´¢ÊÇרÃÅΪNeo4JÕâÖÖͼÊý¾Ý¿â¶¨ÖƺÍÓÅ»¯µÄ£¬ÀíÂÛÉÏ˵ÄܸüÓÐÀûÓÚ·¢»ÓͼÊý¾Ý¿âµÄÐÔÄÜ¡£

¶øJanusGraph²»ÊÇÔ­ÉúͼÊý¾Ý¿â£¬¶ø½«Êý¾Ý´æ´¢ÔÚÆäËûϵͳÉÏ£¬±ÈÈçHbase¡£

¢Ù ͼ´æ´¢

һЩͼÊý¾Ý¿âʹÓÃÔ­Éúͼ´æ´¢£¬ÕâÀà´æ´¢ÊǾ­¹ýÓÅ»¯µÄ£¬²¢ÇÒÊÇרÃÅΪÁË´æ´¢ºÍ¹ÜÀíͼ¶øÉè¼ÆµÄ¡£²¢²»ÊÇËùÓÐͼÊý¾Ý¿â¶¼ÊÇʹÓÃÔ­Éúͼ´æ´¢£¬Ò²ÓÐһЩͼÊý¾Ý¿â½«Í¼Êý¾ÝÐòÁл¯£¬È»ºó±£´æµ½¹ØÏµÐÍÊý¾Ý¿â»òÕßÃæÏò¶ÔÏóÊý¾Ý¿â£¬»òÆäËûͨÓÃÊý¾Ý´æ´¢ÖС£

¢Ú ͼ´¦ÀíÒýÇæ

Ô­Éúͼ´¦Àí£¨Ò²³ÆÎªÎÞË÷ÒýÁÚ½Ó£©ÊÇ´¦ÀíͼÊý¾ÝµÄ×îÓÐЧ·½·¨£¬ÒòΪÁ¬½ÓµÄ½ÚµãÔÚÊý¾Ý¿âÖÐÎïÀíµØÖ¸Ïò±Ë´Ë¡£·Ç±¾»úͼ´¦ÀíʹÓÃÆäËû·½·¨À´´¦ÀíCRUD²Ù×÷¡£

2. ¶Ô±È

2.1 ÓëNoSQLÊý¾Ý¿â¶Ô±È

NoSQLÊý¾Ý¿â´óÖ¿ÉÒÔ·ÖΪËÄÀࣺ

¼üÖµ(key/value)Êý¾Ý¿â

Áд洢Êý¾Ý¿â

ÎĵµÐÍÊý¾Ý¿â

ͼÊý¾Ý¿â

2.2 Óë¹ØÏµÐÍÊý¾Ý¿â¶Ô±È

¹ØÏµÐÍÊý¾Ý¿âʵ¼ÊÉÏÊDz»Éó¤´¦Àí¹ØÏµµÄ¡£ºÜ¶à³¡¾°Ï£¬ÄãµÄÒµÎñÐèÇóÍêÈ«³¬³öÁ˵±Ç°µÄÊý¾Ý¿â¼Ü¹¹¡£

¾Ù¸öÀõ×Ó£º¼ÙÉèij¹ØÏµÐÍÊý¾Ý¿âÖÐÓÐÕâô¼¸ÕÅÓû§¡¢¶©µ¥¡¢ÉÌÆ·±í£º

µ±ÎÒÃÇÒª²éѯ£º¡°Óû§¹ºÂòÁËÄÇЩÉÌÆ·£¿¡± »òÕß ¡°¸ÃÉÌÆ·ÓÐÄÄЩ¿Í»§¹ºÂò¹ý£¿¡± ÐèÒª¿ª·¢ÈËÔ±JOIN¼¸ÕÅ±í£¬Ð§Âʷdz£µÍÏ¡£

¶ø¡°¹ºÂò¸Ã²úÆ·µÄ¿Í»§»¹¹ºÂòÁËÄÄЩÉÌÆ·£¿¡±ÀàËÆµÄ²éѯ¼¸ºõ²»¿ÉÄÜʵÏÖ¡£

¹ØÏµ²éѯÐÔÄܶԱÈ

ÔÚÊý¾Ý¹ØÏµÖÐÐÄ£¬Í¼ÐÎÊý¾Ý¿âÔÚ²éѯËÙ¶È·½Ãæ·Ç³£¸ßЧ£¬¼´Ê¹¶ÔÓÚÉî¶ÈºÍ¸´ÔӵIJéѯҲÊÇÈç´Ë¡£ÔÚ¡¶Neo4j in Action¡·Õâ±¾ÊéÖУ¬×÷ÕßÔÚ¹ØÏµÐÍÊý¾Ý¿â ºÍͼÊý¾Ý¿â(Neo4j)Ö®¼ä½øÐÐÁËʵÑé¡£

ËûÃǵÄʵÑéÊÔͼÔÚÒ»¸öÉç½»ÍøÂçÀïÕÒµ½×î´óÉî¶ÈΪ5µÄÅóÓѵÄÅóÓÑ¡£ËûÃǵÄÊý¾Ý¼¯°üÀ¨100ÍòÈË£¬Ã¿ÈËÔ¼ÓÐ50¸öÅóÓÑ¡£ÊµÑé½á¹ûÈçÏ£º

ÔÚÉî¶ÈΪ2ʱ£¨¼´ÅóÓѵÄÅóÓÑ£©£¬Á½ÖÖÊý¾Ý¿âÐÔÄÜÏà²î²»ÊǺÜÃ÷ÏÔ£»Éî¶ÈΪ3ʱ(¼´ÅóÓѵÄÅóÓѵÄÅóÓÑ)£¬ºÜÃ÷ÏÔ£¬¹ØÏµÐÍÊý¾Ý¿âµÄÏìӦʱ¼ä30s£¬ÒѾ­±äµÃ²»¿É½ÓÊÜÁË£»Éî¶Èµ½4ʱ£¬¹ØÏµÊý¾Ý¿âÐèÒª½ü°ë¸öСʱ²ÅÄÜ·µ»Ø½á¹û£¬Ê¹ÆäÎÞ·¨Ó¦ÓÃÓÚÔÚÏßϵͳ£»Éî¶Èµ½5ʱ£¬¹ØÏµÐÍÊý¾Ý¿âÒѾ­ÎÞ·¨Íê³É²éѯ¡£¶ø¶ÔÓÚͼÊý¾Ý¿âNeo4J£¬Éî¶È´Ó3µ½5£¬ÆäÏìӦʱ¼ä¾ùÔÚ3ÃëÒÔÄÚ¡£

¿ÉÒÔ¿´³ö£¬¶ÔÓÚͼÊý¾Ý¿âÀ´Ëµ£¬Êý¾ÝÁ¿Ô½´ó£¬Ô½¸´ÔӵĹØÁª²éѯ£¬Ô¼ÓÐÀûÓÚÌåÏÖÆäÓÅÊÆ¡£´ÓÉî¶ÈΪ4/5µÄ²éѯ½á¹ûÎÒÃÇ¿ÉÒÔ¿´³ö£¬Í¼Êý¾Ý¿â·µ»ØÁËÕû¸öÉç½»ÍøÂçÒ»°ëÒÔÉϵÄÈËÊý¡£

3. Neo4J ºÍ JanuasGraph

¸ù¾ÝDB-Engines×îз¢²¼µÄͼÊý¾Ý¿âÅÅÃû£¬Neo4JÈÔÈ»´ó·ùÁìÏÈÅÅÔÚµÚһλ£º

Neo4J

Neo4JÊÇÓÉJavaʵÏֵĿªÔ´Í¼Êý¾Ý¿â¡£×Ô2003Ä꿪ʼ¿ª·¢£¬Ö±µ½2007ÄêÕýʽ·¢²¼µÚÒ»°æ£¬²¢ÍйÜÓÚGitHubÉÏ¡£

Neo4JÖ§³ÖACID£¬¼¯Èº¡¢±¸·ÝºÍ¹ÊÕÏ×ªÒÆ¡£Ä¿Ç°Neo4J×îа汾Ϊ3.5£¬·ÖΪÉçÇø°æºÍÆóÒµ°æ£¬ÉçÇø°æÖ»Ö§³Öµ¥»ú²¿Ê𣬹¦ÄÜÊÜÏÞ¡£ÆóÒµ°æÖ§³ÖÖ÷´Ó¸´ÖƺͶÁд·ÖÀ룬°üº¬¿ÉÊÓ»¯¹ÜÀí¹¤¾ß¡£

JanusGraph

JanusGraphÊÇÒ»¸öLinux»ù½ð»áϵĿªÔ´·Ö²¼Ê½Í¼Êý¾Ý¿â ¡£JanusGraphÌṩApache2.0Èí¼þÐí¿ÉÖ¤¡£¸ÃÏîÄ¿ÓÉIBM¡¢Google¡¢HortonworksÖ§³Ö¡£JanusGraphÊÇÓÉTitanDB ͼÊý¾Ý¿âÐ޸ĶøÀ´£¬TitanDB´Ó2012Ä꿪ʼ¿ª·¢¡£Ä¿Ç°×îа汾Ϊ0.3.1¡£

JanusGraphÖ§³Ö¶àÖÖ´¢´æºó¶Ë£¨°üÀ¨Apache Cassandra¡¢Apache HBase¡¢Bigtable¡¢Berkeley DB£©¡£JanusGraphµÄ¿ÉÀ©Õ¹ÐÔÈ¡¾öÓÚÓëJanusGraphÒ»ÆðʹÓõĻù´¡¼¼Êõ¡£ÀýÈ磬ͨ¹ýʹÓÃApache Cassandra×÷Ϊ´æ´¢ºó¶Ë£¬¿ÉÒÔ½«JanusGraph¼òµ¥µØÀ©Õ¹µ½¶à¸öÊý¾ÝÖÐÐÄ¡£

JanusGraphͨ¹ýÓë´óÊý¾Ýƽ̨£¨Apache Spark£¬Apache Giraph£¬Apache Hadoop£©¼¯³É£¬Ö§³ÖÈ«¾ÖͼÊý¾ÝµÄ·ÖÎö¡¢±¨¸æºÍETL¡£

JanusGraphͨ¹ýÍⲿË÷Òý´æ´¢£¨Elasticsearch£¬Solr£¬Lucene£©Ö§³ÖµØÀí¡¢Êý×Ö·¶Î§ºÍÈ«ÎÄËÑË÷¡£

3.1 ±ê¼ÇÊôÐÔͼģÐÍ

£¨1£©½Úµã

½ÚµãÊÇÖ÷ÒªµÄÊý¾ÝÔªËØ

½Úµãͨ¹ý¹ØÏµÁ¬½Óµ½ÆäËû½Úµã

½Úµã¿ÉÒÔ¾ßÓÐÒ»¸ö»ò¶à¸öÊôÐÔ£¨¼´£¬´æ´¢Îª¼ü/Öµ¶ÔµÄÊôÐÔ£©

½ÚµãÓÐÒ»¸ö»ò¶à¸ö±êÇ©£¬ÓÃÓÚÃèÊöÆäÔÚͼ±íÖеÄ×÷ÓÃ

ʾÀý£ºÈËÔ±½ÚµãÓëCar½Úµã

£¨2£©¹ØÏµ

¹ØÏµÁ¬½ÓÁ½¸ö½Úµã

¹ØÏµÊÇ·½ÏòÐÔµÄ

½Úµã¿ÉÒÔÓжà¸öÉõÖÁµÝ¹éµÄ¹ØÏµ

¹ØÏµ¿ÉÒÔÓÐÒ»¸ö»ò¶à¸öÊôÐÔ£¨¼´´æ´¢Îª¼ü/Öµ¶ÔµÄÊôÐÔ£©

£¨3£©ÊôÐÔ

ÊôÐÔÊÇÃüÃûÖµ£¬ÆäÖÐÃû³Æ£¨»ò¼ü£©ÊÇ×Ö·û´®

ÊôÐÔ¿ÉÒÔ±»Ë÷ÒýºÍÔ¼Êø

¿ÉÒÔ´Ó¶à¸öÊôÐÔ´´½¨¸´ºÏË÷Òý

£¨4£©±êÇ©

±êÇ©ÓÃÓÚ½«½Úµã·Ö×é

Ò»¸ö½Úµã¿ÉÒÔ¾ßÓжà¸ö±êÇ©

¶Ô±êÇ©½øÐÐË÷ÒýÒÔ¼ÓËÙÔÚͼÖвéÕÒ½Úµã

±¾»ú±êÇ©Ë÷ÒýÕë¶ÔËٶȽøÐÐÁËÓÅ»¯

4. Cypherͼ²éѯÓïÑÔ

CypherÊÇNeo4jµÄͼÐβéѯÓïÑÔ£¬ÔÊÐíÓû§´æ´¢ºÍ¼ìË÷ͼÐÎÊý¾Ý¿âÖеÄÊý¾Ý¡£

¾ÙÀý£¬ÎÒÃÇÒª²éÕÒJoeµÄËùÒÔ¶þ¶ÈºÃÓÑ£º

²éѯÓï¾äÈçÏ£º

MATCH
(person:Person)-[:KNOWS]-(friend:Person)-[:KNOWS]-
(foaf:Person)
WHERE
person.name = "Joe"
AND NOT (person)-[:KNOWS]-(foaf)
RETURN
foaf

JoeÈÏʶSally£¬SallyÈÏʶAnna¡£ Bob±»ÅųýÔÚ½á¹ûÖ®Í⣬ÒòΪ³ýÁËͨ¹ýSally³ÉΪ¶þ¼¶ÅóÓÑÖ®Í⣬Ëû»¹ÊÇÒ»¼¶ÅóÓÑ¡£

5. С½á

ͼÊý¾Ý¿âÓ¦¶ÔµÄÊǵ±½ñÒ»¸öºê¹ÛµÄÉÌÒµÊÀ½çµÄ´óÇ÷ÊÆ£ºÆ¾½è¸ß¶È¹ØÁª¡¢¸´ÔӵĶ¯Ì¬Êý¾Ý£¬»ñµÃ¶´²ìÁ¦ºÍ¾ºÕùÓÅÊÆ¡£¹úÄÚÔ½À´Ô½¶àµÄ¹«Ë¾¿ªÊ¼½øÈëͼÊý¾Ý¿âÁìÓò£¬Ñз¢×Ô¼ºµÄͼÊý¾Ý¿âϵͳ¡£¶ÔÓÚÈκδﵽһ¶¨¹æÄ£»ò¼ÛÖµµÄÊý¾Ý£¬Í¼Êý¾Ý¿â¶¼ÊdzÊÏֺͲéѯÕâЩ¹ØÏµÊý¾ÝµÄ×îºÃ·½Ê½¡£¶øÀí½âºÍ·ÖÎöÕâЩͼµÄÄÜÁ¦½«³ÉΪÆóҵδÀ´×îºËÐĵľºÕùÁ¦¡£

   
3299 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ