Skyengã§ã¯ãããŒã¿åæã«å€ãã®æ³šæãæã£ãŠããŸãã ããã«ãããäœæ¥ãé©åã«èšç»ããç°ãªãã¿ã¹ã¯éã§ãªãœãŒã¹ãåé ã§ããŸãã æ¬æ¥ãåæéçºè ã®Gleb Sologubãã幎éäºç®12,000ãã«ä»¥å ã§ããµãŒãã¹ããã³ã¢ããªã±ãŒã·ã§ã³ã®å šåç©åã®ããŒã¿ãåéããã³åæããããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãã©ã®ããã«åéãããã説æããŸãã
Skyengã«ã¯ç¬èªã®ãšã³ã·ã¹ãã ããããåŠæ ¡ã®çåŸãæåž«ãšã€ã³ã¿ã©ã¯ãã£ããªã¬ãã¹ã³ãåãããã宿é¡ããããããã¹ããåãããããããã®Webãã©ãããã©ãŒã ãããã³ããŸããŸãªè±èªã¹ãã«ã®ãã¬ãŒãã³ã°ã«åœ¹ç«ã€iOSããã³Androidçšã®ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãšãã©ãŠã¶ãŒæ¡åŒµæ©èœãªã©ããããŸã
ãç§ãã¡ã¯è¿ éãã€æè»ã§ãããšãå瀟ã®åµç«è ã®äžäººã§ããããªãã³ã»ãããŽã§ãŒãšãã¯ç¹°ãè¿ãã®ã奜ãã§ãããããã£ãŠããããã®è£œåã¯ãã¹ãŠããæ°ã«å ¥ãã®æè¡ã¹ã¿ãã¯ã䜿çšããç¬ç«ããéçºããŒã ãæã£ãŠããŸãã ãããã®åããŒã ã«ã¯ç¬èªã®ãããŒãžã£ãŒãããŸãããŸãã圌ã¯è£œååæçšã®ç¬èªã®ããŒã«ãéžæãã補åã§ããããŸãã
ãã®ã¢ãããŒãã¯éåžžã«å¹æçã§ããããããããç¬èªã®KPIã®ã¿ã枬å®ããŸãã ã·ãªãŒãºã®è³ªåã衚瀺ãããå ŽåïŒãè±èªã®åŠç¿ã¯ã©ããããéããŠè¯ãã§ãããæåž«ãšã®ã¬ãã¹ã³ã¯å¥ãšããŠãã¢ããªã±ãŒã·ã§ã³ã§èªåã§åèªãåŠã³ãŸããïŒããããŸããŸãªãœãŒã¹ã
Skyengã¯ãæ¥å¹Žã®1äž2åãã«ã®äºç®å ã§æ¢è£œã®ææãµãŒãã¹ã«ãã®ãããªã€ã³ãã©ã¹ãã©ã¯ãã£ãè¿ éã«æ§ç¯ãããããçµæžçã«å®è¡å¯èœã«ãªããšç¬èªã®èšèšã«çœ®ãæããããã«éããŸããã
ãã¹ãŠã®è£œåããä»»æã®ã€ãã³ããåéããããããåäžã®ãªããžããªå ã®ããŸããŸãªããŒã¿ããŒã¹ã®å¿ èŠãªããŒã¿ãšçµã¿åãããã¬ããŒããšããã·ã¥ããŒãã®åœ¢åŒã§ãã®ããŒã¿ãåæããã³èŠèŠåããããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§ç¯ããå¿ èŠããããŸããã ã€ãŸããäžã®å³ã®4ã€ã®è³ªåã解決ããŸãã ãã®rebusãã©ã®ããã«è§£æ±ºããŸãããïŒ
ããŒã¿ãŠã§ã¢ããŠã¹ã®éžææ¹æ³
äžå¿çãªåé¡ã¯ãå®éã«ããŒã¿ãé 眮ããå Žæã§ãã Skyengäºä»¶ã®äž»ãªåºæºã¯3ã€ã§ããïŒ
- åæã¯ãšãªã®å®è¡é床ã
- ãœãªã¥ãŒã·ã§ã³ã³ã¹ã;
- åæã·ã¹ãã ããã³ããŒã¿åéãµãŒãã¹ãšã®çµ±åã®è€éãã
é床ã®èŠä»¶ã«ãããåŸæ¥ã®æååãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®äœ¿çšãèš±å¯ããããããããçš®é¡ã®Hadoop as a Serviceããã³ClickHouseãAzure SQL Data Warehouseãªã©ã®ãŸããªãªãã·ã§ã³ãæŸæ£ããããåŸãªãã£ãçµ±åã®åé¡ãèããããŸããã
ãã®ãããªã¿ã¹ã¯ã®å€§äŒæ¥ã¯ãããŒã¿ãšã³ãžãã¢ã®ããŒã ãåéããHadoopã¯ã©ã¹ã¿ãŒã®ããã¯ãåéããããVerticaã«ããŒã¿ãã¢ããããŒãããŠããã®ããŒã¿ãŠã§ã¢ããŠã¹ãåéããäºç®ãå²ãåœãŠãŸããããããŒããŒã¯ãã®ãããªãªãã·ã§ã³ãããã«é®æããŸãã
äžå°äŒæ¥ã¯ ããã®ãããªã¿ã¹ã¯ã«RedshiftãŸãã¯BigQueryã䜿çšããŸãã æŠããŠãç§ã¯ãããã®äžããéžæããªããã°ãªããŸããã§ããã ç§ã®æèŠã§ã¯ããããã®ãµãŒãã¹ãé床ã®èŠ³ç¹ããæ¯èŒããããšã¯æå³ããããŸãããç°ãªãå¢çç·ã®å Žåãé€ããã©ã¡ããéåžžã«é«éã§ãã ã©ã¡ãããšã³ã·ã¹ãã ãçºéããŠãããããŸããŸãªãµãŒãã¹ãšçµ±åãããŠããŸãã
äŸ¡æ Œã«é¢ããŠã¯ãäžèŠãããšBigQueryã®æ¹ããã£ãšå®ãããã«æãããããããŸããã æå°æ§æã§ã¯ã1ã€ã®Redshiftã¯ã©ã¹ã¿ãŒã160GBã®ã¹ããŒã¹ãæäŸããæé¡180ãã«ã®è²»çšãããããŸããBigQueryã«ã¯æè»ãªäŸ¡æ Œã¿ã°ããããæé¡1GBãããããã0.02ãã«ã§ãã ãã ããRedshiftã®ã³ã¹ãã¯åæã¯ãšãªã®æ°ãšè² è·ã«äŸåããŸããããBigQueryã¯ãšãªã§ã¯åŠçãããããŒã¿1 TBããã5ãã«ã§åå¥ã«è«æ±ãããŸã-å®äŸ¡ã«æããŸãã
ãããã BigQueryãããŒã¿ã®ãµã€ãºãèšç®ããæ¹æ³ãèŠãŠã¿ãŸããããããã¯åããŒã¹ã§ããã1è¡ãã1ã€ã®ãã£ãŒã«ããååŸããã«ã¯ãåå šäœãåãåºãå¿ èŠãããããšãæãåºããŠãã ããã ç°¡åãªè³ªåãèããŠã¿ãŸããããããšãã°ãVimboxãã©ãããã©ãŒã ã®ç¹å®ã®ããŒãžãéãããŠãŒã¶ãŒã®æ°ãæ¥ä»ã§èšç®ããå¿ èŠããããŸããããã¯BigQueryã«å¯Ÿãããã®ãããªå žåçãªã¯ãšãªã§ãã
select date(timestamp) as period, count(distinct user_id) as user_count from [vimbox.pages] where path = '/showcase' group by period;
ããã§ã¯ãæŽæ°åã®user_idãšæåååã®ãã¹ã®2ã€ã®åããããŒã¿ãååŸããŸãã ãã¬ãŒããããšãã°1åè¡ã®å Žåããã®ãããªèŠæ±ã®ã³ã¹ãã¯æ°ã»ã³ãã«ãªããŸãã ããšãã°ãåæ§ã®ãªã¯ãšã¹ããå«ã100ã®ã¬ããŒãããããããããã1æ¥ã«2ååã«ãŠã³ããããå Žåãæ¯æã®è«æ±æžã¯æ°çŸãã«åäœã§æž¬å®ãããŸãã
ãã¡ãããããŸããŸãªããªãã¯ã䜿çšããŠãåŠçãããããŒã¿ã®æ°ãæå°éã«æããããšãã§ããŸãã ããšãã°ããã¹ãŠãããŒãã£ã·ã§ã³ããŒãã«ã«é 眮ãããã¹ãŠã®ã¬ããŒãã§çæéã®ããŒã¿ã®ã¿ãååŸã§ããŸãã ããããBigQueryã䜿çšãããšãåºæ¿ãåãã代ããã«ããã®ããã°ããŒã¿ãéåžžã«å€§ããªããŒã¿ã䜿çšããããšãã§ããªããªããŸãã æŽå¯ãæ±ããŠããããçš®é¡ã®ã¯ãšãªãå®è¡ããããšãã代ããã«ãããªãã¯ããããå¶éããæ¹æ³ãèããŸã-ããã¯æ²ãã話ã§ãã
äžè¬ã«ãBigQueryã§ããã«æé©ãªæ§æãããã°ãããã䜿çšã§ããããšã念é ã«çœ®ããŠãRedshiftã«æ±ºããŸããã
ã€ãã³ãã³ã¬ã¯ã·ã§ã³ãµãŒãã¹ã®éžææ¹æ³
補ååæã®åºæ¬èŠçŽ ã¯ã€ãã³ãã§ããããšãæãåºãããŠãã ããã ãµã€ãã®ããŒãžãŸãã¯ã¢ããªã±ãŒã·ã§ã³ã®ç»é¢ã®è¡šç€ºããã¿ã³ã®ã¯ãªãã¯ãèªèšŒã®æåãã·ã¹ãã ãšã©ãŒã補åã®è³Œå ¥ã¯ãã¹ãŠç°ãªãã€ãã³ãã§ãã
åŸæ¥ã®Webåæã§ã¯ããµã€ãã®ãã¹ãŠã®ããŒãžã®è¡šç€ºã€ãã³ãã远跡ããããã«ã«ãŠã³ã¿ãŒãèšå®ããã®ãäžè¬çã§ãã MixpanelãHeapãªã©ã®ãµãŒãã¹ãããã¹ãŠã®ã¯ãªãã¯ãèªåçã«è¿œè·¡ã§ããŸãïŒGAã«ã¯ããã®ããã®ç¹å¥ãªèªå远跡ãã©ã°ã€ã³ããããŸãïŒã ãã¹ãŠã®ã€ãã³ãã¯å¿µã®ããäºåã«åéãããå¿ èŠãªå Žåã«ã®ã¿ã¬ããŒãã§äœ¿çšãããããããã®ã¢ãããŒãã¯é¡ååæãšåŒã°ããŸãã ããŒããšã»ã°ã¡ã³ãã¯ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®ç»é¢ã®åãæ¿ããèªåçã«ç£èŠã§ããŸãããWebããŒãžãšã¯ç°ãªããç»é¢ã¯éåžžãTable7ãSEStartãUIAlertControllerãªã©ã®ããŸãæå³ã®ãªãååãååŸãããããããã¯ã»ãšãã©åœ¹ã«ç«ã¡ãŸããã
åœç¶ãããããã¹ãŠã®ãµãŒãã¹ã«ã¯ãã©ã³ãã ã«å®çŸ©ãããã€ãã³ããéä¿¡ããããã®APIããããŸãã ãããŠãåæãžã®è£œåã¢ãããŒãã¯ãåã€ãã³ãã§ãã¹ãŠãåéããããšã¯æå³ããªããšããäºå®ã«æ£ç¢ºã«ãããæåã«ãäŸãã°ãªã³ããŒãã£ã³ã°ãç»é²ãã¢ã¯ãã£ããŒã·ã§ã³ãããã³åºæ¬çãªããã»ã¹ã«ãããæ°äººã®æåã®ã¹ããããå«ãå°æ°ã®äž»èŠãªã¢ã¯ã·ã§ã³ãæèçã«è¿œè·¡ããããšãåŠã¶å¿ èŠããããŸãéåžžã®ãŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ã
Skyengã®ååãšç§ã¯ãã®ã¢ãããŒããæ°ã«å ¥ã£ãŠããŸãã10çš®é¡ã®è£œåãããå Žåã«ã®ã¿ãåéçºããŒã ã«ã€ãã³ããéä¿¡ããããã®ä»æ§ãäœæãããã¹ãŠã®ã€ãã³ããæ£ããéä¿¡ãããããšã確èªããæ¹æ³ãå®éã®é çã®çš®ã«ãªããŸãã ãããã£ãŠããã¹ãŠã®ãã©ãããã©ãŒã ïŒWebãiOSãAndroidïŒããã³HTTPïŒãã©ãŠã¶ãŒæ¡åŒµæ©èœãšãµãŒããŒçšïŒããã€ãã³ããåéã§ãããµãŒãã¹ã1ã€éžæããèªåã§ã¯ãªãå Žåã¯å°ãªããšãäœããã®æ¹æ³ã§ãããå®è¡ããããšãæ¬åœã«æãã§ããŸããã
ããã«ãã€ãã³ããåéã§ããã ãã§ãªããããŒã¿ãŠã§ã¢ããŠã¹ã«ä¿åã§ãããµãŒãã¹ãå¿ èŠã§ããã äœããã®åœ¢ã§ã€ãã³ããçã§ãšã¯ã¹ããŒãããæ©èœã¯ããã¹ãŠã®ãµãŒãã¹ã«ãããŸãã GAã®ç¡æçã§ããéåžžã®Reporting APIã䜿çšããŠåäžã®ã€ãã³ããã¢ããããŒãããã®ã¯é£ããæ¹æ³ã®ããã§ãã ããããå®æçã«çãã°ãååŸããããããåŠçããå¿ èŠãªãã£ãŒã«ããåãåºããŠãæ§é åããã圢åŒã§ã¹ãã¬ãŒãžã«é 眮ããããšãå¿ããã«-ã¿ã¹ã¯èªäœã¯ç°¡åãªã¿ã¹ã¯ã§ã¯ãªãããµãŒãããŒãã£ã®éçºè ã®ãµãŒããŒãšè©ã«ããã·ã¥ãããã£ãã§ãã
ç§ãã¡ã®èŠä»¶ã«æºæ ããããã«ãããã€ãã®ã¯ãã¹ãã©ãããã©ãŒã ãµãŒãã¹ãè©Šããæ¯èŒããŸãããããã®ã¿ãã¬ããã¯æ¬¡ã®ããã«ãªããŸããã
Web | iOS | Android | HTTP | é¡åçãªã€ãã³ãåé | ããŒã¿ãŠã§ã¢ããŠã¹ã¢ããããŒããµãŒãã¹ | 幎éè²»çš | |
---|---|---|---|---|---|---|---|
ããã¯ã¹ããã« | + | + | + | + | å¶éä»ã | - | ã5äžãã« |
æ¯å¹ | + | + | + | + | - | + | ã5äžãã« |
ããŒã | + | + | - | + | + | + | 31,000ãã« |
Localytics | + | + | + | + | - | + | $ 15.5K |
Facebookåæ | + | + | + | - | - | - | ç¡æ㧠|
devtodev | + | + | + | + | - | - | 90äžãã« |
Amazonã¢ãã€ã«åæ | + | + | + | + | - | å¶éä»ã | ã$ 0.1K |
ã»ã°ã¡ã³ã | + | + | + | + | å¶éä»ã | + | $ 3.6K |
mParticle | + | + | + | + | - | + | 36,000ãã« |
ãã®ãã¬ãŒãã®å¹Žéã®ã³ã¹ãã¯ã3äžäººã®ã¢ã¯ãã£ããŠãŒã¶ãŒã60äžã»ãã·ã§ã³ã1åã€ãã³ãã®æ次远跡ãšãã¹ãã¬ãŒãžå ã®ããŒã¿ã¢ããããŒããµãŒãã¹ïŒååšããå ŽåïŒãåæãšããŠèšç®ãããŸãã ãããã®æ°å€ã¯ãSkyengã®å¹Žéæé·èšç»ã«æ²¿ã£ããã®ã§ããã
åŠæ ¡ã®ç¹è²ã¯ãã¢ã¯ãã£ããŠãŒã¶ãŒã®ã³ã¢ããŸã ããã»ã©å€§ãããªãããšã§ãïŒ2017幎2æã«çŽ1äž2å人ã®åŠçïŒãã幎ã«3å幎ã«3åæé·ããæ¢ã«åŠæ ¡ã®å補åã§é±ã«æ°æéãè²»ãããŠããŸããçŸåšãæ¯æ¥äœçŸäžãã®ããŸããŸãªã¢ã¯ã·ã§ã³ãå®è¡ããŠããŸãã ãããã£ãŠããŠãŒã¶ãŒæ°ãã¯ããã«å€ããLTVãã¯ããã«å°ãªãä»ã®ãµã€ããã¢ããªã±ãŒã·ã§ã³ãšã¯ç°ãªãããŠãŒã¶ãŒæ°ã«äŸåããæ¯æãã¢ãã«ã§ãµãŒãã¹ã䜿çšããæ¹ãåçæ§ãé«ããªããŸãã
ã¿ãã¬ããã®æåã®7ã€ã®ãµãŒãã¹ã¯ãèŠèŠåãã¬ããŒããããŒã±ãã£ã³ã°ã³ãã¥ãã±ãŒã·ã§ã³ãªã©ã®ããŸããŸãªããŒã«ãåããæ¬æ Œçãªåæãã©ãããã©ãŒã ã§ããæåŸã®2ã€ã¯ãããŸããŸãªãœãŒã¹ããã€ãã³ããåéããããŸããŸãªCRMããã³ããŒã±ãã£ã³ã°ãµãŒãã¹ããã®ããŒã¿ãå å®ãããããŒã¿ãŠã§ã¢ããŠã¹ã
7ã€ã®ãªãã·ã§ã³ãã¹ãŠã®ãã¡ãäºç®ã«åãŸãã®ã¯4ã€ã ãã§ããããããã®ãã¡ãããŒã¿ãŠã§ã¢ããŠã¹ã«ã€ãã³ããèªåçã«ã¢ããããŒãããæ©èœãæäŸããã®ã¯ãã»ã°ã¡ã³ããšAmazon Mobile Analyticsã®ã¿ã§ãã ãã ããAmazonã®ãœãªã¥ãŒã·ã§ã³ã«ã¯ããªãã°ãããå¶éããããŸããã€ãã³ãã«æ°ããããããã£ãè¿œå ãããã³ã«ãèªåãšã¯ã¹ããŒãã¹ããŒã ãåäœæããå¿ èŠããããŸããããã«ããã ãã§ã«Redshiftã«ãšã¯ã¹ããŒãããããã¹ãŠã®ããŒã¿ã倱ãããŸãã éåžžãS3ã§ã®ã€ãã³ãã®èªåã¢ã³ããŒãã®ã¿ãæ©èœããŸãããRedshiftã«ã€ãã³ããè©°ã蟌ãã«ã¯ã ããŒã¿ãã€ãã©ã€ã³ãèªåã§ããã°ã©ãã³ã°ããå¿ èŠããããŸããããã¯ã絊äžãšã¯å¥ã®äœæ¥ã§ãã
ãã®çµæãã»ã°ã¡ã³ããéžæããŸããã å¿ èŠãªãã¹ãŠã®ãã©ãããã©ãŒã ã®ã€ãã³ããåéããããã®SDKãšAPIããããBigQueryãšRedshiftã®ãã¹ãŠã®ããŒã¿ãèªåçã«ã¢ããããŒãã§ããŸãã é¡åçã«ã ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã§ã€ãã³ããåéã§ããã®ã¯äžéšã ãã§ããããªããžããªã«ã€ãã³ããèšé²ããããã®ååã«èãæãããã·ã¹ãã ãš ã ã€ãã³ããåéããããã®ååã« éçºãããã¢ãããŒãããã ããªã¢ã«ã¿ã€ã ã§ã€ãã³ããç£èŠããã®ã«äŸ¿å©ãªãããã¬ãŒããããŸãã
Skyengã®å Žåã«ç¹ã«æåããã®ã¯ãã»ã°ã¡ã³ããåéãããã€ãã³ãã®æ°ã§ã¯ãªãã1ãæãããã®ãŠããŒã¯ãŠãŒã¶ãŒã®æ°ã«ãéããããããšã§ãã
ããŒã¿ããŒã¹ããããŒã¿ããŠã³ããŒããµãŒãã¹ãéžæããæ¹æ³
補åããã€ãã³ããçŽæ¥åéããããšã«å ããŠãããŒã¿ããŒã¹ããããŒã¿ãã¢ã³ããŒãããå¿ èŠããããŸããSkyengã«ã¯ãåç©åå šäœããããŸããMySQLãšPostgreSQLã®ç°ãªãããŒãžã§ã³ã®ç°ãªãã€ã³ã¹ã¿ã³ã¹ïŒã¯ã©ãŠããšèªç€ŸãµãŒããŒã®äž¡æ¹ïŒã§ãã äž¡æ¹ãè¡ããœãªã¥ãŒã·ã§ã³ããããŸããããšãã°ã Treasure DataãšAloomaã§ãã ãã ãããã®ã³ã¹ãã¯éåžžã«äžéæã§ãå²ãåœãŠãããäºç®ã«æ確ã«åãŸããŸããïŒã¢ããªã±ãŒã·ã§ã³ããã®1åã€ãã³ããšããŒã¿ããŒã¹ããã®1åè¡ãæ¯æéä¿¡ãããå ŽåãAloomaã§å¹Žé3äžãã«ãTreasure Dataã§6äžãã«ïŒã
ããã§ãã LuigiãAirflowãªã©ã®æ¢åã®ãã¬ãŒã ã¯ãŒã¯ã«åºã¥ããŠETLãœãªã¥ãŒã·ã§ã³ãèšè¿°ãããããã€ãã©ã€ã³ãããã°ã©ã ãããããããã®ãªãã·ã§ã³ã¯ãããã°ã©ããŒããå°ãªããšããã1çµã®æãšããã«å¯Ÿå¿ãã絊äžã®å¢å ãå¿ èŠãªãããããã«ç Žæ£ãããããšãæ確ã«ããŸãã
èªåãµãŒãã¹ã®äžã§ãç§ã¯FlyData ã Fivetran ã Xplenty ãããã³Stitchã®ã¿ãç¥ã£ãŠããŸããããæãå®ããã®ãéžæããŸãã-Stitchã¯1ãæéã®ç¡æãã©ã€ã¢ã«ãæäŸããŸãããã®éããã¹ãŠã®å±¥æŽããŒã¿ãã¢ããããŒãããæ°ããããŒã¿ã®å¢åã¬ããªã±ãŒã·ã§ã³ãæ§æã§ããŸãïŒæ倧1åè¡ïŒ 1ãæããã500ãã«ïŒã
æ¬è³ªçã«ããŸããŸãªããŒã¿å€æããµããŒãããæ¬æ ŒçãªETLãµãŒãã¹ã§ããXplentyãšã¯ç°ãªããStitchã«ã¯ããªãåå§çãªã€ã³ã¿ãŒãã§ã€ã¹ããããã©ã®ããŒãã«ãšãããã®ãã£ãŒã«ãïŒãŸãã¯ãã¹ãŠïŒãã©ã®åšæ³¢æ°ã§ãã©ã®åšæ³¢æ°ã§è€è£œããããç°¡åã«ãã§ãã¯ã§ããŸãæ¹æ³ã
Stitchã¯ãå®å šãªæžãæããšå¢åããŒã¬ããªã±ãŒã·ã§ã³ããµããŒãããŠããŸããããã¯ããœãŒã¹ããŒãã«ã®è¡ãè¿œå ãããã ãã§å€æŽãããŠããªãå Žåã¯äž»ããŒãããšãã°ããã®ãã£ãŒã«ãã«è¡ãæåŸã«å€æŽãããæ¥ä»ãæ ŒçŽãããŠããå Žåã¯updated_atã§ãã ã¹ãã¬ãŒãžã«è»¢éããåã«ããŒã¿ãå€æããå¿ èŠãããå Žåãå¿ èŠãªããŒã¿ãå«ããã¥ãŒããœãŒã¹ããŒã¿ããŒã¹ã«çŽæ¥äœæããåãæ¹æ³ã§ãã®ãã¥ãŒãè€è£œããå¿ èŠããããŸãã
ã»ãšãã©ã®å Žåããã®ãããªåçŽãªãœãªã¥ãŒã·ã§ã³ã§ååã§ãããšèšããªããã°ãªããŸããã
Stitchã¯ããŸããŸãªãªããžããªããµããŒããããªããžããªã«å¿ããŠããŒã¿åå€æãå®è¡ãïŒããšãã°ãjsonãšenumã¯Redshiftã®å Žåã¯varcharã«å€æãããŸãïŒããœãŒã¹ããŒã¿ããŒã¹ã®æ§é ãšããŒãã«ã®å€æŽãç£èŠããŸã-æ°ããåãèªåçã«éžæãããŸãã ãŸããã€ã³ããªãžã§ã³ããªãµããŒããµãŒãã¹ãæäŸãããŠããããã£ãããŠã£ã³ããŠã§ããŸããŸãªåé¡ãäœåºŠã解決ã§ããŸããã
è€è£œãããããŒãã«ã®æ°ãå¢ãããšãå¥ã®ETLéçºè ãããã ãã§ããã«å©çãåºããããéžæãããã¢ãŒããã¯ãã£ã§ã®ä»£æ¿ã®æåã®åè£ã¯ãŸã ãéã®ããã§ãã
ã©ã®åæã·ã¹ãã ãéžæããŸããïŒ
ãã¹ãŠã®ããŒã¿ãä¿åãããåŸããããåæããŠèŠèŠåããæ¹æ³ã®åé¡ãçããŸãã ãããŒããŒã¯åã³æ±ºå®çãªåœ¹å²ãæãããŸãããLookerãChartioã®ãããªçŸãããŠéåžžã«é«äŸ¡ãªããžã¥ã¢ã«BIåæããŒã«ãšã Periscope Dataã®ãããªéåžžã«é«äŸ¡ãªSQLå°çšãœãªã¥ãŒã·ã§ã³ãããã«å»æ£ããããåŸãŸããã§ããã
éžæè¢ã¯ã Mode ã Redash ã Plotlyã®ããããã§ãã ã ãããã®ãã¹ãŠã®ãµãŒãã¹ã䜿çšãããšãããŸããŸãªããŒã¿ãŠã§ã¢ããŠã¹ã«æ¥ç¶ããSQLã¯ãšãªãäœæããŠããŸããŸãªæ¹æ³ã§èŠèŠåããã¬ããŒããšããã·ã¥ããŒããäœæããä»ã®ãŠãŒã¶ãŒã«ããããžã®ã¢ã¯ã»ã¹ãèš±å¯ã§ããŸãã
ããã«ãModeã䜿çšãããšãPythonã©ã€ãã©ãªã䜿çšããŠããŒã¿ã®åŸåŠçãå®è¡ããããããŸããŸãªã©ã€ãã©ãªãæ¥ç¶ããŠã«ã¹ã¿ã ã®èŠèŠåãè¡ã£ããããã©ã¡ãŒã¿ä»ãã®ã¬ããŒããäœæãããããªã¯ãšã¹ãã®å€æŽå±¥æŽããªããžããªã«ä¿åãããã§ããŸãã ããé«ããµãã¹ã¯ãªãã·ã§ã³ã¬ãã«ã§ã¯ãéžæã¯ãšãªãå®çŸ©ãšããŠä¿åããæ©èœã䜿çšã§ããŸãã
Redashã§ã¯ã2çš®é¡ã®ãã©ã¡ãŒã¿ãŒã䜿çšããŠã¬ããŒããäœæã§ããŸããæ¢ã«åä¿¡ããã¯ãšãªçµæã®è¡šç€ºã«åœ±é¿ãããã£ã«ã¿ãŒãšããªã¯ãšã¹ãèªäœã«çœ®ãæãããããã©ã¡ãŒã¿ãŒã®ã¿ã§ãã
Redashã§ã¯ããã§ã«èšè¿°ãããSQLã³ãŒããåå©çšããŠãã¹ãããããšããŠä¿åã§ããŸãã ä»ã®ãªãã·ã§ã³ãšã¯ç°ãªããRedashã«ã¯ãã¹ã±ãžã¥ãŒã«ã«åºã¥ããŠèŠæ±ãèªåçã«åèšç®ããåªããæ©èœãšãã¯ãšãªçµæã®èšå®å€ãå€æŽããããªã¬ãŒã§ããSlackãŸãã¯ã¡ãŒã«ã«ããéç¥ã¡ã«ããºã ããããŸãã Redashãšã¢ãŒãã®äž¡æ¹ã®ãµãã¹ã¯ãªãã·ã§ã³ã®ããé«ãã¬ãã«ã§ã¯ããŠãŒã¶ãŒã°ã«ãŒãã®ã¬ããŒããžã®ã¢ã¯ã»ã¹ã管çããå¯èœæ§ããããŸãã
Plotlyã¯ããšããšãªãŒãã³ãœãŒã¹ã®JavaScriptèŠèŠåã©ã€ãã©ãªã§ããããçŸåšã§ã¯æãæŽç·ŽãããããŒã¿èŠèŠåããŒã«ãšãPythonãRãJuliaãªã©ã®è€æ°ã®èšèªçšã®APIãåããŠããŸãã ããã·ã¥ããŒããäœæããæ©èœãæ¯èŒçæè¿ç»å ŽããŸããã RedashãModeãšã¯ç°ãªããPlotlyã«ã¯ã·ã³ãã«ãªã¢ã¯ã»ã¹å¶åŸ¡ã·ã¹ãã ããããŸããã¹ã±ãžã¥ãŒã«ãŸãã¯ããã·ã¥ããŒãã¯ãåç §ãŸãã¯ãããªãã¯ã¢ã¯ã»ã¹ã§ã®ã¿å ±æã§ããŸãã
ãéã®å Žåãç¶æ³ã¯æ¬¡ã®ãšããã§ããPlotlyã®ã³ã¹ãã¯ã¢ããªã¹ãã®æ°ã«äŸåãã1人ããã幎é0.4Kãã«ã§ããæ¢è£œã®ã¬ããŒãã衚瀺ããã«ã¯ãµãã¹ã¯ãªãã·ã§ã³ã¯äžèŠã§ãã ã¢ãŒãã®æãå®äŸ¡ãªãã©ã³ã«ã¯ã10åã®ã¢ã«ãŠã³ããš5,000åã®SQLã¯ãšãªãå«ãŸãã幎é300äžãã«ã®è²»çšãããããŸãã ã¬ããŒãã衚瀺ãããŠãŒã¶ãŒæ°ã«å¶éã®ãªãRedashã®æå°ã³ã¹ãã¯å¹Žé1.2Kãã«ã§ãããã¬ããŒãã¬ãã«ã§ã®ã¢ã¯ã»ã¹æš©ã®éãã¯å¹Žé5.4Kãã«ã§ããããµãŒããŒäžã§ç¡æã§åŒãäžããããšãã§ããŸãã
ã¿ã¹ã¯ã§ã¯ãæãé«äŸ¡ãªãµãŒãã¹ãç¬èªã®éçºã«åŸã ã«çœ®ãæããããšãæ³å®ãããŠãããããRedashã®ãã®æ©èœãæãé åçã§ããã ç§ã¯ãã§ã«åœŒãšå€ãã®çµéšãããããšãèæ ®ããŠãç§ã¯åœŒãéžã³ãŸããã
çµæ
4ãæã§ãã®ã€ã³ãã©ã¹ãã©ã¯ãã£ããã¹ãŠåéãããã¹ãŠã®è£œåãšãã®ããŒã¿ããŒã¹ããã®ããŒã¿ãæ¥ç¶ããŠãããŸããŸãªKPIãšã¡ããªãã¯ã®çŽ90ã®ã¬ããŒããšããã·ã¥ããŒããäœæãããã£ãçŽ$ 2Kãè²»ãããŸããïŒ3ãæéã®ç¡æã®Redshiftãã©ã€ã¢ã«ãæ¯æã®ããã°ã¬ãã·ãæéã¹ããããšã»ã°ã¡ã³ãã®æ¯æããããã³çŸåšæãé«äŸ¡ã§ã¯ãªãRedashãã©ã³ã«ç»é²ãããŠãããšããäºå®ïŒã
ç¹ã«ãå補åã«äœ¿çšããåŠæ ¡ã®ã¢ã¯ãã£ããªçåŸã®ã·ã§ã¢ãèšç®ããããšãã§ããŸããã
ããã¯åçŽãªã¿ã¹ã¯ã®ããã«æãããããããŸããããå®éã«ã¯ãããã®è£œåããããŒã¿ãåéããå¿ èŠããããŸããïŒããšãã°ãWordsã¢ããªã±ãŒã·ã§ã³ããã®ãã¬ãŒãã³ã°ã€ãã³ãïŒããã³åŠæ ¡ã®ââããŒã¹ããã¯ã©ã¹ã®ããŒã¿ã
æ§ç¯ãããã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãåŠçãããããŒã¿ã®éãå¢ããããšã§ç°¡åã«æ°Žå¹³ã«ã¹ã±ãŒãªã³ã°ã§ããŸãããŸãã䜿çšããããµãŒãã¹ã¹ã¿ãã¯ã¯ãæ©æ¢°åŠç¿ãµãŒãã¹ãšããŠã®Amazon Machine Learningãåå¥ã®ããŒã¿ãœãŒã¹ãšããŠã®ããŸããŸãªCRMããã³ããŒã±ãã£ã³ã°ãã©ãããã©ãŒã ãªã©ãä»ã®èŠçŽ ã«ãã£ãŠããŸããŸãªåŽé¢ããä¿®æ£ããã³è£å®ã§ããŸã
ã¯ã©ãŠãã¢ããªãã£ã¯ã¹ã€ã³ãã©ã¹ãã©ã¯ãã£ã®æ§ç¯ãé·å¹Žæãã§ãããã1ãã³ã¹ãé£ã¶ããšãæããŠãããã¹ãŠã®äŒæ¥ã«ãšã£ãŠãæããããšããããŠããããå§ããŠãã ãããæ°å¹Žåãããã¯ããã«ç°¡åã§å®äŸ¡ã«ãªããŸããã
PSãã®åºçç©ã®çŽåã«ãã¬ããŒããäœæããããŒã¿ããŒã¹ããããŒã¿ãè€è£œããããã«äœ¿çšã§ããå¥ã®å®äŸ¡ãªããªã¹ãã£ãã¯ãµãŒãã¹ãèŠã€ããŸãããããŸã ãã¹ãããæéããããŸããã§ããã
PPS Glebããã®ãžã§ããããã«è¿œå ããã®ã¯ã¯ãŒã«ã§ããã圌ã¯ãã§ã«æ£åžžã«çµäºããŠããŸããã ãããã£ãŠãç§ãã¡ã¯åã«ããªãã«æãåºãããŸãïŒç§ãã¡ã¯èå³æ·±ã人ã ã®ããã«å€ãã®èå³æ·±ãä»äºãããŠããŸãã ä»ããåå ãããïŒ