Duplicate Key таблица
Duplicate Key таблица является моделью по умолчанию в Selena. Если вы не указали модель при создании таблицы, по умолчанию создается Duplicate Key таблица.
При создании Duplicate Key таблицы вы можете определить ключ сортировки для этой таблицы. Если условия фильтрации содержат столбцы ключа сортировки, Selena может быстро фильтровать данные из таблицы для ускорения запросов.
Duplicate Key таблица подходит для сценариев, таких как анализ данных логов. Она поддерживает добавление новых данных, но не поддерживает изменение исторических данных.
Сценарии
Duplicate Key таблица подходит для следующих сценариев:
- Анализ необработанных данных, таких как необработанные логи и необработанные записи операций.
- Запрос данных с использованием различных методов без ограничений методом предварительной агрегации.
- Загрузка данных логов или данных временных рядов. Новые данные записываются в режиме только добавления, и существующие данные не обновляются.
Создание таблицы
Предположим, что вы хотите проанализировать данные о событиях в течение определенного временного диапазона. В этом примере создайте таблицу с именем detail и определите event_time и event_type в качестве столбцов ключа сортировки.
Инструкция для создания таблицы:
CREATE TABLE detail (
event_time DATETIME NOT NULL COMMENT "datetime of event",
event_type INT NOT NULL COMMENT "type of event",
user_id INT COMMENT "id of user",
device_code INT COMMENT "device code",
channel INT COMMENT "")
ORDER BY (event_time, event_type);
Примечания по использованию
-
Ключ сортировки
Начиная с v1.5.2, Duplicate Key таблица поддерживает указание ключа сортировки с использованием
ORDER BY, который может быть комбинацией любых столбцов. Если используются обаORDER BYиDUPLICATE KEY,DUPLICATE KEYне действует. Если не используется ниORDER BY, ниDUPLICATE KEY, первые три столбца таблицы используются в качестве ключа сортировки по умолчанию. -
Bucketing
- Метод bucketing:
Начиная с v1.5.2, Selena поддерживает случайный bucketing для Duplicate Key таблиц (метод bucketing по умолчанию). При создании таблиц или добавлении partition вам не нужно устанавливать ключ hash bucketing (то есть клаузу
DISTRIBUTED BY HASH). До v1.5.2 Selena поддерживает только hash bucketing. Вам необходимо установить ключ hash bucketing (то есть клаузуDISTRIBUTED BY HASH) при создании таблиц или добавлении partition, иначе таблица не будет создана. Для получения дополнительной информации о ключах hash bucketing см. Hash Bucketing.- Количество bucket: Начиная с v1.5.2, Selena может автоматически устанавливать количество bucket (BUCKETS) при создании таблицы или добавлении partition. Вам больше не нужно вручную устанавливать количество bucket. Для получения подробной информации см. set the number of buckets.
-
При создании таблицы вы можете создать индексы Bitmap или индексы Bloom Filter на всех столбцах таблицы.
Что делать дальше
После создания таблицы вы можете использовать различные методы загрузки данных для загрузки данных в Selena. Для получения инф ормации о методах загрузки данных, поддерживаемых Selena, см. Loading options.
- Когда вы загружаете данные в таблицу, которая использует Duplicate Key таблицу, вы можете только добавлять данные в таблицу. Вы не можете изменять существующие данные в таблице.
- Если загружаются две идентичные записи, Duplicate Key таблица сохраняет их как две записи, а не как одну.