The article describes a method which allows counting unique IP addresses within 10 bln of system events per day across high number of distinct dimensions (tuples). Log-based and probability-based methods showed unsatisfactory results. The proposed method allows avoiding excessive resource usage (RAM, CPU and persistent storage) as it appeared in a raw logs method and a probability method of counting. The method also avoids high statistic error for low cardinality as it appeared in a probability method. The main idea is to count unique IP addresses in distinct tuples in real time using RAM for short data interval processing, then flushing it to persistent.
Описано метод, який дозволяє підрахувати кількість унікальних IP адрес із великої кількості різних наборів даних (кортежів). Методи, базовані на скануванні логів та імовірнісному підрахунку привели до незадовільних результатів. Запропонований метод дозволяє уникнути надмірного використання ресурсів (процесора, оперативної та постійної пам’ яті), як це відбувається при використанні метода сканування необроблених логів та імовірнісного методу підрахунку, а також уникнути великої статистичної похибки, як при використанні імовірнісного метода на малих кількостях унікальних значень. Основна ідея методу полягає в тому, що підрахунок унікальних IP адрес в різних кортежах в реальному часі проводиться в оперативній пам'яті. Обробка даних виконується на коротких інтервалах і потім вони передаються у постійну пам'ять згідно з алгоритмом злиття. Оброблені лічильники IP адрес надходять з файлів у звичайну базу даних з п ятихвилинним, годинним, добовим, тижневим або місячним інтервалом.
Описан метод, позволяющий подсчитать число уникальных IP адресов из большогоколичества различных наборов данных (кортежей). Методы, основанные на сканировании логов и вероятностном подсчете, привели к неудовлетворительным результатам. Предложенный метод позволяет избежать чрезмерного использования ресурсов (процессора, оперативной и постоянной памяти), как при использовании метода сканирования необработанных логов и вероятностного метода подсчета, а также избежать большой статистической погрешности, как при использовании вероятностного метода на малых количествах уникальных значений. Основная идея метода состоит в том, что подсчет уникальных IP адресов в различных кортежах в реальном времени проводится в оперативной памяти. Обработка данных выполняется на коротких интервалах и затем они передаются в постоянную память с помощью алгоритма слияния. Обработанные счетчики IP адресов поступают в обычную базу данных из файлов с пятиминутным, часовым, суточным, недельным или месячным интервалом.