ç°¡åãªèæ¯ãšããŠïŒ1幎åãããŒã¿ããŒã¹éçºéšéã®è²¬ä»»è ïŒMicrosoft SQL Serverã«åºã¥ãïŒãšããŠæ°ããä»äºã«å°±ãããšããç§ã¯èŠããã®ããæãæ·±ãã·ã§ãã¯ãçµéšããŸããã 倧äŒæ¥ãè€éãªWebã¢ããªã±ãŒã·ã§ã³ãæ°çŸäžãã«ã®å¥çŽãããã³éçºãæ¬çªããŒã¿ããŒã¹ã§å®è¡ããããã°ã¬ããŒããåä¿¡ãããã誰ã倧声ã§å«ã¶ããŸãã¯ãæšæ¥ããã«è¡ããªããã°ãªããªãããšããæ¹æ³ã«åŸã£ãŠåŠçãããŸãã åœç¶ãããŒãžã§ã³ç®¡çã·ã¹ãã ãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãæé ãã¯ãŒã¯ãããŒã«ã€ããŠã®è©±ã¯ãããŸããã§ããã
ä»æ¥ãç¶æ³ã¯å€§ããå€ãããŸããïŒ ç§ãã ãŸããŠãã人ã¯ã¡ããã©å€ããå§ããŠããŸã ïŒããçŸåšäœ¿çšããŠãããœãªã¥ãŒã·ã§ã³ã®æè¡çããã³æé çãªè©³çŽ°ãå ±æããããšæããŸãã 90ïŒ ã®æè¡çãªè©³çŽ°ã¯Microsoft SQL Serverã®éçºã«çŽæ¥é¢ä¿ããŠããŸãããæé ã®å€æŽã¯ç§ãã¡ãšWebéçºè ããšã³ãžãã¢ãã¢ããªã¹ãããã¹ã¿ãŒã«ââ圱é¿ãäžããŠããŸãã
ããã«äºçŽããŸãããç§ã¯èšäºã§èšåãããœãããŠã§ã¢è£œåã®äŒç€Ÿ/åºåäž»ã®ä»£è¡šã§ã¯ãããŸããã 䜿çšãããœãããŠã§ã¢ã®éžæã¯ãæ©èœãäŸ¡æ Œã®ç¹ã§ç§ãã¡ã®ã¿ã¹ã¯ã«æãé©ããŠãããå人çãªå¥œã¿ãæºãããŠããŸããã
詳现ã«èå³ã®ããæ¹-ç«ãžããããã
èŠåïŒå€ãã®ããã¹ããæé ãšããã»ã¹ã®èª¬æïŒ èª°ãèå³ããªããããããŸãã ïŒã
ãã°è¿œè·¡ããããžã§ã¯ãèšç»ã远跡
ã¢ãã©ã·ã¢ã³JIRAã«åºã¥ããœãªã¥ãŒã·ã§ã³ãã¢ããªã±ãŒã·ã§ã³ã¢ã«ãŠã³ãã£ã³ã°ã·ã¹ãã ãšããŠéžæãããŸããã äž»ãªçç±ã¯æ¬¡ã®ãšããã§ãããã®èšäºã§èšåãããä»ã®è£œåãšã®ç·å¯ãªçµ±åã ã¢ãžã£ã€ã«éçºæ¹æ³è«ã«é¢ããéåžžã«äŸ¿å©ãªäœæ¥ã ããã»ã¹ã®ã«ã¹ã¿ãã€ãºãšèªååã®å¹ åºãå¯èœæ§ã
ç§ãã¡ã¯ã2é±éã®ã¢ãžã£ã€ã«ã¹ããªã³ãã«åºå·ããããšã«æ±ºããäºåã«3ã¹ããªã³ãïŒ1.5ãæïŒã®éçºãšãã¹ãã®èšç»ãç«ãŠãŸããã 以äžã®ããã»ã¹ã®è©³çŽ°ã«ã€ããŠã
ããŒãžã§ã³ç®¡çã·ã¹ãã
ç§ã¯ã¢ãã©ã·ã¢ã³è£œåã®ãã¡ã³ã§ãã ããŒãžã§ã³ç®¡çã·ã¹ãã ã«ã¯ãAtlassian StashïŒGitïŒãéžæããŸããã ããããåå²åå²ã®äœ¿çšãåå²ã®ããŒãžãããã³ããŒã¿ããŒã¹ã³ãŒãã®éçºããã»ã¹ã§ã®Gitã®ãã®ä»ã®å©ç¹ã¯èŠã€ãããŸããã§ããã ãã¹ãŠã®ã³ãããã¯masterãã©ã³ãã§çºçããŸãã
ã³ãããã«ã¯ãRedGateãœãŒã¹ç®¡ç補åïŒSSMSã®ãã©ã°ã€ã³ïŒã䜿çšããŸãã ããã§ãæåã®æè¡çãªå°é£ã«çŽé¢ããŸãããã³ãŒããã³ãããããã ãã§ãªããSSMSã®[ã³ããã]ãã¿ã³ãæŒããŠãªããžããªã«ããã·ã¥ããããšãæã¿ãŸããã ããã¯ãå ±æããŒã¿ããŒã¹ã§ã®éçºã®èŠ³ç¹ããæ£åœåãããŸãã éçºãé²è¡äžïŒã¹ãã¢ãããã·ãŒãžã£ã³ãŒãã®å€æŽãããŒãã«æ§é ã®å€æŽïŒãå€æŽã¯ããŒã¿ããŒã¹èªäœã«ä¿åãããŸãã éçºãå®äºãããããœãŒã¹ç®¡çã§ã³ãŒãã確èªããå¿ èŠããããŸãã ãåç¥ã®ããã«ãGitã§ã®äœæ¥ã¯ããŒã«ã«ãªããžããªã§è¡ãããããããå€æŽããªããžããªã«ããã·ã¥ãããŸãã æ®å¿µãªãããRedGate SCã¯ç®±ããåºããŠããã·ã¥ããæ¹æ³ãç¥ããŸããã
ãã®å¶éãåé¿ããããã«ããã«ããã³ã³ãããããã¯ãšããŠäœ¿çšãããRedGateçšã®2ã€ã®ãããã¹ã¯ãªãããäœæãããŸããã éçºè ããã©ã°ã€ã³ãŠã£ã³ããŠã§å€æŽã®ãªã¹ããæŽæ°ãããšããã«ãå®è¡ãããéçºè ã®ã¹ããŒã·ã§ã³ã®ãªããžããªã¯ãªããžããªã®çŸåšã®ç¶æ ãšåäžã«ãªããŸãã ãã®ãããã³ãããã®ãªã¹ãã«ã¯ãããŒã¿ããŒã¹ã«ã¯ååšãããããŒãžã§ã³ç®¡çã·ã¹ãã ã«ã¯ååšããªãå€æŽã®ã¿ããããŸãã
ã³ãããããå€æŽïŒã¹ãã¢ãããã·ãŒãžã£ãããŒãã«ãªã©ïŒãéžæããŠ[ã³ããã]ãã¿ã³ãã¯ãªãã¯ãããšãå€æŽã¯ããŒã«ã«ãªããžããªã«ç§»åãããã®åŸGitã§ããã·ã¥ãèªåçã«è¡ãããŸãã
RedGateãœãŒã¹ç®¡çæ§æãã¡ã€ã«ãšããã®äžã§äœ¿çšãããpull.batããã³commit.batã®ãœãŒã¹ãåå°ããŸãã
CommandLineHooks.xml
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <!----> <HooksConfig version="1" type="HooksConfig"> <!-- The name of the config file that will be displayed in the SQL Source Control user interface --> <Name>Git_CompanyName</Name> <Commands type="Commands" version="2"> <element> <key type="string">GetLatest</key> <!-- Updates the local working folder with latest version in source control. --> <!-- Valid macros: ($ScriptsFolder) ($Message) --> <value version="1" type="GenericHookCommand"> <CommandLine>%UserProfile%\Documents\SQLSourceControl\projectname\Pull.bat</CommandLine> <Verify>exitCode == 0</Verify> </value> </element> <element> <key type="string">Add</key> <!-- Adds new files to the local working copy. Changes can then be committed to source control using the Commit command. --> <!-- Valid macros: ($ScriptsFolder) ($Message) ($Files) ($Folders) --> <value version="1" type="GenericHookCommand"> <CommandLine>"C:\Program Files (x86)\Git\bin\git" add ($Files)</CommandLine> <Verify>exitCode == 0</Verify> </value> </element> <element> <key type="string">Edit</key> <!-- Makes the local working copy of the file(s) available for editing. Changes can then be committed to source control using the Commit command. --> <!-- Valid macros: ($ScriptsFolder) ($Message) ($Files) ($Folders) --> <value version="1" type="GenericHookCommand"> <CommandLine></CommandLine> <Verify>exitCode == 0</Verify> </value> </element> <element> <key type="string">Delete</key> <!-- Deletes the file(s) from the local working copy. Changes can then be committed to source control using the Commit command. --> <!-- Valid macros: ($ScriptsFolder) ($Message) ($Files) ($Folders) --> <value version="1" type="GenericHookCommand"> <CommandLine>"C:\Program Files (x86)\Git\bin\git" rm ($Files)</CommandLine> <Verify>exitCode == 0</Verify> </value> </element> <element> <key type="string">Commit</key> <!-- Commits all changes in the local working folder to source control. --> <!-- Valid macros: ($ScriptsFolder) ($Message) --> <value version="1" type="GenericHookCommand"> <CommandLine>%UserProfile%\Documents\SQLSourceControl\projectname\Commit.bat "($Message)"</CommandLine> <Verify>exitCode == 0</Verify> </value> </element> <element> <key type="string">Revert</key> <!-- Undoes changes if an error occurs during a commit --> <!-- Valid macros: ($ScriptsFolder) --> <value version="1" type="GenericHookCommand"> <CommandLine>"C:\Program Files (x86)\Git\bin\git" checkout "($ScriptsFolder)\"</CommandLine> <Verify>exitCode == 0</Verify> </value> </element> </Commands> </HooksConfig>
Pull.bat
@echo off set HOME=%USERPROFILE% cd %UserProfile%\Documents\SQLSourceControl\projectname "C:\Program Files (x86)\Git\bin\git" remote add origin ssh://git@stash.companyname.com:7999/projectname/projectname-sql.git "C:\Program Files (x86)\Git\bin\git" pull --force origin master
Commit.bat
@echo off set HOME=%USERPROFILE% set comment=%1 cd %UserProfile%\Documents\SQLSourceControl\projectname "C:\Program Files (x86)\Git\bin\git" remote add origin ssh://git@stash.companyname.com:7999/projectname/projectname-sql.git "C:\Program Files (x86)\Git\bin\git" pull origin master "C:\Program Files (x86)\Git\bin\git" commit -m %comment% -o %UserProfile%\Documents\SQLSourceControl\projectname-sql "C:\Program Files (x86)\Git\bin\git" push origin master
ã芧ã®ãšãããStash / Gitã®æäœã¯ãããŒèªèšŒã䜿çšããŠSSHãä»ããŠè¡ãããŸãã Red-Gateã®åææ§æã¯ææžåãããŠãããå®éã«ã¯2ã€ã®ã¹ãããããããŸãããã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããåææ§æã¹ã¯ãªãããå®è¡ããŸãïŒãŠãŒã¶ãŒãããã¡ã€ã«ã«å¿ èŠãªãã©ã«ããŒãäœæãããªããžããªã®æåã®ã¯ããŒã³ãäœæããŸãïŒã
éçºãšãã¹ãã®ããã»ã¹
éçºè åãã®ã¯ãŒã¯ãããŒã®æ§ç¯æ¹æ³ãäžæãã䟡å€ããããšæããŸãã JIRAã®å©ããåããŠããã»ã¹ã®ãã¹ãŠã®ã¹ãããã匷å¶ããããšããäºå®ã«æ³šæãåèµ·ããããšæããŸããJIRAã§ã¯ãããç¶æ ããå¥ã®ç¶æ ãžã®ç§»è¡ãå®è¡ããå¯èœæ§ãŸãã¯äžå¯èœæ§ãå€æããããã«ããŸããŸãªæ¡ä»¶ããã§ãã¯ãããŸãã
éåžžãããã»ã¹ã¯JIRAã§èª²é¡ãäœæããããšããå§ãŸããŸãã ããã¯ããã°ã¬ããŒããæ°ããæ©èœã®èŠæ±ãæ¢åã®æ©èœã®å€æŽããŸãã¯ã¢ã€ãã¢ã§ãã éžæããã³ã³ããŒãã³ããã¿ã€ãã®åé¡ãããã³ææ¥ã«å¿ããŠããã®ãã±ãããåªå ãããŸãã ãã®åŸã圌ã¯èšç»ãã¥ãŒã«å ¥ããŸãã èšç»ãã¥ãŒã§åªå 床ã®é«ãåé¡ã¯24ã48æé以å ã«ã¬ãã¥ãŒããã³èšç»ãããæ®ãã¯ããŒã äŒè°ã§é±ã«1åã§ãã
ãèšç»ããšã¯ãã¿ã¹ã¯ã®è€éããšæ®µéãå¿ èŠãªææžã®éã決å®ããã¢ããªã±ãŒã·ã§ã³ãåãåã£ã人ãšéä¿¡ãïŒè©³çŽ°ãæ確ã«ããããïŒããã®åé¡ã®è§£æ±ºçãã©ã®ã¢ãžã£ã€ã«ã¹ããªã³ãã«é 眮ãããã決å®ããããšãæå³ããŸãã
ãã®ãããªããã»ã¹ã«ã¯ãã¿ã¹ã¯ãå®äºããããã«å¿ èŠãªæéæ ã®å¿ é ã®äºåè©äŸ¡ãå¿ èŠã§ãã ãã¹ãŠã®éçºè ãé±33æéå¿ããããã«ãã¹ããªã³ããæ§ç¯ããããšããŠããŸãã æ®ãã®7æéã¯ãå¥ã®éçºè ãç æ°äŒæ/äŒæã«å ¥ã£ããšãã®ç·æ¥ã®ã¿ã¹ã¯ãäŒè°ãããã³ç¶æ³ãžã®åå¿ã®ãããã¡ãŒãšããŠæ®ãããŠããŸãã
çŸåš/å°æ¥ã®ã¹ããªã³ãã®ããªãŒããŒãããŒããçºçããå ŽåãåŸæ¥ãŸã§å»¶æã§ããã¿ã¹ã¯ã決å®ããå¿ èŠããããŸãã åæ§ã«ãéçºè ãã¹ããªã³ãäžã«ä»äºãããªãã£ãå Žåã次ã®ãŠã£ã³ããŠã«ã¹ã±ãžã¥ãŒã«ãããã¿ã¹ã¯ã移åããŠéå§ããããšãã§ããŸãã
ã¿ã¹ã¯ã¯æ¬¡ã®ã¹ããŒã¿ã¹ã«ãªããŸãã
- èšç»ïŒããªã¢ãŒãžïŒ;
- 倱æïŒæåŠïŒ;
- éçºã®æºåãã§ããŠããŸãã
- ããã»ã¹ã®éçºïŒéçºäžïŒ;
- åŸ æ©ïŒé害-éçºãç¶ç¶ããããã®é害 ïŒ;
- ãã¹ãæºåå®äºïŒQAæºåå®äºïŒ;
- ãªãªãŒã¹æºåå®äºïŒæ¬çªæºåå®äºïŒ;
- ã¯ããŒãºïŒè§£æ±ºæžã¿ïŒ;
ã¹ããŒã¿ã¹éã§ã®ã¿ã¹ã¯ã®ç§»åã¯ã次ã®ã¹ããŒã ã«åŸã£ãŠã®ã¿å¯èœã§ãã

