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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
΢ÐÅÖ§¸¶ÉÌ»§ÏµÍ³¼Ü¹¹±³ºóµÄ¹ÊÊÂ
 
  3526  次浏览      27
 2018-11-28 
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚcloud.tencent.com£¬Î¢ÐÅÖ§¸¶ÒµÎñ¿ìËÙ·¢Õ¹£¬ÐèÒªÒ»¿îÊý¾Ý¿âÄܹ»°²È«¸ßЧµÄÖ§³Å΢ÐÅÖ§¸¶ÉÌ»§ÏµÍ³ºËÐÄÒµÎñ£¬Õâ¸öÖØÈÎÂäÔÚÁËÌÚѶÊý¾Ý¿âÍŶÓ×ÔÑÐPostgreSQLÉÏ¡£

ÌÚѶ×ÔÑÐPostgreSQL·Ö²¼Ê½¼¯Èº PostgreSQL-XZ

ÌÚѶPostgreSQL-XZÊÇÓÉPostgreSQL-XCÉçÇø°æ±¾µØ»¯¶øÀ´£¬ÄÜÖ§³ÅˮƽÀ©Õ¹Êý¾Ý¿â¼¯Èº¡£ËäÈ»PostgreSQL-XCºÜÇ¿´ó£¬µ«ÔÚÐÔÄÜ¡¢À©Õ¹ÐÔ¡¢°²È«¡¢ÔËά·½Ã滹ÊÇÓÐÃ÷ÏÔµÄÆ¿¾±£¬¶øÌÚѶPostgreSQL¾­¹ý¶àÄêµÄ»ýÀÛ£¬ÔÚÕâЩ·½Ãæ¶¼ÓнϴóÌáÉýºÍÇ¿»¯¡£ÓÉÓÚÊÇÓÃÓÚ΢ÐÅÖ§¸¶µÄºËÐÄÊý¾Ý¿â£¬ÌÚѶPostgreSQL±»¶¨Î»Îª°²È«¡¢¸ßЧ£¬Îȶ¨£¬¿É¿¿µÄÊý¾Ý¿â¼¯Èº¡£ÏÂÃæ½«ÒÔÌÚѶPostgreSQL-XZΪ´ú±í½éÉÜÌÚѶ×ÔÑÐPostgreSQLËù×öµÄÓÅ»¯ºÍ¸Ä½ø¡£

Ò».ÊÂÎñ¹ÜÀíϵͳµÄÓÅ»¯

PostgreSQL-XCÔÚÊÂÎñ¹ÜÀíϵͳ·½°¸±¾ÉíÓÐÒ»¸öÃ÷ÏÔµÄȱµã£¬ÄǾÍÊÇÊÂÎñ¹ÜÀí»úÖÆ»á³ÉΪϵͳµÄÆ¿¾±£¬GTM£¨Global Transaction ManagerÈ«¾ÖÊÂÎñ¹ÜÀíÆ÷£©»áÏÞÖÆÏµÍ³µÄÀ©Õ¹¹æÄ£¡£Èçͼ1Ëùʾ£¬ÊÇÿ¸öÇëÇó¹ýÀ´CN(Coordinator Эµ÷½Úµã)¶¼»áÏòGTMÉêÇë±ØÐèµÄgxid£¨È«¾ÖÊÂÎñID£©ºÍgsnapshot£¨È«¾Ö¿ìÕÕ£©ÐÅÏ¢£¬²¢°ÑÕâЩÐÅÏ¢Ëæ×ÅSQLÓï¾ä±¾ÉíÒ»Æð·¢ÍùDN£¨DatanodeÊý¾Ý¿â½Úµã£©½øÐÐÖ´ÐС£ÁíÍ⣬PostgreSQL-XCµÄ¹ÜÀí»úÖÆ£¬Ö»ÓÐÖ÷DN²Å»á»ñÈ¡µÄgxid£¬¶ø±¸DNûÓÐ×Ô¼ºµÄgxid£¬Òò´ËÎÞ·¨Ìṩֻ¶Á·þÎñ£¬¶ÔϵͳҲÊDz»Ð¡µÄÀË·Ñ¡£

ͼ1

