Агрегатная таблица
При создании таблицы вы можете определить агрегатный ключ и указать агрегатную функцию для столбца значений. Когда несколько строк данных имеют одинаковый агрегатный ключ, значения в столбцах значений агрегируются. Кроме того, вы можете отдельно определить ключ сортировки. Если условия фильтрации в запросах включают ключ сортировки, Selena может быстро фильтровать данные, повышая эффективность запросов.
В сценариях анализа и агрегации данных агрегатные таблицы могут уменьшить объем данных, которые необходимо обработать, тем самым повышая эффективность запросов.
Сценарии использования
Агрегатная таблица хорошо подходит для сценариев статистики и аналитики данных. Несколько примеров:
-
Помогает провайдерам веб-сайтов или приложений анализировать объем трафика и время, которое их пользователи проводят на конкретном веб-сайте или в приложении, а также общее количество посещений веб-сайта или прилож ения.
-
Помогает рекламным агентствам анализировать общие клики, общие просмотры и статистику потребления рекламы, которую они предоставляют своим клиентам.
-
Помогает компаниям электронной коммерции анализировать их годовые торговые данные для выявления географических бестселлеров в отдельных кварталах или месяцах.
Запросы данных и их загрузка в вышеупомянутых сценариях имеют следующие характеристики:
- Большинство запросов являются агрегатными запросами, такими как SUM, MAX и MIN.
- Необработанные детальные данные не нужно извлекать.
- Исторические данные не обновляются часто. Добавляются только новые данные.
Принцип работы
От фазы загрузки данных до запроса данных, данные в агрегатных таблицах агрегируются несколько раз следующим образом:
-
На этапе загрузки данных каждая партия данных формирует версию при загрузке данных в агрегатную таблицу партиями. В одной версии данные с одинаковым агрегатным ключом будут агрегированы.
-
На этапе фонового уплотнения (Compaction), когда файлы нескольких версий данных, сгенерированных при загрузке данных, периодически уплотняются в большой файл, Selena агрегирует данные с одинаковым агрегатным ключом в большом файле.
-
На этапе запроса данных Selena агрегирует данные с одинаковым агрегатным ключом среди всех версий данных перед возвратом результата запроса.
Агрегатные операции помогают уменьшить объем данных, которые необходимо обработать, тем самым ускоряя запросы.
Предположим, у вас есть таблица, использующая агрегатную таблицу, и вы хотите загрузить следующие четыре исходные записи в таблицу.
| Date | Country | PV |
|---|---|---|
| 2020.05.01 | CHN | 1 |
| 2020.05.01 | CHN | 2 |
| 2020.05.01 | USA | 3 |
| 2020.05.01 | USA | 4 |
Selena агрегирует четыре исходные записи в следующие две записи при загрузке данных.
| Date | Country | PV |
|---|---|---|
| 2020.05.01 | CHN | 3 |
| 2020.05.01 | USA | 7 |