안녕하세요. 이 분야의 고수님들께 문의드립니다.
실시간으로 대량의 데이터를 받아 csv파일에 저장하고 있습니다.
들어오는 데이터에 시분초 정보가 있고 csv파일에 저장할 때 현재 컴퓨터의 시분초도 저장하고 있는데요.
데이터 전송이 완료된 후 두 시간차를 보면 처음에는 차이가 없다가 시간이 갈수록 점점 많은 차이를 보이고 있습니다.
사실 컴퓨터의 시분초 정보는 저장할 필요가 없으므로 이렇게 큰 차이를 보여도 관계없지만 혹 유실되는 데이터가 있을까 걱정이어서요. 들어오지만 저장되지 않는 데이터만 없으면 관계 없습니다만.
저장되지 않는 데이터가 있을까요?
만약 그렇거나 그렇지 않다 해도 두 시간차를 줄이려면 어떤 부분을 보완해야 할까요. 컴퓨터의 어떤 하드웨어를 업그레이드 한다던지 인터넷 속도를 어느정도로 바꾼다던지, 검색해보니 컴퓨터에서 버퍼의 크기를 늘리라는 이야기도 있던데 관계있는 것인지.
참고로 초당 몇백건의 row가 들어올 때도 있습니다. 하루 데이터는 7기가 정도고 가장 영향을 받을 것으로 생각되는 하드디스크는 m.2입니다.
답변 부탁드립니다.
박재영
½ÉÁö¾î´Â ¾çÂÊ ÄÄ ¸î½Ã°£Âë Â÷À̳ªµµ ¹«½ÃµÉ²®´Ï´Ù
´Ù¸¸ ¹«°á È®ÀÎÇϰųª, ¾ç¹æÇâ Åë½ÅÇÏ´Â°Å¸é ¹®Á¦µË´Ï´Ù (±×·¡µµ ¸îÃÊÁ¤µµ·Î ¿¡·¯³ªÁø ¾ÊÀ½)
Àü¼Û¹Þ°í ³ª¼ ÀúÀåÇÑ °á°úµ¥ÀÌÅÍ¿Í ¿øõµ¥ÀÌÅÍ¿ÍÀÇ ¹«°á¼º ¿©ºÎ¸¦ È®ÀÎÇϽô °Ô ÁÁÀ» °Í °°Àºµ¥¿ä.
±×¸®°í µ¥ÀÌÅÍ ¹ß»ý½ÃÁ¡¿¡¼ ¾î¶°ÇÑ ¹æ½ÄÀ¸·Î Àü´Þ¹Þ°í
±â·Ï½Ã¿¡ ÇϳªÀÇ ÆÄÀϷθ¸ ÀúÀåÇÏ´ÂÁö,
¾Æ´Ï¸é Àü´Þ¹Þ´Â´ë·Î ´Ù·®ÀÇ CSV¸¦ µû·Î »ý¼ºÇÏ´ÂÁö ¿©ºÎ¿¡ µû¶ó¼µµ Â÷ÀÌ°¡ »ý±æ ¼ö ÀÖ°í¿ä.
±×¿Ü Àü¼Û½Ã ¿µÇâÀ» ÁÖ´Â ¿ä¼Ò·Î´Â CPU»ç¿ë·®, ³×Æ®¿öÅ©ÀÇ ¼Óµµ, µð½ºÅ©IOÀÇ ¼Óµµ µîÀÌ ÀÖ°í¿ä.
¿¹ÄÁµ¥ µð½ºÅ©IO »óȲÀº À©µµ¿ì¶ó¸é ÀÛ¾÷°ü¸®ÀÚÀÇ µð½ºÅ©,
¸®´ª½º¶ó¸é iostat µîÀ¸·Î Àü¼Û·®µî üũ°¡ °¡´ÉÇÏ½Ç °Ì´Ï´Ù.
¾î´ÀºÎºÐ¿¡¼ º´¸ñÀÌ ¹ß»ýÇÏ´ÂÁö üũÇϽøé, ¾î´ÀºÎºÐÀ» °³¼±ÇØ¾ß µÉÁöµµ °¡´ÆÇÏ½Ç °Í °°¾Æ¿ä.
±×°Ô ¾î´ÀÁ¤µµ ½×ÀÌ¸é ¹À½ ÈÀÏ ¹æ½ÄÀ¸·Î Àü¼ÛÇÏ´Â ½ÄÀ¸·Î µÇ¾î¾ßÇÒ°Ì´Ï´Ù.....(±×·¡¾ß Àû¾îµµ Àü¼Û°úÀå¿¡¼ »ý±â´Â µå·ÓÀÇ
¹«°á¼º üũµµ µÇ°í ¹ß»ýÇÏ´Â °÷¿¡¼ ÀúÀåÇÏ´Â °úÁ¤¿¡¼ »ý±æ ¼öµµ ÀÖ´Â µå·Óµµ ÃÖ¼Ò°¡ µÉ°Ì´Ï´Ù)
¾Æ¸¶ Àü¹® ÇÁ·Î±×·¥ÀÇ µµ¿òÀ» ¹Þ°Å³ª Àü¹® ÇÁ·Î±×·¡¸Ó¿¡°Ô Â¥´Þ¶ó°í ÇؾßÇÒ µí?
open => seek => write => close?
append?
ÃÊ´ç ÃÖ´ë ¼ö¹é°ÇÀÇ row°¡ µé¾î¿Ã ¶§µµ ÀÖ´Ù°í ¸»¾¸Çϼ̴µ¥, ±×³É °¨°¢ÀûÀ¸·Î »ý°¢Çصµ ÀÌ°É ÇÑ °Ç¸¶´Ù ¸Å¹ø ÆÄÀÏ ¿ÀÇÂÇؼ ±â·ÏÇÏ°í ´Ý°í..ÇÏ´Â °Ç ²Ï³ª ºñÈ¿À²ÀûÀ̶ó°í »ý°¢ÇÕ´Ï´Ù.
´çÀå À̰͸¸ ¾î´À Á¤µµ ¹¾î¼.. ¿¹¸¦ µé¾î ¹é°Ç ´ÜÀ§·Î ó¸®Çϵµ·Ï¸¸ ¹Ù²ãµµ ¸¹ÀÌ ´Þ¶óÁöÁö ¾ÊÀ»±î¿ä?
ÀϹÝÀûÀ¸·Ð OS³ª ÆÄÀÏ ½Ã½ºÅÛ ÀÚüÀÇ °©ÀÛ½º·¯¿î Å©·¡½¬°°Àº °æ¿ì°¡ ¾Æ´Ï¶ó¸é¾ß, ÆÄÀÏ Çϳª ¿¾î¼ ¸î ½Ã°£ µ¿¾È ºÙµé°í ÀÖÀ¸¸é¼ µ¥ÀÌÅÍ Ãß°¡ÇÏ°í ¸¶Áö¸·¿¡ ´Ý¾Æµµ µüÈ÷ ¹®Á¦µÉ °Ç ¾ø´Ù°í »ý°¢ÇÕ´Ï´Ù¸¸.. ÀÏ´Ü ÆÄÀÏ ÃÖÃÊ ¿°í ´ÝÀ» ¶§±îÁöÀÇ ½Ã°£, Áï ¿¸°Ã¤·Î ÀÛ¾÷ÇÏ´Â ½Ã°£À̳ª ÃÖÁ¾ ÆÄÀÏ Å©±â¿¡ µû¶ó¼µµ ´Þ¶óÁöÁö ¾ÊÀ»±î »ý°¢µµ Çغ¾´Ï´Ù.
´ë°³´Â ´ÜÀÏ ÆÄÀÏÀÌ ³Ê¹« Ä¿ÁöÁö ¾Êµµ·Ï, ÆÄÀÏ Çϳª ¿¾î¼ µ¥ÀÌÅ͸¦ Ãß°¡ÇÏ´Ù ÀÏÁ¤ Å©±â¿¡ µµ´ÞÇÏ¸é ±× ÆÄÀÏÀº ´Ý°í ´ÙÀ½ ÆÄÀÏÀ» »õ·Î ¸¸µå´Â ½ÄÀ¸·Î ÀÛ¾÷À» ÇÏ°ï ÇÏÁÒ. (OS ÀÚüÀÇ ¿©·¯ À̺¥Æ®·Î±× ÆÄÀÏ°°Àº °Íµéµµ ÀÌ·± ½ÄÀÌÁö ¾ÊÀ»±î »ý°¢ÇÕ´Ï´Ù.)
¾Æ´Ï¸é ÀÏÁ¤ ½Ã°£°£°ÝÀ» µÎ¾î ÆÄÀÏÀ» Çϳª¾¿ »õ·Î ¸¸µå´Â ½ÄÀ¸·Î ¼³°èÇÒ ¼öµµ ÀÖ°ÚÁÒ.
¹º°¡ ºÒ¾ÈÇϽøé ÅøÀ» »ç¿ëÇϼŵµ µË´Ï´Ù.
¿¹¸¦ µé¾î¼ ·Î±ë library (¿¹ log4j) µîÀ» »ç¿ëÇϼż CVS¿¡ Ãß°¡ÇØ¾ß ÇÏ´Â µ¥ÀÌÅ͸¦ log4j·Î ´øÁö¸é ÀÌ ¶óÀ̺귯¸®°¡ logÆÄÀÏ¿¡ ¾Ë¾Æ¼ Ãß°¡ÇØ ÁÙ°Ì´Ï´Ù.
¾Æ´Ï¸é, ±×³É mariadbµî¿¡ ¶§·Á ³Ö¾îµµ µË´Ï´Ù.
ÃÊ´ç ¼ö¹é°ÇÀ̸é sqlite·Îµµ ÃæºÐÇÕ´Ï´Ù.
ÃÊ´ç ¼ö¹é°Ç ±×·¸°Ô ¸¹Àº °Å ¾Æ´Ï´Ï °ÆÁ¤ÇÏÁö ¸¶¼¼¿ä
Âü°í·Î ÀúÈñ ½Ã½ºÅÛ ½Ã½ºÅÛÀÌ ÃÊ´ç 5,000~15,000°Ç Á¤µµ ·Î±×°¡ µé¾î¿É´Ï´Ù.
ÀÌ·± ½Ã½ºÅÛ 8 ¶Ç´Â 16 ´ë°¡ Ŭ·¯½ºÅÍ·Î µé¾î¿À´Ï ´ë·« ÃÊ´ç 200,000 Á¤µµ µé¾î¿É´Ï´Ù.
MES ¼ºñ½º¿ëÀÌ´Ï 24½Ã°£ 365ÀÏ µ¹¾Æ°¡¾ß ÇÕ´Ï´Ù.
ÀÌ Á¤µµµµ mongoDB³ª mariadb·Î Àû´çÈ÷ ¸¸µé¾îµµ Å« ¹®Á¦ ¾ø½À´Ï´Ù.
±×·¯´Ï °ÆÁ¤ ¸¶½Ã°í °Çµé¿© º¸¼¼¿ä
1row¸¦ insertÇÒ¶§¸¶´Ù commitÇϽôÂÁö ¾Æ´Ï¸é ÁöÁ¤°³¼ö(or ½Ã°£)ÀÇ row°¡ insertµÈ ÈÄ commitÀ» ÇϽô°¡¿ä.
¸¸¾à 2¹ø° ½Ã¶ó¸é ¸î row insert(or ½Ã°£)ÈÄ commitÇϽõµ·Ï Çسù´ÂÁö ¿©Â庾´Ï´Ù.
±×·±µ¥ ´ë·® ÀμƮ´Â ÀϹÝÀûÀÎ Æ®·£Àè¼ÇÀ¸·Î °Ç°ÇÀÌ ³ÖÀ¸¸é ¾öû ´À¸°µ¥ Àú·± ÆÐÅÏÀº ¹úÅ©·Î ÀÔ·ÂÇÕ´Ï´Ù. ¹úÅ©·Î Çѹ濡 µé¾î°¡°í Å×ÀÌºí¿¡¼ Å°±¸Á¶¿Í À妽º¿¡ ¸Â°Ô Á¤·ÄÀÌ µË´Ï´Ù.
ÀϹÝÀûÀÎ µ¥ÀÌÅÍ ÆÄÀÏ ¹æ½ÄÀº °Ç¼ö°¡ Àû°Å³ª ¿ë·®ÀÌ ÀÛÀ»¶§´Â Å©°Ô ¿µÇâÀÌ ¾ø´Âµ¥ ¿ë·®Ä¿Áö°í °Ç¼ö°¡ ¸¹¾ÆÁö¸é ´ç¿¬È÷ DB¿£Áø ¾ÈÅ¿ì´Â°ÍµéÀº ¸¹ÀÌ ´À¸®ÁÒ. ÀÌ·± ¹®Á¦¶§¹®¿¡ DB¼¹ö¸¦ ¾²´Â°Ì´Ï´Ù. µð½ºÅ© ¼Óµµ¶û °ü·Ã¾ø½À´Ï´Ù. ¿¢¼¿µµ ·Î¿ì¼ö ¸¹À¸¸é ¾öû ´À¸³´Ï´Ù. ±×·¡¼ ¾×¼¼½ºDB¸¦ ¾²°Å³ª DB¿¡ ¶§·Á¹Ú¾Æ¼ ¾²´Â°Ì´Ï´Ù.
ÇÑÁÙÇÑÁÙ openÇÏ´Â°Ç ´ç¿¬È÷ Á÷Á¢Çϴ°ͺ¸´Ù DB¿¡ ¸Ã±â´Â°Ô ÈξÀ Çö¸íÇҰű¸¿ä.
(DB°¡ ³ÖÀ»¶§¸¶´Ù ÀÚµ¿À¸·Î timestamp¸¦ Ãß°¡ÇÏ°ÔÇϴ°͵µ °¡´ÉÇÏ°ÚÁÒ. createdAtÀÌ ÀÚµ¿»ý¼ºµÇ´Â Å×À̺í·Î¿ä)
°íµµÈ¸¦ À§Çؼ¶ó¸é deliver guarantee / lossless, kafka / airflow °°Àº°É ã¾Æº¸½Ã´Â°Ô ÁÁÀ» °Í °°¾Æ¿ä.
°¡Àå Áß¿äÇÑ°Ç Á¤¸» °°Àº µ¥ÀÌÅÍ°¡ ¸Â´ÂÁö(¹«°á¼º/...)¸¦ È®½ÅÇÏ´Â °úÁ¤ÀÌ ÇÊ¿äÇѵ¥, ±× trust source¸¦ ¾î¶»°Ô ¼³°èÇÏ°í È®º¸ÇҰųİ¡ Áß¿äÇغ¸À̳׿ä.