±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁËÊý¾Ý¿â¼ò½é¡¢Neo4jʵ¼ù¡¢Neo4jϵͳ½¨Éè¡¢Neo4j¼¯Èº´î½¨¼°Ê¶Í¼Æ×ÓëͼÊý¾Ý¿â¡£Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×Ô΢ÐŹ«ÖںŲ©ÎÄÊÓµãBroadview£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼¡¢ÍƼö¡£
|
|
1 ͼÊý¾Ý¿â¼ò½é
̸µ½Í¼Êý¾Ý¿â£¬Ê×ÏÈÒªÁÄÁÄ¡°Í¼¡±£¬ÕâÀïµÄͼ²»ÊǼÆËã»úÊÓ¾õ¡¢Í¼Ïñ´¦ÀíÁìÓòµÄͼ£¬¶øÊÇͼÂÛÖеÄͼ£¬ËüÓɽڵãºÍ½Úµã¼äµÄÏß×é³É£¬Í¨³£ÓÃÀ´ÃèÊöijЩʵÌåÓëËüÃÇÖ®¼äµÄÌØ¶¨¹ØÏµ¡£ÏÂͼ¾ÍÊÇÒ»¸öµäÐ͵ÄͼʾÀý£¬Ä³ÆóÒµÍøÂçÉè±¸ÍØÆËºÍ±¨¾¯¹ÜÀíÓ¦Ó÷½°¸µÄʾÒâͼ¡£

ÏÖʵÊÀ½çÖеÄͼÎÞ´¦²»ÔÚ£¬Éç½»ÁìÓòÈËÓëÈ˵ĹØÏµÍÚ¾ò¡¢ÁãÊÛÁìÓòÉÌÆ·¹ºÂòµÄ¹ØÁªÍƼö¡¢½ðÈÚÁìÓòµÄ·´ÆÛÕ©·´Ï´Ç®£¬¶¼ÊÇͼ¼¼ÊõµÄµäÐÍÓ¦Óᣵ«ÊÇͼµÄ´æ´¢ÔÚ¹ýȥһֱûÓÐÌØ±ðºÃµÄ·½°¸¡£ÀúÊ·µÄ·½°¸¿ÉÒÔ¸ÅÀ¨ÎªÁ½À࣬µÚÒ»Àà»ùÓÚ´«Í³¹ØÏµÐÍÊý¾Ý¿â£¬½«Í¼ÖеĹØÏµÓÃÍâ¼ü»ò¹ØÁª±íÀ´±íʾ£¬ÕâÖÖ·½Ê½¶ÔÓÚijЩ²éѯ³¡¾°ÐèÒªºÃ¼¸¸ö°º¹óµÄ±íÁ¬½Ó£¬Ôö¼ÓÁ˸´ÔÓÐÔ¡£ÔÚÕâÖÖ´æ´¢ÖУ¬ÒµÎñÊý¾ÝÓëÍâ¼üÔªÊý¾Ý»ìÔÓÆðÀ´£¬Ôö¼ÓÁË¿ª·¢ºÍά»¤µÄ³É±¾¡£µÚ¶þÀà²ÉÓüüÖµ»òÎĵµÐ͵ÄNoSQLÊý¾Ý¿â£¬¼üÖµÐÍÈçRedis¡¢DynanoDB
µÈ¡¢ÎĵµÊý¾Ý¿âÈçMongoDB£¬ÕâЩNoSQL¶¼ÄÑÒÔ±íʾ¹ØÁª¹ØÏµ£¬Îª¼¼ÊõÈËÔ±´øÀ´ÁË¿ª·¢³É±¾ºÍÀí½âÉϵıÚÀÝ¡£
Òò´Ë£¬×¨ÃÅÓÃÓÚͼµÄ´æ´¢ºÍ²éѯ¼¼ÊõÊǷdz£±ØÒªµÄ¡£Í¼¼¼Êõ¸ù¾ÝÓ¦Ó÷½Ê½µÄ²»Í¬¿ÉÒÔ·ÖΪÁ½¸ö·½Ïò£¬µÚÒ»¸ö·½ÏòÊÇͼÊý¾Ý¿â£¬ËüÓÃÓÚͼÊý¾ÝµÄ´æ´¢ºÍÁª»úÊÂÎñ²éѯ£¬¾ß±¸ÊµÊ±ÐÔ£¬ÃæÏòOLTP£¬Ö§³ÖCRUDºÍÊÂÎñ¡£µÚ¶þ¸ö·½ÏòÊÇͼ¼ÆËãÒýÇæ£¬ËüÓÃÓÚͼÊý¾ÝµÄÀëÏß²éѯ·ÖÎö£¬¸üÊʺϺ£Á¿Êý¾ÝµÄÍÚ¾ò£¬ÃæÏòOLAP¡£
ͼÁìÓòÒѾÓкܶàµÄ¼¼ÊõºÍ²úÆ·£¬ÏÂͼ½ØÈ¡×ÔVLDB2019 keynote¡¶Graph Processing:
APanaromic View and Some Open Problems¡·£¬³ýÁËÆäÖÐËùÁÐÖ®Í⻹ÓкܶàÆäËûµÄ¼¼Êõ¡£