¶øÌÚѶPostgreSQL-XZ¸Ä½øÁËÊÂÎñ¹ÜÀí»úÖÆ£¬¸Ä½øºó£¬CN²»ÔÙ´ÓGTM»ñÈ¡gxidºÍgsnapshot£¬Ã¿¸ö½ÚµãʹÓÃ×Ô¼ºµÄ±¾µØxid£¨ÊÂÎñID£©ºÍgsnapshot£¨¿ìÕÕ£©£¬Èç´ËGTM±ã²»»á³ÉΪϵͳµÄÆ¿¾±£»²¢ÇÒ£¬DN±¸»ú¾Í»¹¿ÉÒÔÌṩֻ¶Á·þÎñ£¬³ä·ÖÀûÓÃϵͳÏÐÖÃ×ÊÔ´¡£Èçͼ2£¬ÓÅ»¯ºóµÄÊÂÎñ¹ÜÀíϵͳ¼Ü¹¹ÈçÏ£º

ͼ2

¶þ.±¸»úÖ»¶ÁʵÏÖÓëÓÅ»¯

µ±È»£¬ÊÂÎñ¹ÜÀíϵͳµÄÓÅ»¯Îª½øÐб¸DNÖ»¶ÁÌṩÁË»ù´¡£¬È»¶øÔ­Ê¼¼¯Èº²¢Ã»ÓиºÔØ¡¢µ÷¶ÈµÈÄÜÁ¦¡£ÔÚÕâ·½Ãæ£¬ÎÒÃÇÒ²×öÁË´óÁ¿µÄ´´Ð£¬×ܽáÆðÀ´°üÀ¨£º

Õý³£CNºÍÖ»¶ÁCN½øÐзÖÀë¡£

Õý³£CN´æ´¢Ö÷ÓÃDNµÄÔªÊý¾ÝÐÅÏ¢

Ö»¶ÁCN´æ´¢±¸ÓÃDNµÄÔªÊý¾ÝÐÅÏ¢

DNÖ®¼äʹÓÃhot standby£¨Èȱ¸·Ý±£»¤£©Ä£Ê½½øÐÐÈÕ־ͬ²½

ͨ¹ýÕâЩ·½Ê½£¬¼¯Èº¿ÉÒÔÌṩ´øÓÐÖÇÄܸºÔØÄÜÁ¦µÄ±¸DNÖ»¶Á¹¦ÄÜ£¬³ä·ÖÀûÓÃϵͳ×ÊÔ´¡£

ͼ3

Èý.ÒµÎñ×îСÖжϵÄÀ©ÈÝ·½°¸

ÒµÎñµÄ¿ìËÙÔö³¤²»¿É±ÜÃâµÄÐèÒª¶Ô×ÊÔ´½øÐÐÀ©ÈÝ£¬ÉçÇø°æ±¾µÄʵÏÖʹµÃÀ©Èݳɱ¾¸ß°º£¬ÐèÒª¶ÔÒµÎñ½øÐг¤Ê±¼äµÄÖжϡ£ÒòΪ£¬ÔÚÉçÇø°æ±¾PostgreSQL-XCÖУ¬Í¨¹ý DN=Hash(row) % nofdnµÄ·½Ê½¾ö¶¨Ò»Ìõ¼Ç¼µÄ´æ´¢½Úµã£º

Ò²¾ÍÊÇ˵£¬ÏȶԷֲ¼ÁмÆËãhashÖµ£¬È»ºóʹÓÃÕâ¸öÖµ¶Ô¼¯ÈºÖеĽڵã¸öÊýȡģÀ´¾ö¶¨¼Ç¼ȥÄĸö½Úµã£¨Èçͼ4£©¡£

ÕâÖÖ·½°¸¼òµ¥£¬µ«Êµ¼ÊÓ¦ÓÃÖÐÐèÒª³¤Ê±¼äÍ£»úÀ©ÈÝ¡£ÕâÊÇÒòΪ£¬À©Èݺó½ÚµãÊý»á±ä¶à£¬Êý¾ÝÎÞ·¨°´ÕÕÔ­Óеķֲ¼Âß¼­½øÐжÁд£¬ÐèÒªÖØÐ·ֲ¼½ÚµãÊý¾Ý¡£¶øÔÙ¾ùºâÊý¾ÝÐèҪͣ»ú²¢ÊÖ¹¤Ç¨ÒÆÔÙ¾ùºâµ½¸÷¸ö½Úµã¡£¶ÔÓÚ¹æÄ£½Ï´óµÄ½»Ò×ϵͳÀ´Ëµ£¬ÓÉÓÚÔ­ÓÐ½Úµã´æ´¢µÄÊǺ£Á¿Êý¾Ý£¬ÔÙ¾ùºâ¹ý³Ì¿ÉÄÜ»á³ÖÐøºÃ¼¸Ìì¡£ÏàÐÅÕâÊÇÒµÎñÍêÈ«ÎÞ·¨ÈÌÊܵġ£

