Clickhouse : Test 3
Clickhouse : Test 3 jppLe but de cet ordre SQL est de trouver les adresses IP qui ont contacté sans succès la machine, ceci est identifié par une valeur 0 dans le champ OUT_BYTES et qui ont "tenté" des connexions sur au moins 10 ports différents. Ceci peut arriver si la demande a été bloquée par le firewall (drop).
L'ordre SQL est légèrement différent car les fonctions de gestion des dates ont des syntaxes légèrement différentes.
select IP_SRC_ADDR as SRC,IP_DST_ADDR as DST, count(distinct L4_DST_PORT) as NPORT from flowsv4 -- mariadb where FIRST_SWITCHED > DATE_SUB(now(), interval 20 day) -- clickhouse where FIRST_SWITCHED > DATE_SUB(DAY,20,now()) and IP_SRC_ADDR not between '192.168.1.1' and '192.168.3.255' and L4_DST_PORT < 15000 group by SRC,DST having NPORT > 10 order by SRC; |
La différence n'est pas énorme mais il faut y faire attention ...
Et maintenant passons aux faits.
1) Clickhouse.
┌─SRC─────────────┬─DST─────────┬─NPORT─┐ │ 103.138.109.220 │ 192.168.1.2 │ 105 │ │ 103.56.61.144 │ 192.168.1.2 │ 12 │ │ 104.156.155.13 │ 192.168.1.2 │ 1216 │ │ 104.168.53.114 │ 192.168.1.2 │ 23 │ ...... │ 94.232.45.241 │ 192.168.1.2 │ 68 │ │ 95.161.131.235 │ 192.168.1.2 │ 19 │ └─────────────────┴─────────────┴───────┘ 377 rows in set. Elapsed: 0.120 sec. Processed 7.92 million rows, 395.57 MB (66.10 million rows/s., 3.30 GB/s.) |
2) MariaDB.
+-----------------+-------------+-------+ | SRC | DST | NPORT | +-----------------+-------------+-------+ | 103.138.109.220 | 192.168.1.2 | 105 | | 103.56.61.144 | 192.168.1.2 | 12 | | 104.156.155.13 | 192.168.1.2 | 1216 | | 104.168.53.114 | 192.168.1.2 | 23 | ...... | 94.232.45.241 | 192.168.1.2 | 68 | | 95.161.131.235 | 192.168.1.2 | 19 | +-----------------+-------------+-------+ 377 rows in set (19,137 sec) |
3) Comparaison.
Le rapport entre 19 secondes et 0.12 est frappant, Clickhouse est 158 fois plus rapide.