ͼÊý¾Ý¿âÓкܶà³ÉÊìµÄ²úÆ·£¬¸ù¾Ýµ×²ã´æ´¢ºÍ´¦ÀíÒýÇæÊÇ·ñÔÉú£¬Í¼Êý¾Ý¿â¿ÉÒÔ·ÖΪËÄÀࡣΪÁ˱ãÓÚºóÃæÀí½âͼÊý¾Ý¿â´¦ÀíͼµÄÓÅÊÆ£¬ÎÒÃǽâÊÍÒ»ÏÂÕâÁ½¸ö·ÖÀàά¶ÈµÄº¬Òå¡£
´æ´¢·½Ê½
ÔÉúͼ´æ´¢£ºÊý¾Ý´æ´¢Ä£Ê½Îª´æ´¢ºÍ¹ÜÀíͼ¶øÉè¼Æ£¬ÎªÍ¼½øÐйýÓÅ»¯¡£
·ÇÔÉúͼ´æ´¢£º½«Í¼Êý¾ÝÐòÁл¯£¬²ÉÓùØÏµÐÍÊý¾Ý¿â¡¢ÃæÏò¶ÔÏóÊý¾Ý¿â¡¢»òÊÇÆäËûͨÓÃÊý¾Ý´æ´¢¡£
´¦Àí·½Ê½
ÔÉúͼ´¦Àí£ºÊ¹ÓÃÃâË÷ÒýÁÚ½Ó£¬¹ØÁª½ÚµãÔÚÎïÀí²ãÃæÖ¸Ïò±Ë´Ë£¬ÕâÖÖ·½Ê½²»Í¬ÓÚ´«Í³¹ØÏµÐÍÊý¾Ý¿âµÄÊ÷ÐÎÈ«¾ÖË÷Òý£¬Îª²éѯͼµÄ¹ØÁª½Úµã´øÀ´Á˾޴óµÄÐÔÄÜÓÅÊÆ¡£
·ÇÔÉúͼ´¦Àí£º²»²ÉÓÃÃâË÷ÒýÁÚ½Ó±£´æ¹ØÏµ¡£
¸ù¾ÝÕâÁ½¸öά¶È£¬Í¼Êý¾Ý¿â²úÆ·¿ÉÒÔ·ÖΪËÄÀࣺ

2 Neo4jʵ¼ù
ÎÒÃÇÒÔNeo4jΪÀý£¬Ö±¹ÛµØ¸ÐÊÜÒ»ÏÂͼÊý¾Ý¿âµÄÇ¿´óºÍ±ã½ÝÖ®´¦¡£Neo4j²ÉÓÃCypher²éѯÓïÑÔ£¨CQL£©½øÐÐÊý¾ÝµÄÔöɾ¸Ä²é£¬ÏÂÃæµÄCypherÓï¾ä´´½¨ÁËÈý¸öPerson½ÚµãºÍËûÃÇÖ®¼äµÄ¹Ø×¢¹ØÏµ£º

²éѯ¹Ø×¢ÁËBillyµÄÈË£º

ΪBilly×ö¸ö¼òµ¥µÄºÃÓÑÍÆ¼ö£¬ÍƼö²ßÂÔÊǰÑBillyºÃÓÑ£¨»¥¹ØÕߣ©¹Ø×¢µÄÈËÍÆ¼ö¸øËû£º

ÉÏÃæµÄÍÆ¼ö²éѯµÃµ½Ruth¡£

¿ÉÒÔ¿´µ½£¬Ïà½ÏSQLµÄ¹ØÁª²éѯ£¬Cypher²éѯµÄÓï·¨¾ßÓиüÇ¿µÄÓïÒåÐÔ¡£
Neo4jÒ²ÌṩÁËshortestPath·½·¨À´»ñÈ¡½Úµã¼äµÄ×î¶Ì·¾¶¹ØÏµ£¬ÏÂÃæÕâ¸ö²éѯ»ùÓÚNeo4j¹Ù·½ÌṩµÄµçÓ°ºÍÑÝÔ±Êý¾Ý£º