ͼ4

Òò´ËÎÒÃÇÒýÈëÁËÒ»ÖÖÐÂµÄ·Ö±í·½·¨¡ªsharded table¡£ShardedtableµÄÊý¾Ý·Ö²¼²ÉÓÃÈçÏ£¨Í¼5£©µÄ·½Ê½£º

ÒýÈëÒ»¸ö³éÏóµÄÖмä²ã--shard map¡£Shard mapÖÐÿһÏî´æ´¢shardidºÍDNµÄÓ³Éä¹ØÏµ¡£

Sharded tableÖеÄÿÌõ¼Ç¼ͨ¹ýHash(row) % #shardmap entryÀ´¾ö¶¨¼Ç¼´æ´¢µ½Äĸöshardid£¬Í¨¹ý²éѯshardmapµÄ´æ´¢µÄDN¡£

ÿ¸öDNÉÏ´æ´¢·ÖÅäµ½±¾½ÚµãshardidÐÅÏ¢£¬½ø¶ø½øÐпɼûÐÔµÄÅжϡ£

ͨ¹ýÉÏÃæµÄ·½°¸£¬ÔÚÀ©ÈÝмӽڵãʱ£¬¾ÍÖ»ÐèÒª°ÑһЩshardmapÖеÄshardidÓ³É䵽мӵĽڵ㣬²¢°Ñ¶ÔÓ¦µÄÊý¾Ý°áǨ¹ýÈ¥¾Í¿ÉÒÔÁË¡£À©ÈÝÒ²½ö½öÐèÒªÇл»shardmapÖÐÓ³Éä¹ØÏµµÄ£¬Ê±¼ä´Ó¼¸ÌìËõ¶Ìµ½¼¸Ãë¡£

ͼ5

ËÄ.Êý¾ÝÇãб½â¾ö·½°¸

Êý¾ÝÇãбÊÇÖ¸£¬ÔÚ·Ö²¼Ê½Êý¾Ý¿âϵͳÖлáÒòΪÎïÀí½Úµã¡¢hash»òshard·Ö²¼Ô­Òò£¬µ¼ÖÂijЩDNÎïÀí¿Õ¼ä²»×㣬¶øÁíÍâµÄÎïÀí¿Õ¼äÊ£Óà½Ï´ó¡£ÀýÈ磬Èç¹ûÒÔÉÌ»§×÷Ϊ·Ö²¼key£¬¾©¶«Ã¿ÌìµÄÊý¾ÝÁ¿ºÍÒ»¸öÆÕͨµçÉ̵ÄÊý¾ÝÁ¿¿Ï¶¨ÊÇÌìµØ²î±ð¡£¿ÉÄÜij¸ö´óÉÌ»§Ò»¸öÔµÄÊý¾Ý¾Í»á°ÑÒ»¸öDNµÄÎïÀí¿Õ¼äÈûÂú£¬ÕâʱϵͳֻÓÐÍ£»úÀ©ÈÝÒ»Ìõ·¡£Òò´ËÎÒÃDZØÐëÒªÓÐÒ»¸öÓÐЧµÄÊÖ¶ÎÀ´½â¾öÊý¾ÝÇãб£¬±£Ö¤ÔÚ±íÊý¾Ý·Ö²¼²»¾ùÔÈʱϵͳÈÔÈ»Äܹ»¸ßЧÎȶ¨µÄÔËÐС£

Ê×ÏÈÎÒÃǰÑϵͳµÄDN·ÖΪgroup£¨ÈçÏÂͼ6£©£¬Ã¿¸ögroupÀïÃæ£º

°üº¬Ò»¸ö»òÕß¶à¸öDN

ÿ¸ögroupÓÐÒ»¸öshardmap

