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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Nebula Graph ¸ÅÀÀ
 
×÷ÕߣºÍ¼Í¼

  4236  次浏览      27
 2021-3-10
   
 
±à¼­ÍƼö:
±¾ÎÄÖ÷ÒªÏêϸ½éÉÜ Nebula GraphµÄÊý¾ÝÄ£ÐͺÍϵͳ¼Ü¹¹Éè¼Æ £¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚNebulaGraphÉçÇø£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

±¾Æªµ¼¶Á

ÓÐÏòÊôÐÔͼ

£¨Directed Property Graph£©

Nebula Graph ²ÉÓ÷dz£ÈÝÒ×Àí½âµÄÓÐÏòÊôÐÔͼµÄ·½Ê½À´½¨Ä£¡£Ò²¾ÍÊÇ˵£¬ÔÚÂß¼­ÉÏ£¬Í¼ÓÉÁ½ÖÖÍ¼ÔªËØ¹¹³É£º

¶¥µã£¨vertex£©¡¢¶¥µãµÄÀàÐÍ£¨tag£©ºÍ¶ÔÓ¦µÄ¶¥µãÊôÐÔ£ºÔÚ Nebula Graph ÖУ¬¶¥µãµÄÀàÐͳÆÎª±êÇ©£¨tag£©¡£Ò»¸ö¶¥µã±ØÐëÖÁÉÙÓÐÒ»ÖÖÀàÐÍ£¨±êÇ©£©£¬Ò²¿ÉÒÔÓжàÖÖÀàÐÍ£¨±êÇ©£©¡£Ã¿ÖÖ±êÇ©ÓÐÒ»×éÏà¶ÔÓ¦µÄÊôÐÔ£¬³ÆÎª schema¡£

ÀýÈçÉÏͼʾÀýÖУ¬ÓÐÁ½ÖÖÀàÐ͵Ķ¥µã£ºplayer ºÍ team¡£ player µÄ schema ÓÐÈýÖÖÊôÐÔ id£¨vid£©£¬Name£¨string£©ºÍ Age£¨int£©£»team µÄ schema ÓÐÁ½ÖÖÊôÐÔ id£¨vid£©ºÍ Name£¨string£©¡£

ºÍ Mysql Ò»Ñù£¬Nebula Graph ÊÇÒ»ÖÖÇ¿ schema µÄÊý¾Ý¿â£¬ÊôÐÔµÄÃû-³ÆºÍÊý¾ÝÀàÐͶ¼ÊÇÔÚÊý¾ÝдÈëǰȷ¶¨µÄ¡£

±ß£¨edge£©¡¢±ßµÄÀàÐÍ£¨edgetype£©ºÍ±ßÉϵÄÊôÐÔ£ºNebula Graph Öеı߾ùÊÇÓÐÏò±ß£¬±íÃ÷ÁËÒ»¸ö´ÓÆðµã£¨src£©Ö¸ÏòÖյ㣨dst£©±ßµÄ¹ØÁª¹ØÏµ¡£Ã¿¸ö¹ØÏµ¶¼ÓÐÒ»¸ö edgetype£¬Ã¿ÖÖ edgetype ¶¨ÒåÁ˹ØÏµµÄÊôÐÔ¡£

ÀýÈ磬ÉÏͼÖÐÓÐÁ½ÖÖÀàÐ͵ıߣ¬Ò»ÖÖΪ player Ö¸Ïò player µÄ like ¹ØÏµ£¬ÊôÐÔΪ likeness (double)£»ÁíÒ»ÖÖΪ player Ö¸Ïò team µÄ serve ¹ØÏµ£¬Á½¸öÊôÐÔ·Ö±ðΪ start_year(int) ºÍ end_year(int)¡£

ÐèҪ˵Ã÷µÄÊÇ£¬ÆðµãºÍÖÕµãÖ®¼ä£¬¿ÉÒÔͬʱ´æÔÚ¶àÌõÏàͬ»òÕß²»Í¬ÀàÐ͵ıߡ£

ͼ·Ö¸î

£¨Graph Partition£©