ÎÒÃǵÄÀúÊ·Êý¾Ý´ó¶à¶¼´æ´¢ÔÚ¹ØÏµÐÍÊý¾Ý¿âÖУ¬neo4jÒ²ºÜºÃµÄÖ§³ÖÁ˹ØÏµÐÍÊý¾Ý±íCSVÎļþµÄµ¼È룬CSVÎļþµÄµ¼ÈëÓÐÁ½ÖÖ·½Ê½£º
1.Ö±½ÓÓÃCypher LOACCSV£º

2.ÓÃneo4j-import¹¤¾ß£¬¸üÊÊÓÃÓÚÊý¾ÝÁ¿½Ï´óµÄ³¡¾°£¬Ö§³Ö²¢ÐС¢¿ÉÀ©Õ¹µÄCSVÊý¾Ýµ¼Èë¡£
ÔÚ²éѯÐÔÄÜÓÅ»¯·½Ã棬Neo4jÒ²×öÁ˽ϺõÄÖ§³Ö£º
CypherÖ§³Ö¶Ô½ÚµãµÄij¸öÊôÐÔÉÏ´´½¨Ë÷Òý£¬Ê¹µÃ¼ìË÷Êý¾ÝЧÂʸü¸ß£¬µ«ÊǸú¹ØÏµÐÍÊý¾Ý¿âÀàËÆ£¬Ë÷ÒýͬÑù»áÔö¼Ó´æ´¢³É±¾¡¢Ó°ÏìдÈëЧÂÊ¡£
ÔÚÓÃCypher²éѯʱ£¬ÎÒÃÇÒ²¿ÉÒÔͨ¹ýEXPLAIN»òPROFILE¶Ô²éѯÓï¾ä½øÐзÖÎö£¬¸¨Öú²éѯµ÷ÓÅ¡£
Neo4j¼à¿Ø¹¤¾ß¿ÉÒԼǼºÍÏÔʾ·þÎñÆ÷µÄ¸÷ÏîÖ¸±ê£¬Neo4jÌṩÁËHTTP web½çÃæÊµÊ±²é¿´¼à¿ØÊý¾Ý£¬°üÀ¨´æ´¢ÈÝÁ¿¡¢ID·ÖÅä¡¢Ò³Ãæ»º´æºÍÊÂÎñÊý¾Ý¡£
3 Neo4jϵͳ½¨Éè
Neo4j¿ª·¢
Neo4j·Ö±ðÌṩJava½Ó¿ÚºÍREST API£¬¶ÔÓ¦µÄ£¬Ê¹ÓÃNeo4jÒ²ÓÐÁ½ÖÖ¿ª·¢Ä£Ê½£ºJava
APIǶÈëʽ¿ª·¢ºÍHTTP APIµ÷Óÿª·¢¡£

Neo4jÌìȻ֧³ÖJava£¬SpringÒ²ÌṩÁËSpring Data Neo4j£¬±ãÓÚÎÒÃÇÔÚSpringÓ¦ÓÃϵͳÖÐʹÓÃNeo4j¡£Spring
Data Neo4j³ýÁËÌṩSpring DataÄ£¿éµÄʵÌåÓ³Éä¡¢·ÖÒ³¡¢ÊÂÎñµÈ¹¦ÄÜÒÔÍ⣬»¹Õë¶ÔNeo4jÌṩÁËÒÔϸ½¼Ó¹¦ÄÜ£º
Ö§³ÖNeo4jÊôÐÔͼģ¿é£»
Ö§³ÖNeo4j LucenceË÷Òý£»
Ö§³ÖNeo4j Cypher²éѯ£¨CQL£©£»
Neo4jTemplate
Spring Data Neo4jÌåϵ½á¹¹ÈçÏÂͼ£º

Spring Data Neo4jÌṩÁ˲»Í¬µÄAPIÀ´Ö§³Ö²»Í¬µÄ³¡¾°£¬ÏÂ±í¸ø³öÁ˶ÔÓ¦µÄJavaÀàºÍÆäÓ÷¨£º

