Начало работы
Подключение
Тесты производительности
Развёртывание
Использование данных
Управление кластерами
Обновление
Глобальное обслуживание
Масштабирование
Мониторинг
Безопасность
Лучшие практики
Технические принципы
Типы данных
Хранилище
Исполняющий движок
Потоковая обработка (Domino)
MARS3 Индексы
Расширения
Расширенные функции
Расширенный запрос
Федеративные запросы
Grafana
Резервное копирование и восстановление
Аварийное восстановление
Графовая база данных
Введение
Предложения
Функции
Расширенные темы
Руководство
Настройка производительности
Устранение неполадок
Инструменты
Параметры конфигурации
SQL-команда
Часто задаваемые вопросы
В этом документе описываются характеристики вставки данных при работе с временными рядами, а также архитектура вставки данных в YMatrix в таких сценариях.
Хранение данных — одна из ключевых функций базы данных. После завершения моделирования данных и установления соединений с базой необходимо записать данные в таблицы.
Вставка данных в сценариях временных рядов имеет следующие основные особенности:
Одной из типичных черт вставки данных временных рядов является их огромный масштаб. Это проявляется в трёх практических аспектах:
В результате быстрый рост числа объектов в сочетании с высокой частотой сбора данных приводит к образованию огромных объёмов информации. Это создаёт серьёзную нагрузку на пропускную способность базы данных.
YMatrix разработал MatrixGate — инструмент для высокоскоростной вставки данных. Благодаря параллельной вставке данных на узлы данных (Segments), MatrixGate обеспечивает скорость вставки до сотен миллионов точек данных в секунду.
Примечание!
Подробности реализации mxgate см. в статье YMatrix - How YMatrix Achieves 50 Million Data Points/Second on a Single Node; отчёты по тестированию производительности — в YMatrix - Time-Series Database Insert Performance Benchmark: YMatrix is 78x Faster than InfluxDB; принципы работы — в разделе Data Ingestion Tools.
На практике задачи по вставке данных выходят за рамки больших объёмов и разнообразных источников. Они также включают сложные граничные случаи, такие как:
В некоторых сценариях устройство не передаёт все собранные метрики сразу, а отправляет их несколькими пакетами. Эти частичные передачи должны быть объединены в одну запись, а не сохраняться как отдельные записи.
Для решения этой задачи YMatrix поддерживает функцию UPSERT. Подробные примеры использования и инструкции см. в разделе Batched Data Merge Scenario (UPSERT).
Передача с задержкой возникает, когда сбой устройства или нарушение в цепочке сбора данных препятствует своевременной передаче. После восстановления системы данные передаются ретроспективно. Например, автомобиль, находившийся несколько дней в зоне отсутствия сигнала, возобновляет передачу данных после восстановления связи. Такие задержки могут длиться дни или даже недели.
Передача с нарушением порядка происходит, когда после сбоя система сначала передаёт самые свежие данные, а затем постепенно заполняет пропущенные исторические данные. В результате входящие данные могут иметь временные метки, более ранние, чем уже сохранённые.
Поскольку эти два сценария, как правило, не требуют специальной обработки слияния со стороны базы данных, они далее не рассматриваются.
Под разной частотой подразумевается ситуация, когда метрики устройства собираются с разными интервалами. Например, одни метрики собираются каждую секунду, другие — каждые 2 секунды.
Передача данных с разной частотой может привести к большому количеству значений NULL в хранимых данных для метрик с более низкой частотой сбора. Значения NULL всё равно занимают место в хранилище: для таблиц HEAP — это column count / 8 байт; для таблиц MARS2 — RowGroup row count / 8 байт. Поэтому выбор решений следует тщательно оценивать в зависимости от степени появления значений NULL.
YMatrix поддерживает ввод данных из различных источников и в различных форматах. На следующей схеме показаны типичные источники данных и методы их хранения.
Примечание!
Нажмите на значок, чтобы перейти к соответствующей документации.