ÓÉÓÚ³¬´ó¹æÄ£¹ØÏµÍøÂçµÄ½ÚµãÊýÁ¿¸ß´ï°ÙÒÚµ½Ç§ÒÚ£¬¶ø±ßµÄÊýÁ¿¸ü»á¸ß´ïÍòÒÚ£¬¼´Ê¹½ö´æ´¢µãºÍ±ßÁ½ÕßÒ²Ô¶´óÓÚÒ»°ã·þÎñÆ÷µÄÈÝÁ¿¡£Òò´ËÐèÒªÓз½·¨½«Í¼ÔªËØÇи²¢´æ´¢ÔÚ²»Í¬Âß¼­·ÖƬ£¨Partition£©ÉÏ¡£Nebula Graph ²ÉÓñ߷ָîµÄ·½Ê½£¬Ä¬È쵀ᅮ¬²ßÂÔΪ¹þϣɢÁУ¬partition ÊýÁ¿Îª¾²Ì¬ÉèÖò¢²»¿É¸ü¸Ä¡£

Êý¾ÝÄ£ÐÍ

£¨Data Model£©

ÔÚ Nebula Graph ÖУ¬Ã¿¸ö¶¥µã±»½¨Ä£Îª key-value£¬¸ù¾ÝÆä vertexID£¨»ò¼ò³Æ vid£©¹þϣɢÁк󣬴洢µ½¶ÔÓ¦µÄ partition ÉÏ¡£

Ò»ÌõÂß¼­ÒâÒåÉϵıߣ¬ÔÚ Nebula Graph Öн¨Ä£ÎªÁ½¸ö¶ÀÁ¢µÄ key-value£¬·Ö±ð³ÆÎª out-key ºÍ in-key¡£out-key ÓëÕâÌõ±ßËù¶ÔÓ¦µÄÆðµã´æ´¢ÔÚͬһ¸ö partition ÉÏ£¬in-key ÓëÕâÌõ±ßËù¶ÔÓ¦µÄÖÕµã´æ´¢ÔÚͬһ¸ö partition ÉÏ¡£

¹ØÓÚÊý¾ÝÄ£Ð͵ÄÏêϸÉè¼Æ»áÔÚºóÐøµÄϵÁÐÎÄÕÂÖнéÉÜ¡£

ϵͳ¼Ü¹¹

£¨Architecture£©

Nebula Graph °üÀ¨ËĸöÖ÷ÒªµÄ¹¦ÄÜÄ£¿é£¬·Ö±ðÊÇ´æ´¢²ã¡¢ÔªÊý¾Ý·þÎñ¡¢¼ÆËã²ãºÍ¿Í»§¶Ë¡£

´æ´¢²ã

´æ´¢²ã¶ÔÓ¦½ø³ÌÊÇ nebula-storaged¡£ÆäºËÐÄΪ»ùÓÚ RAFT ЭÒéµÄ·Ö²¼Ê½ Key-value Storage¡£Ä¿Ç°Ö§³ÖµÄÖ÷Òª´æ´¢ÒýÇæÎª Rocksdb ºÍ HBase¡£

Raft ЭÒéͨ¹ý leader/follower µÄ·½Ê½£¬À´±£³ÖÊý¾ÝÖ®¼äµÄÒ»ÖÂÐÔ¡£Nebula Storage Ö÷ÒªÔö¼ÓÁËÒÔϹ¦ÄܺÍÓÅ»¯£º

1.Parallel Raft. ¶ą̀»úÆ÷ÉϵÄÏàͬ partiton-id ×é³ÉÒ»¸ö Raft group¡£Í¨¹ý¶à×é Raft group ʵÏÖ²¢·¢²Ù×÷¡£

2.Write Path & batch£ºRaft ЭÒéµÄ¶à»úÆ÷¼äͬ²½ÒÀÀµÓÚÈÕÖ¾ id ˳ÐòÐÔ£¬ÕâÑùµÄ throughput ½ÏµÍ¡£Í¨¹ýÅúÁ¿ºÍÂÒÐòÌá½»µÄ·½Ê½£¬À´ÊµÏÖ¸ü¸ßµÄÍÌÍÂÁ¿¡£

