Таблица 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);
Примечания по использованию
-
Ключ сортировки
Начиная с версии 1.5.0, таблица Duplicate Key поддерживает указание ключа сортировки с помощью
ORDER BY, который может быть комбинацией любых столбцов. Если используются иORDER BY, иDUPLICATE KEY, тоDUPLICATE KEYне действует. Если не ис пользуется ниORDER BY, ниDUPLICATE KEY, первые три столбца таблицы используются как ключ сортировки по умолчанию. -
Разбиение на корзины
- Метод разбиения на корзины:
Начиная с версии 1.5.0, Selena поддерживает случайное разбиение на корзины для таблиц Duplicate Key (метод разбиения по умолчанию). При создании таблиц или добавлении разделов вам не нужно устанавливать ключ хеш-разбиения (то есть предложение
DISTRIBUTED BY HASH). До версии 3.1.0 Selena поддерживала только хеш-разбиение. Вам нужно было устанавливать ключ хеш-разбиения (то есть предложениеDISTRIBUTED BY HASH) при создании таблиц или добавлении разделов, иначе создание таблицы завершалось неудачей. Для получения дополнительной информации о ключах хеш-разбиения см. Hash Bucketing.- Количество корзин: Начиная с версии 1.5.0, Selena может автоматически устанавливать количество корзин (BUCKETS) при создании таблицы или добавлении раздела. Вам больше не нужно вручную устанавливать количество корзин. Для получения подробной информации см. set the number of buckets.
-
При создании таблицы вы можете создавать индексы Bitmap или индексы Bloom Filter для всех столбцов таблицы.
Что делать дальше
После создания таблицы вы можете использовать различные методы приема данных для загрузки данных в Selena. Для получения информации о методах приема данных, поддерживаемых Selena, см. Loading options.
- При загрузке данных в таблицу, использующую таблицу Duplicate Key, вы можете только добавлять данные в таблицу. Вы не можете изменять существующие данные в таблице.
- Если загружаются две идентичные записи, таблица Duplicate Key сохраняет их как две записи, а не как одну.