Предположим, что существует популярный веб-сервер, число посещений этого веб-сервера может составлять десятки тысяч в час, чтобы проанализировать статистические свойства этих посещений, мы хотим знать количество запросов в конкретномвременной диапазон и диапазон IP.
Например, у нас есть 10 12 запросов в следующем формате:
(IP-адрес, время посещения)
Предположим, мы хотим знать, какмного посещений было из диапазона IP [10.12.72.0, 10.12.72.255] в течение 14:00 и 16:00.
Единственные идеи-кандидаты, о которых я могу подумать:
(1) использовать B-TREE для индексации этого большого набора данных, используя одно измерение, например, построить B-TREE на параметре IP,Используя этот B-TREE, мы можем быстро получить количество запросов, поступающих из любого определенного диапазона IP-адресов, но как мы можем узнать, сколько из этих посещений происходит между 14:00 и 16:00?
(2) использовать BITMAP, но аналогично B-TREE, из-за требований к пространству BITMAP может быть построен только на одном измерении, например, IP-адресе, мы не знаем, сколько из этих запросов выданомежду 14:00 и 16:00.
1016 * Есть ли эффективный алгоритм, спасибо?Количество запросов может быть довольно большим