3.»ùÓÚÒì²½¸´ÖÆµÄ learner£ºµ±¼¯ÈºÖÐÔö¼ÓеĻúÆ÷ʱ£¬¿ÉÒÔ½«ÆäÏȱê¼ÇΪ learner£¬²¢Òì²½´Ó leader/follower À­È¡Êý¾Ý¡£µ±¸Ã learner ×·ÉÏ leader ºó£¬ÔÙ±ê¼ÇΪ follower£¬²ÎÓë raft ЭÒé¡£

4.Load-balance£º¶ÔÓÚ²¿·Ö·ÃÎÊѹÁ¦½Ï´óµÄ»úÆ÷£¬½«ÆäËù·þÎñµÄ partition Ç¨ÒÆµ½½ÏÀäµÄ»úÆ÷ÉÏ£¬ÒÔʵÏÖ¸üºÃµÄ¸ºÔؾùºâ¡£

ÔªÊý¾Ý·þÎñ²ã

Meta service ¶ÔÓ¦µÄ½ø³ÌÊÇ nebula-metad£¬ÆäÖ÷ÒªµÄ¹¦ÄÜÓУº

1.Óû§¹ÜÀí£ºNebula Graph µÄÓû§Ìåϵ°üÀ¨ God user£¬Admin£¬User£¬Guest ËÄÖÖ¡£Ã¿ÖÖÓû§µÄ²Ù×÷ȨÏÞ²»Ò»¡£

2.¼¯ÈºÅäÖùÜÀí£ºÖ§³ÖÉÏÏß¡¢ÏÂÏßеķþÎñÆ÷¡£

3.ͼ¿Õ¼ä¹ÜÀí£ºÔö¼Ó¡¢É¾³ýͼ¿Õ¼ä£¬ÐÞ¸Äͼ¿Õ¼äÅäÖã¨Raft ¸±±¾Êý£©¡£

4.Schema ¹ÜÀí£ºNebula Graph Ϊǿ schema Éè¼Æ¡£

1£©Í¨¹ý Meta service ¼Ç¼ Tag ºÍ Edge µÄÊôÐԵĸ÷×ֶεÄÀàÐÍ¡£Ö§³ÖµÄÀàÐÍÓУºint, double, timestamp, list µÈ£»

2£©¶à°æ±¾¹ÜÀí£¬Ö§³ÖÔö¼Ó¡¢Ð޸ĺÍɾ³ý schema£¬²¢¼Ç¼Æä°æ±¾ºÅ£»

3£©TTL ¹ÜÀí£¬Í¨¹ý±êʶµ½ÆÚ»ØÊÕ£¨time-to-live£©×ֶΣ¬Ö§³ÖÊý¾ÝµÄ×Ô¶¯É¾³ýºÍ¿Õ¼ä»ØÊÕ¡£

Meta Service ²ãΪÓÐ״̬µÄ·þÎñ£¬Æä״̬³Ö¾Ã»¯·½·¨Óë Storage ²ãÒ»Ñùͨ¹ý KV Store ·½Ê½´æ´¢¡£

Query Engine &

Query Language (nGQL)

¼ÆËã²ã¶ÔÓ¦µÄ½ø³ÌÊÇ nebula-graphd£¬ËüÓÉÍêÈ«¶ÔµÈÎÞ״̬ÎÞ¹ØÁªµÄ¼ÆËã½Úµã×é³É£¬¼ÆËã½ÚµãÖ®¼äÏ໥ÎÞͨÐÅ¡£

Query Engine ²ãµÄÖ÷Òª¹¦ÄÜ£¬ÊǽâÎö¿Í»§¶Ë·¢ËÍ nGQL Îı¾£¬Í¨¹ý´Ê·¨½âÎö£¨Lexer£©ºÍÓï·¨½âÎö£¨Parser£©Éú³ÉÖ´Ðмƻ®¡£²¢Í¨¹ýÓÅ»¯ºó½«Ö´Ðмƻ®½»ÓÉÖ´ÐÐÒýÇæ¡£Ö´ÐÐÒýÇæÍ¨¹ý Meta Service »ñȡͼµãºÍ±ßµÄ schema£¬²¢Í¨¹ý´æ´¢ÒýÇæ²ã»ñÈ¡µãºÍ±ßµÄÊý¾Ý¡£