ÔÚ½¨sharded±íʱ£¬¿ÉÒÔÖ¸¶¨´æ´¢µÄgroup£¬Ò²¾ÍÊÇҪô´æ´¢ÔÚgroup1£¬ÒªÃ´group2

CN¿ÉÒÔ·ÃÎÊËùÓеÄgroup£¬¶øÇÒCNÉÏÒ²´æ´¢ËùÓбíµÄ·ÃÎÊ·½Ê½ÐÅÏ¢

ͼ6

¶ÔÓÚϵͳÖÐÊý¾ÝÁ¿½Ï´óÓû§½øÐÐÌØ±ðµÄʶ±ð£¬²¢ÎªËûÃÇ´´½¨°×Ãûµ¥£¬Ê¹Óò»Í¬µÄÊý¾Ý·Ö²¼Âß¼­£¨ÈçÏÂͼ7£©£ºÆÕͨÓû§Ê¹ÓÃĬÈϵÄÊý¾Ý·Ö²¼Âß¼­£¬Ò²¾ÍÊÇ£º

Shardid = Hash(merchantid) % #shardmap

´óÉÌ»§Ê¹Óö¨ÖƵÄÊý¾Ý·Ö²¼Âß¼­£¬Ò²¾ÍÊÇ£º

Shardid = Hash(merchantid) % #shardmap + fcreate_timedayoffset from 1970-01-01

ͼ7

ͨ¹ýÔÚ´óÉÌ»§group·Ö²¼Âß¼­ÖмÓÈëÈÕÆÚÆ«ÒÆ£¬À´ÊµÏÖͬһ¸öÓû§µÄÊý¾ÝÔÚgroupÄÚ²¿¶à¸ö½Úµã¼ä¾ùÔÈ·Ö²¼¡£´Ó¶øÓÐЧµÄ½â¾öÊý¾Ý·Ö²¼²»¾ùÔÈÎÊÌâ¡£

ÏÂÃæÊÇÒ»¸öÀý×Ó£¨ÈçÏÂͼ8£©£º

ͼ8

Îå.9000W¼Ç¼¸ßЧÅÅÐò½â¾ö·½°¸

ÒµÎñÔÚÁбí²éѯ³¡¾°Ï»áÊÕµ½ÈçϵIJéѯSQL£º

ÔÚ΢ÐÅÖ§¸¶µÄ³¡¾°ÖУ¬Ä³¸öÉÌ»§Ã¿ÌìµÄÊý¾ÝÓÐ300W£¬Ò»¸öÔÂÊý¾Ý³¬¹ý9000WÌõ£¬Ò²¾ÍÊÇ˵PostgreSQLÐèÒªÃæÏòÒ»¸ö9000WÊý¾Ý¼¶Êý¾Ý½øÐпìËÙÅÅÐò£¬¶øÇÒÒµÎñÂß¼­ÒªÇóÐèÒªÃë¼¶Êä³ö£¬¿ìËÙ»ñÈ¡ÅÅÐò½á¹û¡£

Ϊ´Ë£¬ÎÒÃÇÌṩ±í¶¨Òå·½°¸£¬¼´½¨Á¢¼¯Èº·ÖÇø±í¡£¸ù¾ÝÉÏÊöÐèÇ󣬿ÉÒÔ²ÉÓð´ÔÂ·Ö±í£¬¼´Ã¿¸öÔÂÒ»ÕÅ±í£¬²¢¶ÔÅÅÐò×Ö¶Îffinish_time½¨Á¢Ë÷Òý£¬ÕâÑùÿ¸ö·ÖÇø½øÐÐɨÃèÊÇ¿ÉÒÔʹÓÃË÷Òý¡£

ÎÒÃÇÔÙͨ¹ýһϵÁÐÖ´Ðмƻ®µÄÓÅ»¯£¬CNÏÂÍÆorder byºÍlimit offset×Ӿ䵽DN£»DNÉÏÔÚÖ´ÐжÔÓ¦µÄsqlʹÓÃʹÓÃMerge AppendËã×Ó¶Ô¸÷¸ö×Ó±íÖ´ÐеĽá¹û½øÐлã×ÜÊä³ö£¬Õâ¸öËã×Ó±¾Éí»á±£Ö¤Êä³öÊÇÓÐÐòµÄ£¬Ò²¾ÍÊÇ˵¶Ô×Ó±í½øÐÐË÷ÒýɨÃ裬ͬʱMerge AppendÓÖ¶Ô¸÷¸ö×Ó±íµÄ½á¹û½øÐй鲢£¬½ø¶ø±£Ö¤½Úµã±¾ÉíµÄ½á¹ûÊÇÅÅÐòµÄ¡£CN¶Ô¶à¸öDNµÄ½á¹ûͬÑùʹÓÃMerge Append½øÐй鲢£¬±£Ö¤Õû¸öÊä³ö½á¹ûÊÇÓÐÐòµÄ£¬´Ó¶øÍê³ÉÕû¸öÅÅÐò¹ý³Ì¡£