4 Neo4j¼¯Èº´î½¨
¿¼Âǵ½ÏµÍ³ÊµÊ©Ê±´ó¹æÄ£Éú²ú»·¾³ºÍÈÝ´íÎÊÌ⣬Neo4jÆóÒµ°æÌṩ¸ß¿ÉÓü¯ÈººÍÒò¹û¼¯ÈºÁ½ÖÖ¼¯Èº¹¦ÄÜ£¬ÊµÏָ߿ÉÓÃÐÔºÍˮƽ¶ÁÀ©Õ¹£¬ÓÐЧÌá¸ßϵͳÕûÌåÐÔÄÜ¡¢¿É¿¿ÐÔ¡¢Áé»îÐԺͿÉÀ©Õ¹ÐÔ¡£
ÔÚʹÓÃͼÊý¾Ý¿â¼¯ÈºÊ±£¬ÎÒÃÇÐèÒª¿¼ÂǼ¯ÈºµÄ¸ºÔؾùºâ£¬ÌáÉýÍÌÍÂÁ¿²¢¼õÉÙÑÓ³Ùʱ¼ä¡£Neo4j×ÔÉíûÓиºÔؾùºâ¹¦ÄÜ£¬ÐèÒªÒÀÀµÍøÂç»ù´¡ÉèÊ©µÄ¸ºÔؾùºâÄÜÁ¦¡£ÒÔÏÂÊÇÈýÖÖÎÒÃdz£ÓõĸºÔؾùºâ·½Ê½£º
1.·ÖÀë¶ÁдÁ÷Á¿£¬½«¾ø´ó²¿·ÖдÈë²Ù×÷Ö±½ÓÔÚ¼¯ÈºÖ÷½ÚµãÉϽøÐУ¬½«¶ÁÇëÇóºÍдÇëÇóÍêÈ«·ÖÀ뿪£¬Í¨¹ý¸ºÔؾùºâÆ÷½«Ð´Á÷Á¿¶¨Ïòµ½Ö÷½Úµã£¬¶ÁÁ÷Á¿Æ½ºâµØ·ÖÉ¢µ½Õû¸ö¼¯Èº£¬±ÜÃâд²Ù×÷Ó°Ïì²éѯЧÂÊ¡£

2.¸ßËÙ»º´æ·ÖƬ£¬ÕâÖÖ·½Ê½ÀûÓÃÁËÖ÷´æ´¢Æ÷ÖеÄÊý¾Ý²éѯִÐÐ×î¿ì£¬ÈçÏÂͼËùʾ£¬¸ß¿ÉÓü¯ÈºÖеĽڵãʵÀý½«Í¼µÄ²¿·ÖÊý¾Ý·ÅÔÚ×Ô¼ºµÄÖ÷´æ´¢Æ÷£¬¸ºÔؾùºâÆ÷½«ÇëÇó·Óɵ½¶ÔÓ¦µÄ½ÚµãʵÀýÉÏ£¬ÌáÉý²éѯЧÂÊ¡£

3.¼¯ÈºÊµÀý½Úµã¶ÁÈ¡×Ô¼ºµÄдÈ룬¼õÉÙ²éѯ¿ªÏú¡£
5 ֪ʶͼÆ×ÓëͼÊý¾Ý¿â
ͼÊý¾Ý¿âËäȻǿ´óÇÒÒ×Ó㬵«ÊÇËü²¢²»ÊÇÍêÃÀµÄÊÊÓÃÓÚËùÓг¡¾°¡£Í¼Êý¾Ý¿â¿ÉÒÔ´æ´¢º£Á¿Êý¾Ý£¬µ«²¢²»ÊʺÏÖ±½ÓÓÃÀ´½øÐк£Á¿Êý¾ÝµÄ·ÖÎö¼ÆË㣬¶ø¸üÊʺÏÓÃÀ´½øÐÐij¸öʵÌå¼°Æä¹ØÁª¹ØÏµµÄ²éѯ¡£Òò´Ë£¬½ö¿¿Í¼Êý¾Ý¿âÏÔÈ»ÎÞ·¨½â¾öͼ¼ÆËãÁìÓòµÄËùÓÐÎÊÌ⣬ÔÚ֪ʶͼÆ×µÄ¹¹½¨ºÍÓ¦Ó÷½Ã滹ÓкܶàÐèÒªÀûÓÃÆäËûͼ¼ÆËã¼¼ÊõÀ´½â¾öµÄÎÊÌâ¡£
ÏÂͼÊÇÒ»¸öµäÐ͵Äͼ¼ÆËã¼¼Êõ¼Ü¹¹£¬°üÀ¨Í¼Êý¾Ý½¨Ä£¡¢´æ´¢ÏµÍ³ºÍͼÊý¾Ý¼ÆËãÈý¸ö²¿·Ö¡£

