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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÍòÒÚ¼¶Í¼Êý¾Ý¿â Nebula Graph µÄÊý¾ÝÄ£Ðͺͼܹ¹Éè¼Æ
 
 
  3012  次浏览      27
2021-2-24
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜ Nebula Graph µÄÊý¾ÝÄ£ÐͺÍϵͳ¼Ü¹¹Éè¼Æ ¡£
±¾ÎÄÀ´×ÔÂë¶´£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼­¡¢ÍƼö¡£

Nebula Graph ÊÇĿǰΨһÄܹ»´æ´¢ÍòÒÚ¸ö´øÊôÐԵĽڵãºÍ±ßµÄÔÚÏßͼÊý¾Ý¿â¡£Nebula Graph ²»½öÄܹ»Ôڸ߲¢·¢³¡¾°ÏÂÂú×ãºÁÃë¼¶µÄµÍʱÑÓ²éѯҪÇ󣬶øÇÒÄܹ»Ìṩ¼«¸ßµÄ·þÎñ¿ÉÓÃÐÔºÍÊý¾Ý°²È«ÐÔ¡£NebulaGraph Ò²ÊÇÒ»¸ö¿ªÔ´µÄ²úÆ·£¬Äã¿ÉÒÔÔÚ GitHub Éϲ鿴¡¢·Ö·¢ºÍ¹±Ï×´úÂë¡£

±¾ÆªÖ÷Òª½éÉÜ Nebula Graph µÄÊý¾ÝÄ£ÐͺÍϵͳ¼Ü¹¹Éè¼Æ¡£

ÓÐÏòÊôÐÔͼ DirectedPropertyGraph

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

¶¥µã Vertex

ÔÚ Nebula Graph Öж¥µãÓɱêÇ© tag ºÍ¶ÔÓ¦ tag µÄÊôÐÔ×é¹¹³É£¬ tag ´ú±í¶¥µãµÄÀàÐÍ£¬ÊôÐÔ×é´ú±í tag ÓµÓеÄÒ»ÖÖ»ò¶àÖÖÊôÐÔ¡£Ò»¸ö¶¥µã±ØÐëÖÁÉÙÓÐÒ»ÖÖÀàÐÍ£¬¼´±êÇ©£¬Ò²¿ÉÒÔÓжàÖÖÀàÐÍ¡£Ã¿ÖÖ±êÇ©ÓÐÒ»×éÏà¶ÔÓ¦µÄÊôÐÔ£¬ÎÒÃdzÆÖ®Îª schema ¡£

ÈçÉÏͼËùʾ£¬ÓÐÁ½ÖÖ tag ¶¥µã£ºplayer ºÍ team¡£player µÄ schema ÓÐÈýÖÖÊôÐÔ ID £¨vid£©£¬Name £¨sting£©ºÍ Age £¨int£©£»team µÄ schema ÓÐÁ½ÖÖÊôÐÔ ID £¨vid£©ºÍ Name £¨string£©¡£

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

±ß Edge

ÔÚ Nebula Graph ÖбßÓÉÀàÐͺͱßÊôÐÔ¹¹³É£¬¶ø Nebula Graph Öб߾ùÊÇÓÐÏò±ß£¬ÓÐÏò±ß±íÃ÷Ò»¸ö¶¥µã£¨ Æðµã src £©Ö¸ÏòÁíÒ»¸ö¶¥µã£¨ ÖÕµã dst £©µÄ¹ØÁª¹ØÏµ¡£´ËÍ⣬ÔÚ Nebula Graph ÖÐÎÒÃǽ«±ßÀàÐͳÆÎª edgetype £¬Ã¿Ò»Ìõ±ßÖ»ÓÐÒ»ÖÖ edgetype £¬Ã¿ÖÖ edgetype ÏàÓ¦¶¨ÒåÁËÕâÖÖ±ßÉÏÊôÐ﵀ schema ¡£

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

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

ͼ·Ö¸î GraphPartition

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

Êý¾ÝÄ£ÐÍ DataModel

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

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

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

ϵͳ¼Ü¹¹Architecture

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

´æ´¢²ã Storage

ÔÚ Nebula Graph Öд洢²ã¶ÔÓ¦½ø³ÌÊÇ nebula-storaged £¬ÆäºËÐÄΪ»ùÓÚ Raft£¨ÓÃÀ´¹ÜÀíÈÕÖ¾¸´ÖƵÄÒ»ÖÂÐÔËã·¨£© ЭÒéµÄ·Ö²¼Ê½ Key-valueStorage ¡£

Ŀǰ֧³ÖµÄÖ÷Òª´æ´¢ÒýÇæÎª¡¸Rocksdb¡¹ºÍ¡¸HBase¡¹¡£

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

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

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

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

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

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

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

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

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

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

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

ͨ¹ý Metaservice ¼Ç¼ Tag ºÍ Edge µÄÊôÐԵĸ÷×ֶεÄÀàÐÍ¡£Ö§³ÖµÄÀàÐÍÓУºÕûÐÍ int, Ë«¾«¶ÈÀàÐÍ double, ʱ¼äÊý¾ÝÀàÐÍ timestamp, ÁбíÀàÐÍ listµÈ£»

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

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

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

¼ÆËã²ã Query Engine & Query Language(nGQL)

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

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

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

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

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

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

¿Í»§¶Ë API & Console

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

 

 

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

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

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

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
InfluxDB¸ÅÄîºÍ»ù±¾²Ù×÷
InfluxDB TSM´æ´¢ÒýÇæÖ®Êý¾ÝдÈë
Éî¶ÈÂþ̸Êý¾Ýϵͳ¼Ü¹¹¡ª¡ªLambda architecture
Lambda¼Ü¹¹Êµ¼ù
InfluxDB TSM´æ´¢ÒýÇæÖ®Êý¾Ý¶ÁÈ¡
×îпγÌ
OracleÊý¾Ý¿âÐÔÄÜÓÅ»¯¡¢¼Ü¹¹Éè¼ÆºÍÔËÐÐά»¤
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
NoSQLÊý¾Ý¿â£¨Ô­Àí¡¢Ó¦Óá¢×î¼Ñʵ¼ù£©
ÆóÒµ¼¶Hadoop´óÊý¾Ý´¦Àí×î¼Ñʵ¼ù
OracleÊý¾Ý¿âÐÔÄÜÓÅ»¯×î¼Ñʵ¼ù
³É¹¦°¸Àý
ij½ðÈÚ¹«Ë¾ Mysql¼¯ÈºÓëÐÔÄÜÓÅ»¯
±±¾© ²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
ÖªÃûijÐÅϢͨÐŹ«Ë¾ NoSQL»º´æÊý¾Ý¿â¼¼Êõ
±±¾© oracleÊý¾Ý¿âSQLÓÅ»¯
ÖйúÒÆ¶¯ IaaSÔÆÆ½Ì¨-Ö÷Á÷Êý¾Ý¿â¼°´æ´¢¼¼Êõ