ÏÂÃæÊÇÎÒÃǶÔÅÅÐò½øÐеÄÐÔÄܲâÊÔ½á¹û£º

ͨ¹ýÔÚ24ºËCPU£¬64GÄÚ´æµÄ»úÐÍÉϽøÐвâÊÔ£¬9000WÊý¾ÝµÄÅÅÐòÔÚ×î¶Ì¿ÉÒÔÔÚ25 msÄÚÍê³É£¬QPS×î¸ß¿É´ï5400¡£

Áù.²¢ÐÐÓÅ»¯

Ëæ×ŵ±Ç°Ó²¼þµÄ·¢Õ¹£¬ÏµÍ³×ÊÔ´Ô½À´Ô½·á¸»£¬¶àCPU´óÄÚ´æ³ÉÁËϵͳ±êÅ䣬³ä·ÖÀûÓÃÕâЩ×ÊÔ´¿ÉÒÔÓÐЧµÄÌáÉýµÄ´¦ÀíЧÂÊÓÅ»¯ÐÔÄÜ¡£ÌÚѶÔÚ2014Äêµ×¿ªÊ¼½øÐÐPostgreSQL¶àºËÖ´ÐÐÓÅ»¯¡£

ĿǰPostgreSQL9.6ÉçÇø°æÒ²»á°üº¬²¿·Ö²¢Ðл¯ÌØÐÔ£¬µ«ÊÇûÓÐÎÒÃÇÕâ±ßÕâô·á¸»£¬ÏÂÃæ½éÉÜÏÂÌÚѶPostgreSQL²¢Ðл¯µÄÔ­ÀíºÍЧ¹û£º

ϵͳ´´½¨Ò»¸öÈ«¾ÖµÄ¹²ÏíÄÚ´æ¹ÜÀíÆ÷£¬Ê¹ÓÃbitmap¹ÜÀíËã·¨½øÐйÜÀí

ϵͳÆô¶¯Ê±´´½¨Ò»¶¨Êý¾ÝµÄExecutor£¬ÕâЩExecutorÓÃÀ´Ö´ÐÐÖ´Ðмƻ®µÄË鯬

ϵͳ»á´´½¨Ò»¸ö¼Æ»®¶ÓÁУ¬ËùÓеÄExecutor¶¼»áÔÚÈÎÎñ¶ÓÁÐÉϵȴý¼Æ»®

ÿ¸öExecutor¶ÔÓ¦Ò»¸öÈÎÎñ½á¹û¶ÓÁУ¬ExecutorÔÚÊä³ö½á¹ûʱ¾Í°Ñ½á¹ûµÄÖ¸Õë¹Òµ½½á¹û¶ÓÁÐÖÐÈ¥

¼Æ»®¶ÓÁУ¬½á¹û¶ÓÁУ¬¼Æ»®·ÖƬִÐнá¹û¶¼´æ·ÅÔÚ¹²ÏíÄÚ´æ¹ÜÀíÆ÷ÖУ¬ÕâÑùËùÓеĽø³Ì¶¼¿ÉÒÔ·ÃÎʵ½ÕâЩ½á¹¹

Postgres»á»°½ø³ÌÔÚÊÕµ½sqlʱ£¬ÅжÏÊÇ·ñ¿ÉÒÔ²¢Ðл¯£¬²¢½øÐÐÈÎÎñµÄ·Ö·¢£»ÔÚ½á¹û¶ÓÁÐÖÐÓнá¹ûʱ¾Í¶Á³ö·µ»Ø

ÎÒÃÇÍê³ÉÓÅ»¯µÄËã×Ó£º

Seqscan

Hash join

Nestloop join

Remote query

Hash Agg