ͼÊý¾Ý½¨Ä££º¶ÔÓÚ¹ØÏµÐÍÊý¾Ý¿âµÄÊý¾Ý£¬¹ØÏµºÍʵÌåÒÑÖª£¬½¨Ä£³ÉͼÊý¾ÝÏà¶Ô¼òµ¥¡£µ«ÊǶÔÓÚÎı¾ÕâÑùµÄ·Ç½á¹¹»¯Êý¾Ý£¬½«Æä½¨Ä£³ÉΪͼÊý¾ÝÐèÒªÓ¦ÓÃ×ÔÈ»ÓïÑÔ´¦Àí¡¢»úÆ÷ѧϰ¼¼Êõ£¬À´½â¾ö֪ʶ³éÈ¡¡¢ÖªÊ¶ÈںϺÍÖªÊ¶ÍÆÀíµÈÎÊÌ⡣˹̹¸£´óѧInfolabʵÑéÊÒ¿ªÔ´µÄDeepDiveÌṩÁË֪ʶ³éÈ¡µÄ¿ò¼Ü£¬Êǹ¹½¨ÖªÊ¶Í¼Æ×µÄÀûÆ÷¡£
´æ´¢ÏµÍ³£ºÍ¼Êý¾ÝÓжàÖÖ´æ´¢·½Ê½£¬Í¼Êý¾Ý¿âµ±È»ÊÇ×îÊÊӦͼµÄ¹ØÏµ´æ´¢µÄ£¬µ«ÔÚ²»Í¬µÄÓ¦Óó¡¾°Ï£¬Ò²¿ÉÒÔ¿¼Âǽ«Í¼Êý¾ÝÒÔRDFÈýÔª×é¡¢¹ØÏµÐÍÊý¾Ý¿â¡¢ES»òÆäËûNoSQL·½Ê½½øÐд洢¡£
ͼÊý¾ÝÓ¦ÓãºÔÚ¹¹½¨ºÃµÄͼÊý¾Ý»ù´¡Ö®ÉÏ£¬Í¨¹ýͼ¼ÆËãÒýÇæ¶Ôº£Á¿Í¼Êý¾Ý½øÐÐÀëÏߵļÆËã·ÖÎö£¬Õë¶Ô²»Í¬µÄÓ¦Óó¡¾°£¬Ò²¿ÉÒÔÔÚÄÚ´æ´¦Àí»ò¹¤×÷´æ´¢ÖжÔͼÊý¾Ý½øÐвéѯ·ÖÎö¡£
ͼÊý¾Ý¿â·Ç³£ÊÊÓÃÓÚͼÊý¾ÝµÄ´æ´¢ºÍʵʱ²éѯ£¬ÊÇ֪ʶͼÆ×µÄ»ùʯ£¬µ«Ëü²¢·Ç֪ʶͼÆ×µÄÈ«²¿¡£ÔÚÓ¦ÓÃʱ£¬ÎÒÃÇÐèÒªÕë¶Ô¾ßÌåµÄ³¡¾°È¥½øÐÐÑ¡ÐÍ£¬½áºÏ²»Í¬µÄͼ¼ÆËã¼¼Êõ½øÐзÖÎö¼ÆËã¡£
ĿǰͼÊý¾Ý¿â²úÆ·ºÜ¶à£¬¹úÄÚ¸÷´ó»¥ÁªÍø¹«Ë¾Èç°¢Àï¡¢ÌÚѶµÈÒ²×ÔÑÐÁË×Ô¼ºµÄͼÊý¾Ý¿â£¬Í¼Êý¾Ý¿âδÀ´ÄÜ·ñÏñ¹ØÏµÐÍÊý¾Ý¿âÒ»ÑùÓÐͳһµÄ²éѯÓï·¨£¬Ä¿Ç°»¹ÊÇÒ»¸öδ֪Êý¡£µ«¿ÉÔ¤¼ûµÄÊÇ£¬Ëæ×ÅÊý¾ÝµÄ±¬Õ¨Ê½Ôö³¤£¬ÔÚ×·ÇóÊý¾ÝÇý¶¯ÔËÓªºÍ¾ö²ßµÄ³±Á÷Ï£¬Í¼Êý¾Ý¿âÔÚÉç½»¹ØÏµ¡¢ÊµÊ±ÍƼö¡¢Ö÷Êý¾Ý¹ÜÀí¡¢ÔÚÏß·´ÆÛÕ©¡¢ITÍøÂç¹ÜÀí¡¢µØÀíÐÅϢϵͳµÈÁìÓò¶¼½«Õ¼¾ÝÖØÒªµÄһϯ֮µØ¡£ |