åããçºçããç¶æ³ã¯å³ã§èª¬æãããŠããŸãïŒãã ããè±èªã§ã¯ãããŸãããèªè ã«ãšã£ãŠç解ã¯åé¡ãªããšæããŸãïŒã ãã€ã¢ã°ã©ã ã«è¡šç€ºãããŠããªããã®ã«ã€ããŠã話ãããŸãã
- 倧èŠæš¡ãªã¿ã¹ã¯ã¯ãµãã¿ã¹ã¯ã«åå²ãããŸãã 芪ã®åé¡ã¯ããéçºæºåå®äºãããéçºéå§ããããã³ãé害ã以å€ã®ã¹ããŒã¿ã¹ã«ã¯ãªããŸããã
- éçºè ãã³ããããããšããã«ããã®ã³ãããã®ã³ãŒãã¬ãã¥ãŒãäœæãããŸãïŒ ãããã©ã®ããã«èµ·ãããã«ã€ããŠã¯ä»¥äžãåç §ããŠãã ãã ïŒã
- ã³ã¡ã³ãã«JIRAãã±ãããžã®ãªã³ã¯ãããå Žåã«ã®ã¿ã³ããããè¡ãããšãã§ããŸããããã«ãããã³ããããšãã®åŸã®ã¬ãã¥ãŒãåé¡ã«èªåçã«ãªã³ã¯ãããŸãã
- éçºããã»ã¹ã®äžéšãšããŠã³ãŒãã¬ãã¥ãŒãæ€èšããããšã«ããŸããããã®ãããã¬ãã¥ãŒã®é²è¡äžã«ãã±ããã¯ãéçºã®æºåå®äº/éçºãéå§ãããŸããã ãã±ããããReady for QAãã«ç§»åããããã«ã¬ãã¥ãŒãéããŠããéã«ãã±ãããéããããšã¯äžå¯èœã§ãã
- ãããããã³ã°ãã¿ã¹ã¯ãããããã«åé¡ã®è§£æ±ºãäžå¯èœãªå ŽåãJIRAã®å¯Ÿå¿ãããªã³ã¯ã䜿çšãããŸãã ããããã³ã°ãã±ãããã¯ããŒãºããããŸã§ãåé¡ã®ã¹ããŒã¿ã¹ã¯ãImpedimentãã«ãªããã¯ããŒãºããããšã¯ã§ããŸããã
- ã¯ããã¯ããããªãã¯æ£ããç解ããã¿ã¹ã¯ã¯åéãããŸããã ãªãªãŒã¹åŸã«ãã°/åé¡ãæ€åºããå Žåãæ°ããåé¡ãäœæããã以åã®åé¡ã«ãªã³ã¯ããŸãã
- 課é¡ãã¯ããŒãºãããåŸ-ã¹ããªã³ããã¯ããŒãºããããšããã®å€æŽãæŠéããŒã¹ã«èªåçã«é©çšãããŸãïŒ ãããã©ã®ããã«çºçããã-以äžã§ã ïŒã
çãäœè«ïŒèª¬æãããããã»ã¹ã¯ãIEEEéçºæšæºãšäºææ§ããããŸãã
ã³ãŒãã¬ãã¥ãŒ
ã³ãŒãã®å€æŽã確èªããããã®ãœãªã¥ãŒã·ã§ã³ãšããŠãã¢ãã©ã·ã¢ã³ïŒæ¬åœã«ïŒïŒïŒ Fisheye / Crucibleã䜿çšããŸãã JIRAããã³Stashãšã®å®å šãªçµ±åã«ãããåé¡ããŒãžããé¢é£ããã³ãããããã³ã³ãŒãã¬ãã¥ãŒã®è¡šç€ºã«ãã°ããåãæ¿ããããšãã§ããŸãã JIRA + Stash + Crucible / Fisheyeã®çµ±åã«ã¯ããªãã¯ã¯ãªãããããã®ãããã¯ã«ã€ããŠèª¬æããããšã¯ãããŸããã
ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³
ç§ã®æèŠã§ã¯ãããã¯ç§ãã¡ã®ããã»ã¹ã®æãèå³æ·±ãéšåã§ãïŒããŒã¿ããŒã¹ã«é¢ããŠïŒã åè¿°ã®ããã«ãå ±æããŒã¿ããŒã¹ã䜿çšããåèšã§ãéçºããã¹ã/ QAãããã³æ¬çªã®3ã€ã®å¥ã ã®ç°å¢ã䜿çšãããŸãã
éçºããŒã¿ããŒã¹ã«ã¯ãåžžã«ææ°ããŒãžã§ã³ããããŸãã éçºè ã¯ã³ãŒããšãã®ã¹ããŒã ã絶ããå€æŽããŠããŸãã ãã®ããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ã絶ããæŽæ°ãããŸãïŒWebéçºè ãããŒã«ã«ã§ïŒãšã©ãŒãªãã§ïŒæ°ããæ©èœ/ä¿®æ£ãå«ããã«ãããã«ããããšãããã«å ¬éãããŸãïŒã
DEVãžã®ãã¹ãŠã®å€æŽã¯QAã§å ¬éãããŸãã ããããããã¹ãŠããšèšã£ãŠ-ç§ã¯cã§ãã ãœãŒã¹ç®¡çã§ã³ããããããå€æŽã®ã¿ãå ¬éãããŸãïŒãŸã ãéçºäžãã§ãããã®ã¯å ¬éããŸããïŒã ãã®ãããã¹ããŒã ã®éåžžã®åæã®ä»£ããã«ãRedGate SQL CIãšãã«ããµãŒããŒã§ããAtlassian Bambooã®æ©èœã䜿çšããŸãã
Bambooã¯ãSQL CIãåŒã³åºãMSBuildãã©ã³ãäœæããŸããã ã³ãããSQL CIãALTERããã³CREATEã³ãã³ããçæãããšããã«ãããããQAããŒã¿ããŒã¹ã«ããŒã«ããŸãã
ãçã®ãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ã¯æ¬çªç°å¢ã§ã®å€æŽã®å ¬éãšåããšèŠãªãããã¹ãã§ããããšã¯ç¥ã£ãŠããŸãããããããåæ°ã¯ãããŸããã 代ããã«ãRedGate SQL Compareã䜿çšããŠãã¹ããªã³ããéãããšãã«ã¹ããŒããQAãšåæããŸãã ãããã£ãŠãããã»ã¹ã®èŠ³ç¹ããèŠããšãç§ãã¡ã®QAããŒã¹ã¯çç£ã§ãã ãã ããããã«ããããã®ããã»ã¹ã䜿çšããŠããŒã¿ããŒã¹ãéçºãããšãã«äœ¿çšããã¢ãããŒããå€æŽãããããšã¯ãããŸãããèŽåœçãªïŒç ŽæïŒå€æŽã¯ãããŸããã Webã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿ããŒã¹ãšããŠã®Microsoft SQL Serverã®äžçã§ã¯ãããã¯ãããã·ãŒãžã£ã®çºè¡ããŒãžã§ã³ãæ£ããçµäºãããããããã¯ãåŒãèµ·ãããªãããšãæå³ããŸãã ãã¡ãããããã«ã¯Webã¢ããªã±ãŒã·ã§ã³ã®é©åãªã¢ãŒããã¯ãã£ãå¿ èŠã§ãããã¹ãŠã®èŠæ±ã¯ã¹ãã¢ãããã·ãŒãžã£ãä»ããŠå®è¡ãããã¯ã©ã¹ã¯ããã·ãŒãžã£ã®äºæ³ããããã©ã¡ãŒã¿ã®äžåšããŸãã¯ãã以äžããµããŒãããå¿ èŠããããŸãã ããã·ãŒãžã£ã¯NULLãã©ã¡ãŒã¿ããµããŒãããã»ãã¥ãªãã£ãªã¹ã¯ãçºçãããã«ãã®ãããªç¶æ³ã«å¿ããŠå¯Ÿå¿ããå¿ èŠããããŸãã ç§ãã¡ã®å Žåãããã¯å¯èœã ãšæãããŸãã
ãããã«
ç§ã説æããã·ããªãªã¯éåžžã«å ·äœçã§ãããä»ã®æ¡ä»¶ã§ã¯ãã®é©çšãäžå¯èœã§ããããšãç解ããŠããŸãã ãã ããã³ãã¥ããã£ãšçµéšãå ±æããããã«ãããæžããŸããããŸãã誰ãã«æ°ããããŒã«ã玹ä»ãããã誰ãã®éçºããã»ã¹ã確èªããæ©äŒãäžãããããããšãæãã§ããŸãããã®ã¢ãããŒãã¯ãããæèœã§è«ççã§ãã ãã£ãšå€ãã®ããšãäŒãããã£ã-èªååããããã¹ãïŒèªååãããåäœãã¹ããšçµ±åãã¹ãïŒããã®ããã»ã¹ã«ã©ã®ããã«é 眮ããçµ±åãããŠããããQAããã»ã¹ã«Microsoft Data Quality Servicesã䜿çšããæ¹æ³ãããã¥ã¡ã³ããã©ã®ããã«ç·šæãããŠãããã«ã€ããŠã§ãããããã¹ããå€ãããŸã å€åç§ã¯å¥ã®èšäºã§ãããããã§ãããã ãããŸã§ã®éãç§ã¯è³ªåãšå»ºèšçãªæ¹å€ã«åãã§ããã§ãããã