Sort Agg

Append

ͨ¹ýÔÚ24ºËCPU£¬64GÄÚ´æµÄ»úÐÍϲâÊÔ£¬¸÷¸öËã×ÓµÄÓÅ»¯½á¹û£º

ÕûÌåÀ´ËµÐÔÄÜÆÕ±éÊÇÓÅ»¯Ç°µÄ10-12±¶£¬ÓÅ»¯µÄЧ¹û±È½ÏÃ÷ÏÔ¡£

Æß.ÌÚѶPostgreSQL-XZµÄÁ½µØÈýÖÐÐÄÈÝÔÖ

Á½µØÈýÖÐÐÄÈÝÔÖÊǽðÈÚ¼¶Êý¾Ý¿âµÄ±Ø±¸ÄÜÁ¦£¬¶ÔÓÚ½ðÈÚÀàÒµÎñÊý¾Ý°²È«ÊÇ×î»ù±¾Ò²ÊÇ×îÖØÒªËßÇó£¬Òò´ËÎÒÃÇΪÁ˱£ÕϸßЧÎȶ¨µÄÊý¾ÝÈÝÔÖÄÜÁ¦£¬Ò²ÎªPostgreSQL-XZ½¨ÉèÁËÍêÉÆµÄÁ½µØÈýÖÐÐÄ×Ô¶¯ÈÝÔÖÄÜÁ¦¡£¾ßÌåµÄÁ½µØÈýÖÐÐIJ¿Êð½á¹¹ÈçÏ£º

ͬ³Ç½Úµã¼ä²ÉÓÃǿͬ²½·½Ê½£¬±£ÕÏÊý¾ÝǿһÖ£»ÒìµØ²ÉÓÃ×¨ÍøÒ첽ͬ²½¡£

½ÚµãÄÚ£¬Ã¿Ì¨ÎïÀí»úÉϲ¿ÊðCAgent£¬agentÊÕ¼¯»úÆ÷״̬²¢½øÐÐÉϱ¨£¬²¢½øÐÐÏàÓ¦µÄ¸æ¾¯ºÍµ¹»»Ö´Ðй¦ÄÜ¡£

ÿ¸öIDCÖÁÉÙ²¿ÊðÒ»¸öJCenter£¬JCenter¸ºÔðÊÕ¼¯Éϱ¨Ã¿¸öagentÉϱ¨µÄ״̬µ½ZK¼¯Èº¡£Õâô¶à¸öJCenterÖÐÖ»ÓÐÒ»¸öÊÇÖ÷Óã¬Ö÷ÓõÄJCenter³ýÁ˽øÐÐ״̬Éϱ¨»¹½øÐйÊÕϲþöºÍµ¹»»¡£ÔÚÖ÷ÓõÄJCenterÒì³£ºó£¬ÏµÍ³Í¨¹ýZK×Ô¶¯²Ã¾öÌôѡһ¸ö±¸ÓõÄJCenterÉýÖ÷¡£

JCenterºÍCAgentÊÇÁ½µØÈýÖÐÐĵĿØÖƺͲþö½Úµã¡£

¶ÔÓÚÊý¾Ý¿â½Úµã£¬CNÔÚÿ¸öIDCÖÁÉÙ²¿ÊðÒ»¸ö¡£DNÔÚÿ¸öÖÐÐIJ¿ÊðÒ»¸ö£¬Ò»¸öΪÖ÷£¬ÁíÍâÁ½¸ö²¢Áª×÷Ϊ±¸»ú·ÅÔÚÖ÷»úÉÏ£¬Ò»¸öΪͬ²½±¸»ú£¬ÁíÍâÒ»¸öΪÒì²½±¸»ú¡£

ÔÚÖ÷»ú¹ÊÕÏå´»úʱ£¬JCenterÓÅÏÈÑ¡Ôñͬ³ÇµÄ±¸»úÉýÖ÷¡£

Ŀǰ£¬ÌÚÑ¶ÔÆÒѾ­Ìá¹©ÔÆÊý¾Ý¿âPostgreSQLµÄÄÚ²âʹÓ㬲¢½«ÌṩÄÚºËÓÅ»¯°æºÍÉçÇø°æÁ½¸ö°æ±¾À´Âú×ã¸ü¶à¿Í»§µÄÒªÇó¡£

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

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

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

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù