Našiel som doma na disku staré archívy so zoznamom domén registrovaných v systéme SK-NIC. Bolo mi ľúto tieto súbory len tak vymazať, kedže šlo o pomerne slušnú vzorku dát. Celkovo 893 súborov v skomprimovanej veľkosti 2.4G bolo na diskovom poli bezpečne uložené od roku 2009. Osemstodeväťdesiattri krát sa podarilo zoznam slovenských domén stiahnuť a uložiť na disk.
Zároveň som našiel pekný graf na stránke štatistiky-domén.sk. Paráda!
Spravil som zopár voodoo príkazov v shelli a v MySQL a na svete boli dáta pekne zoradené v dvoch tabuľkách – jedna vypreparovaná zo stránky štatistiky-domén.sk a tá druhá z mojich súborov na disku. Zámerom bolo dáta spojiť a vytvoriť tak dlhšiu históriu.
Zo zdrojového kódu HTML som vyrobil cca takýto SQL skript:
SET @DATE = FROM_UNIXTIME(1306101600); INSERT INTO trend_daily_counters_from_SD (date, value, counter) VALUES (@DATE, 'sknic_domains_count',234918); set @DATE = @DATE + INTERVAL 1 DAY; INSERT INTO trend_daily_counters_from_SD (date, value, counter) values (@DATE, 'sknic_domains_count',235123); set @DATE = @DATE + INTERVAL 1 DAY; INSERT INTO trend_daily_counters_from_SD (date, value, counter) values (@DATE, 'sknic_domains_count',235290); set @DATE = @DATE + INTERVAL 1 DAY; INSERT INTO trend_daily_counters_from_SD (date, value, counter) values (@DATE, 'sknic_domains_count',235444); set @DATE = @DATE + INTERVAL 1 DAY; INSERT INTO trend_daily_counters_from_SD (date, value, counter) values (@DATE, 'sknic_domains_count',235630); set @DATE = @DATE + INTERVAL 1 DAY; ...
A takto som vytiahol dáta z mojich súborov:
$ cat extract-domains-count.sh #!/bin/sh cd data || exit 1; echo "insert into trend_daily_counters_from_LH (date, value, counter) values "; for f in `find . -name 'sk-nic.*.csv.bz2' -print | sort`; do ff=${f%.bz2}; dt=${f%.csv.bz2}; dt=${dt#./sk-nic.} bunzip2 $f; ct=`wc -l $ff | awk '{ print $1 - 11; }'` # header is 11 lines long pbzip2 --best $ff & # repack with pbzip2 in the background echo "('$dt', 'sknic_domains_count', $ct),"; done echo "(0,0,0);"
Dáta vyzerali na prvý pohľad veľmi podobne, ale opatrne som ich porovnal. A čuduj sa svete, boli v dátach jemné rozdiely.
Postupne sa analýzou podarilo prísť na to, ktoré hodnoty v ktorom zdroji sú chybné. Drobné chybičky boli v nakoniec v obidvoch. Fascinujúce je, ako postupné súvislosti odhalili celkový obraz. Napríklad zaujímavý je fakt, ak je počet domén rovnaký v niektoré dni. Pri takomto veľkom počte záznamov je to veľmi nepravdepodobné.
Taktiež ľahko odhalíte chybu, ak jeden zdroj dát vykáže nižšie počty. Pravdepodobne šlo o chybu spracovania v začiatkoch projektu štatistiky-domén.sk.
A ešte jedna finta – spravíte graf a podľa podobnosti oboch čiar, ktoré si vaše oko ihneď všimne, zistíte, že hodnoty sú nejako posunuté.
Po odstránení chybných záznamov som históriu pekne spojil a do tabuľky pribudli dáta za 813 dní. 🙂 Časom z toho bude možno rovnako pekný graf, ako je na stránke štatistiky-domén.sk.
mysql> insert ignore into trend_daily_counters select * from trend_daily_counters_from_LH; Query OK, 813 rows affected (0.15 sec) Records: 892 Duplicates: 79 Warnings: 0