Query Engine²ãµÄÖ÷ÒªÓÅ»¯ÓУº

Òì²½ºÍ²¢·¢Ö´ÐУºÓÉÓÚ IO ºÍÍøÂç¾ùΪ³¤Ê±ÑÓ²Ù×÷£¬Ðè²ÉÓÃÒì²½¼°²¢·¢²Ù×÷¡£´ËÍ⣬Ϊ±ÜÃâµ¥¸ö³¤ query Ó°ÏìºóÐø query£¬Ò²ÎªÃ¿¸ö query ÉèÖõ¥¶ÀµÄ×ÊÔ´³ØÒÔ±£Ö¤·þÎñÖÊÁ¿ QoS¡£

¼ÆËãϳÁ£ºÎª±ÜÃâ´æ´¢²ã½«¹ý¶àÊý¾Ý»Ø´«µ½¼ÆËã²ã£¬Õ¼Óñ¦¹ó´ø¿í£¬Ìõ¼þ¹ýÂË£¨where£©µÈËã×Ó»áËæ²éѯÌõ¼þһͬÏ·¢µ½´æ´¢²ã½Úµã¡£

Ö´Ðмƻ®ÓÅ»¯£º¹ØÏµÊý¾Ý¿â SQL ÖеÄÖ´Ðмƻ®ÓÅ»¯ÒѾ­¾­ÀúÁ˳¤Ê±¼äµÄ·¢Õ¹£¬µ«Òµ½ç¶ÔÓÚͼ²éѯÓïÑÔµÄÓÅ»¯Ñо¿½ÏÉÙ¡£Nebula Graph ¶Ôͼ²éѯµÄÖ´Ðмƻ®ÓÅ»¯Ò²½øÐÐÁËÒ»¶¨µÄ̽Ë÷£¬°üÀ¨Ö´Ðмƻ®»º´æºÍÉÏÏÂÎÄÎÞ¹ØÓï¾äµÄ²¢·¢Ö´ÐС£

API ºÍ console

Nebula Graph ÌṩC++, java, Golang ÈýÖÖÓïÑԵĿͻ§¶Ë£¬Óë·þÎñÆ÷Ö®¼äµÄͨÐÅ·½Ê½Îª RPC£¬²ÉÓõÄͨÐÅЭÒéΪ Facebook-Thrift¡£Óû§Ò²¿Éͨ¹ý linux ÉÏ console ʵÏÖ¶Ô Nebula Graph ²Ù×÷¡£Web ·ÃÎÊ·½Ê½Ò²ÒÑÔÚ¿ª·¢¹ý³ÌÖС£

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

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
´óÊý¾Ýƽ̨ϵÄÊý¾ÝÖÎÀí
ÈçºÎÉè¼ÆÊµÊ±Êý¾Ýƽ̨£¨¼¼Êõƪ£©
´óÊý¾Ý×ʲú¹ÜÀí×ÜÌå¿ò¼Ü¸ÅÊö
Kafka¼Ü¹¹ºÍÔ­Àí
ELK¶àÖּܹ¹¼°ÓÅÁÓ
×îпγÌ
´óÊý¾Ýƽ̨´î½¨Óë¸ßÐÔÄܼÆËã
´óÊý¾Ýƽ̨¼Ü¹¹ÓëÓ¦ÓÃʵս
´óÊý¾ÝϵͳÔËά
´óÊý¾Ý·ÖÎöÓë¹ÜÀí
Python¼°Êý¾Ý·ÖÎö
³É¹¦°¸Àý
ijͨÐÅÉ豸ÆóÒµ PythonÊý¾Ý·ÖÎöÓëÍÚ¾ò
Ä³ÒøÐÐ È˹¤ÖÇÄÜ+Python+´óÊý¾Ý
±±¾© Python¼°Êý¾Ý·ÖÎö
ÉñÁúÆû³µ ´óÊý¾Ý¼¼Êõƽ̨-Hadoop
ÖйúµçÐÅ ´óÊý¾Ýʱ´úÓëÏÖ´úÆóÒµµÄÊý¾Ý»¯ÔËӪʵ¼ù