Выпуск версии

Примечания!
Экспериментальные функции — это функции, присутствующие в определённой версии, но ещё не официально выпущенные. Их синтаксис или реализация может быть изменён или удалён без предварительного уведомления. Пожалуйста, используйте их с осторожностью.

Заметки к выпуску 4.8.12


Исправления ошибок

  1. Движок хранения:
    • Исправлена проблема, при которой возраст таблицы MARS2 не мог быть заморожен (#IAI8EF).

Заметки к выпуску 4.8.11


Исправления ошибок

  1. Движок хранения:
    • Исправлен сбой при наличии нескольких arraykeys с одинаковым attno в индексе mars2_btree. (#7306)
    • Исправлена ошибка сопоставления при передаче brinkey оператора like в MARS2. (#7252)
    • Исправлена проблема, при которой MARS2 возвращал неверные результаты после передачи оператора BRINKEY в режиме UniqueMode. (#7225)
  2. Оптимизатор:
    • Исправлена проблема, при которой оптимизатор выдавал ошибку при преобразовании подзапроса в оператор JOIN для выполнения. (#6524)

Заметки к выпуску 4.8.10


Исправления ошибок

  1. Движок хранения:
    • Исправлена проблема, при которой индекс mars2_btree возвращал данные, не соответствующие условиям запроса, когда условия запроса повторялись. (#6632)
    • Исправлена проблема, при которой индекс mars2_btree возвращал неверные результаты для определённых запросов из-за неполной логики поиска дублирующих ключей сортировки. (#7041)

Заметки к выпуску 4.8.9


Улучшения и дополнения

Enhancements and Improvements

  1. MatrixGate:
    • Поддержка включения или отключения автоматической настройки количества слотов для указанных задач, а также поддержка запроса статуса настройки всех задач или указанных задач. (Документация)
    • Введён параметр --abort-by-pause-timeout в категории [writer.stream]. Поддерживает отказ от данных, накопленных в памяти, когда задача (Job) переходит в состояние паузы, на основе тайм-аута, указанного этим параметром. (Документация)
    • Поддержка пакетной записи данных типа JSON через HTTP. (Документация)

Исправления ошибок

  1. MatrixGate:
    • Исправлена проблема, при которой миграция данных завершалась неудачей и прекращалась, когда количество соединений каналов данных превышало количество сегментов в исходном кластере в режиме миграции. (#6800)
    • Исправлена проблема, при которой MatrixGate (mxgate) не реагировал на изменения языка определения данных (DDL) и не обновлял задачи автоматически после отказа основного узла (Master) и автоматического переключения на резервный узел (Standby) во время отказоустойчивого переключения. (#6850)
    • Исправлена проблема, при которой служба mxgate, настроенная через функцию потока данных Kafka в MatrixUI, многократно перезапускалась процессом supervisor, если целевая таблица не существовала. (#6928-1)
  • Исправлена проблема, при которой одновременный запуск нескольких потоков данных Kafka в нескольких окнах браузера мог вызвать конфликт порта mxgate на стороне сервера. (#6928-2)
  • Исправлена проблема, при которой MatrixGate мог не продолжить извлечение данных из consumer-group после перезапуска/сбоя базы данных при использовании режима consumer-group с источником данных Kafka. (#6848)
  • Улучшена семантика сопоставления JSON: ввод { “key”: null } теперь сопоставляет ключ со значением NULL в базе данных. (#6536)
  • Исправлена проблема, при которой после приостановки задачи с помощью команды mxgate pause (без параметра -X) mxgate не мог быть остановлен с помощью mxgate stop или Ctrl+C. (#6519)
  • Исправлена проблема конфликта между изменением DDL таблицы данных, попыткой функции автоматической настройки слотов изменить статус задачи и состоянием приостановленной задачи. (#6436)
  • При сопоставлении строк данных с JSON, если для каждого столбца, требующего сопоставления, в текущей строке данных не найдено соответствующего ключа, строка помечается как недействительная, и пустая строка не вставляется в базу данных. (#6488)
  • Улучшены производительность и использование памяти компонента ведения журналов mxgate. (#6242)
  • Исправлена проблема, при которой mxgate не мог автоматически создать расширение matrixts, если путь поиска по умолчанию базы данных не был установлен в «public». (#6430)
  • Исправлена проблема, при которой отчёты метрик от mxgate watch становились неясными при использовании нескольких процессов mxgate в одной базе данных. (#5848)
  • Оптимизировано время освобождения пула памяти в компоненте plain transform, что снизило использование памяти процессом mxgated. (#6071)
  • Оптимизирован цикл освобождения памяти для обработчиков сжатия zstd, что снизило использование памяти процессом mxgated. (#6299)
  • Исправлена проблема, при которой сеансы базы данных, установленные MatrixGate, не могли обновляться периодически, когда в кластере был резервный узел. (#6308)
  1. Графический интерфейс:
    • Исправлена проблема, при которой страница не отображалась из-за ошибки JavaScript при поиске на странице потока данных. Затронутые версии — 4.8.7 и 4.8.8. (#6977-1)
  • Исправлена проблема взаимодействия, при которой страница автоматически обновлялась и переходила в начало страницы после ручной прокрутки, вместо того чтобы оставаться в исходной позиции прокрутки. (#6977-2)

Заметки к выпуску 4.8.8


Исправления ошибок

  1. Ядро запросов:
    • Исправлена проблема, при которой выполнение оператора WITH в определённых сценариях приводило к сбою кластера.

Заметки к выпуску 4.8.7


Исправления ошибок

  1. Межсоединение:
    • Исправлен сбой, вызванный некорректным освобождением TCP-соединений при определённых условиях.
  2. Инструменты:
    • Исправлена проблема недостаточных прав доступа к инструменту mxpacklogs в некоторых системах.

Заметки к выпуску 4.8.6


Исправления ошибок

  1. MatrixGate:
    • Исправлена проблема, при которой MatrixGate не мог возобновить задачи из-за внутренних тайм-аутов во время автоматического секционирования таблиц данных, что приводило к сбоям при вводе данных. (#6165)
  2. База данных YMatrix:
    • Исправлена проблема, при которой освобождение соединений приводило к чрезмерному использованию памяти базой данных. (#5826)

Заметки к выпуску 4.8.5


Исправления ошибок

  1. MatrixGate:
    • Исправлена проблема, при которой все таблицы становились недоступными для записи после активации MatrixGate автоматического управления секциями.
  2. Ядро выполнения:
    • Исправлены ошибки запросов, вызванные некорректными настройками типа оператора.

Заметки к выпуску 4.8.4


Исправления ошибок

  1. Движки хранения:
    • Исправлена проблема сбоев, вызванная движком хранения AOCS во время сканирования индексов.
    • Исправлена проблема сбоев, вызванная определением более чем 32 индексов minmax в движке хранения MARS2.
  2. MatrixGate:
    • Исправлена проблема чрезмерного использования памяти MatrixGate при запуске сжатия.
    • Исправлена внутренняя логическая ошибка, вызванная тайм-аутами соединений в MatrixGate.
  3. MatrixManager:
    • Исправлено чрезмерное использование памяти, вызванное тем, что MatrixMgr долгое время не освобождал соединения.
  4. Инструменты:
    • Исправлена ошибка, возникающая при выполнении операций экспорта DDL в mxshift.

Заметки к выпуску 4.8.3


Выпуск функций

  1. Улучшения функциональности mxshift (документация):
    • В категорию [database.source] файла конфигурации добавлен параметр install-dir. Этот параметр заменяет исходный параметр gphome в категории [scope] и используется для настройки пути установки базы данных.
    • В категорию [database.source] файла конфигурации добавлена новая опция конфигурации hostname-to-ip, поддерживающая указание IP-адреса, соответствующего имени хоста.

Исправления ошибок

  1. Ядро выполнения:
    • Исправлен сбой, вызванный обработкой логики группировки функцией скользящего окна.
  2. Инструменты:
    • Исправлена ошибка разбора, вызванная специальными символами в pgbench.
  3. MatrixGate:
    • Исправлена проблема, при которой MatrixGate блокировал вставку данных в другие таблицы при блокировке таблицы.

Заметки к выпуску 4.8.2


Выпуск функций

  1. Обновление MatrixGate:
    • Поддержка наблюдения за полным процессом записи данных, используется для отладки производительности передачи данных от MatrixGate к Segment. (Документ)
    • Поддержка горячего обновления уровней логирования MatrixGate. (Документ)
    • [Экспериментальные функции] Предоставлена поддержка разбора и сопоставления данных в формате JSON для всех типов источников данных (http/stdin/kafka/transfer/grpc) в параметре --source. (Документ)
    • [Экспериментальные функции] Параметр --dml-template поддерживает прием данных в формате TEXT/CSV. (Документ)
    • После ручного переключения Master на Standby, информация метрик, записываемая в MatrixGate, будет переключена на Standby.
    • Скорость значительно увеличилась при транзакции, не выполняющей операцию записи данных.
  2. Улучшение функций mxshift (документ):
    • Реализация миграции DDL таблиц данных в единицах базы данных, с возможностью выбора миграции только DDL.
    • [Экспериментальные функции] Поддержка экспорта DDL таблиц данных в файлы.
    • [Экспериментальные функции] Поддержка прямого импорта файлов DDL таблиц данных или их модификации с последующим параллельным импортом в базу данных.
  3. Обновление графического интерфейса:
    • Страница развертывания полностью обновлена, шаги стали проще. (Документ)
    • Страница расширения полностью обновлена, шаги стали легче. (Документ)
    • Добавлена функция проверки статуса высокой доступности Segment. (Документ)
    • Обновление страницы мониторинга состояния для оптимизации внешнего вида страницы. (Документ)
    • Обновление документации для быстрого старта, добавлены страницы тестов записи и запросов. (Документ)
  4. Улучшение мониторинга:
    • Поддержка пользовательских скриптов мониторинга: позволяет пользователям изменять скрипты мониторинга при развертывании Grafana/Prometheus через mxmgr_init_local() или mxmgr_init_exporter() для самостоятельной разработки проектов мониторинга. (Документ)

Исправление ошибок

  1. Движок хранения:
    • Исправлена проблема, при которой движок хранения MARS2 работал некорректно при обработке ключей сортировки типа text.
    • Исправлена проблема, при которой сжатие движка хранения AOCO вызывало ошибки памяти.
    • Исправлена ошибка, при которой диагностический инструмент хранения datainspect завершался сбоем.
    • Исправлена проблема переполнения xid в движке хранения MARS2.
  2. Цилиндр:
    • Исправлена ошибка, при которой скользящее окно не могло срабатывать.
    • Исправлена ошибка, при которой инструкции APM/TBS/SV не могли срабатывать после расширения и перераспределения данных с определённой вероятностью.
  3. MatrixGate:
    • Исправлена проблема, при которой некоторые HTTP-запросы, вставляющие данные в базу данных в MatrixGate, не отвечали при перезапуске или возобновлении YMatrix.
    • Исправлена проблема, при которой очередь записи MatrixGate блокировалась при удалении или изменении пользователем целевой таблицы, что приводило к зависанию поступления других транзакций.
    • Исправлена проблема, при которой MatrixGate не сообщал об ошибке при разборе неверных данных JSON вида "1,2,3".
  4. MatrixManager:
    • Исправлена проблема, при которой перезапуск mxstat завершался неудачей.
    • Исправлена проблема, при которой mxstat иногда завершался аварийно при выходе процесса.
  5. Ядро запросов:
    • Исправлена проблема, при которой настройки кодировки клиента были некорректны в режиме прямой маршрутизации.
    • Исправлена проблема, при которой операторы COPY некорректно обрабатывали недопустимые параметры.

Заметки к выпуску 4.8.1


Выпуск функций

  1. Добавлен новый диагностический инструмент хранения Datainspect. Этот инструмент доступен только для таблиц MARS2. (Документ)
  2. Улучшены функции JAVA SDK MatrixGate, значительно повышена производительность записи. (Документ)
  3. Обновление графического интерфейса:
    • На странице мониторинга запросов добавлена функция мониторинга блокирующих сеансов. (Документ)
    • Страница управления кластером полностью обновлена, разделена на три секции: просмотр показателей, просмотр экземпляров и просмотр списка. (Документ)

Исправление ошибок

  1. Движок хранения:
    • При участии таблицы MARS2 в соединении nestloop результат был неверным из-за неполной передачи параметров сканирования индекса.
  2. Группы ресурсов:
    • Исправлена проблема, при которой группы ресурсов аварийно завершались при обработке SIGTERM.
  3. Оптимизатор:
    • Исправлена проблема сбоев CTE из-за отсутствия параллельного выполнения.
    • Исправлена ошибка при некорректной обработке вычислений подпланов при запуске ORCA.
  4. Ядро выполнения:
    • Исправлена проблема, при которой Share CTE приводил к зависанию операции из-за некорректной обработки Direct Dispatch.

Заметки к выпуску 4.8.0


Выпуск функций

  1. Обновление MatrixGate:
    • Поддержка передачи сжатых данных ZSTD в Segment. (Документ)
    • Поддержка упрощённого кода записи данных через интегрированный JAVA SDK. (Документ)
  2. Новый графический интерфейс:
    • Интерфейс мониторинга состояния, позволяет своевременно получать письма с оповещениями, настроив свой адрес электронной почты. (Документ)
    • Функция тёплого обновления, поддерживает отдельное обновление графических интерфейсов. (Документ)
  3. mxbackup поддерживает плагин объектного хранилища S3 для загрузки данных в объектное хранилище S3. (Документ)
  4. Улучшение функций mxshift. (Документ)
  5. Добавлены инструменты сбора и упаковки журналов mxpacklogs. (Документ)
  6. Поддержка платформы Ubuntu20. (Документ)
  7. Улучшение элементов мониторинга Grafana. (Документ)

Исправление ошибок

  1. Оптимизатор:
    • Исправлены ошибки, вызванные обработкой повторяющихся сканирований в плане параметризованного пути соединения nestloop.

Заметки к выпуску 4.7.5


Исправление ошибок

  1. MatrixManager:
    • Исправлена проблема неточного времени фактического выполнения SQL при получении медленных запросов.

Заметки к выпуску 4.7.4


Исправление ошибок

  1. Оптимизатор:
    • Исправлена ошибка, возникающая, когда ключ распределения Redistration Motion содержит Param в плане запроса.

Заметки к выпуску 4.7.3


Исправление ошибок

  1. Движок хранения:
    • Исправлена проблема, при которой таблица MARS2 на зеркальном узле не полностью удаляла требуемые файлы при обработке vacuum.

Заметки к выпуску 4.7.2


Исправление ошибок

  1. Оптимизатор:
    • Исправлена ошибка, связанная с константными значениями при выполнении Redistration Motion.

4.7.1 Примечания к выпуску


Исправление ошибок

  1. MatrixManager:
    • Исправлена ошибка, при которой сбой mxstat приводил к аварийному завершению операции при сохранении снимков.

Примечания к выпуску 4.7.0


Новый функционал

  1. Поддержка синтаксиса CREATE INDEX CONCURRENTLY. (Документация)
  2. Добавлен новый инструмент миграции данных — mxshift. (Документация)

Исправление ошибок

  1. Ядро выполнения:
    • Исправлена проблема, при которой операция Copy некорректно обрабатывала прерывание, что приводило к зависанию.
    • Исправлены проблемы переполнения памяти при создании большого количества секционированных таблиц.
  2. Движок хранения:
    • Исправлена проблема неточных оценок размера relsize для таблиц AOCS только на мастер-узле.
  3. Инструменты:
    • Исправлена ошибка, при которой Analyze неправильно обрабатывал специальные символы.
  4. Оптимизатор:
    • Исправлена ошибка, при которой рекурсивный CTE формировал неверный план запроса в условиях использования Merge Join.

Примечания к выпуску 4.6.1


  1. Обновление MatrixGate:
    • Для JSON-данных, подключённых через Kafka, добавлена поддержка пользовательского сопоставления полей JSON с колонками данных с помощью параметра dml-template.
    • Добавлен механизм аутентификации Kafka. Реализована поддержка SCRAM через фреймворк SASL.
  2. Исправлены известные ошибки.

Примечания к выпуску 4.6.0


  1. Производительность агрегирующих запросов в хранилище MARS2 значительно оптимизирована.
  2. Полное обновление графического интерфейса:
    • Обновлён внешний вид, улучшен визуальный опыт.
    • Добавлена удобная функция однократного запуска типовых бизнес-сценариев. (Документация)
    • Запись потока данных из Kafka поддерживает автоматическое создание таблиц MARS2. (Документация)
    • Добавлено расширение графического интерфейса. (Документация)
  3. Обновление MatrixGate:
    • Добавлена возможность параллельного изменения параметров записи без остановки сервиса. (Документация)
    • Добавлена возможность обновления структуры таблицы без остановки сервиса. (Документация)
    • Режим миграции больше не требует большого количества последовательных портов.
    • Поддержка вызова внутри UDF.
  4. Обновление страницы мониторинга Grafana, добавлена поддержка мониторинга данных Prometheus. (Документация)
  5. Поддержка отечественных платформ: операционная система Galaxy Kirin V10 + платформа ARM.
  6. Исправлены известные ошибки.

Примечания к выпуску 4.5.0


  1. Официальный выпуск движка хранения MARS2, значительная оптимизация сценария UPSERT, фоновое автоматическое сжатие, исключён процесс ротации таблиц. (Документация)
  2. Добавлен компонент статистики запросов, позволяющий отслеживать время выполнения и потребление ресурсов. (Документация)
  3. Обновление MatrixGate (документация):
    • Поддержка преобразования произвольных столбцов в timestamp.
    • Добавлена функция просмотра метрик в реальном времени и за исторический период для данных, записываемых через MatrixGate.
    • Поддержка типа boolean в операциях UPSERT.
  4. Обновление mxbench: пользователи могут гибко настраивать типы показателей, частоту сбора, долю NULL-значений, степень случайности и т.д. (Документация)
  5. Добавлена поддержка скользящего окна для потоковых вычислений, анализа и мониторинга потоковых данных, включая подписку и публикацию. (Документация)
  6. Поддержка Kubernetes: кластеры MatrixDB теперь можно развернуть на k8s. (Документация)

Примечания к выпуску 4.4.0


  1. Обновление MatrixGate (документация)
    • Поддержка дедупликации в операциях UPSERT.
    • Добавлены параметры --insert-timeout и --request-timeout для управления таймаутами, предотвращающими лавинообразные сбои при высокой нагрузке.
  2. Переработан процесс доступа к данным Kafka, добавлена поддержка двух форматов данных и настройка соответствия полей: CSV и JSON. (Документация)
  3. Обновление страницы автоматического управления секциями. (Документация)
  4. Оператор INSERT INTO SELECT поддерживает параллельное сканирование.
  5. Обновлена страница мониторинга Grafana: панель разделена на системную и базовую, добавлены описания на китайском языке. (Документация)
  6. PXF обновлён до версии 6.2.1, пропускная способность увеличилась в 2–5 раз при работе с большим количеством мелких файлов.

Примечания к выпуску 4.3.10


В версии 4.3.10 исправлены следующие ошибки:

  1. Проблема невозможности запуска зеркала после сбоя Segment.
  2. В некоторых случаях доступ UDF к каталогу приводит к сбою QD.
  3. Сбой при добавлении фильтра при доступе PXF к Hive ORC.

Примечания к выпуску 4.3.0


  1. Непрерывная агрегация
    • Непрерывная агрегация в режиме реального времени синхронизирует данные исходной таблицы через материализованные представления, выполняя сортировку и слияние, что делает агрегирующие запросы более эффективными. (См. Документацию)
  2. Поддержка пространственных типов данных
    • Разработана усовершенствованная версия компонента PostGIS, обеспечивающая полноценную поддержку хранения и обработки пространственных данных. (См. Документацию)
  3. Обновление MatrixGate
    • Улучшен механизм отказоустойчивости при доступе к данным: единичная ошибка формата данных не влияет на остальные данные в пакете. (См. Документацию)
    • Управление журналами MatrixGate: поддержка автоматического архивирования и очистки.
    • Добавлен режим миграции для эффективной синхронизации таблиц из других кластеров Greenplum5, Greenplum6 и YMatrix Database. (См. Документацию)
  4. Визуализация таблиц данных
    • На странице управления добавлен визуальный раздел таблиц данных, позволяющий легко просматривать состояние баз данных и таблиц кластера. (См. Документацию)
  5. Графическое управление автоматическим секционированием
    • Возможность настройки секционированных таблиц и стратегий автоматического управления через графический интерфейс. (См. Документацию)
  6. Обновление движка хранения MARS
    • tag_id поддерживает дополнительные типы данных: text, varchar, name и numeric, помимо целочисленных; поддерживается несколько ключей группировки, то есть использование нескольких столбцов в качестве tag_id.
    • Движок MARS поддерживает операцию merge scan, позволяя обновлять существующие данные через слияние.

Примечания к выпуску 4.2.0


  1. Оптимизация движка MARS
    • Введён интеллектуальный алгоритм сжатия, который определяет необходимость сжатия на основе типа и характеристик данных. После применения нового кодирования и сжатия объём хранилища сократился на 70%.
    • Повышена производительность запросов: для запросов, отсортированных по временным меткам, задержка сократилась в тысячи раз — с уровня секунд до миллисекунд.
    • Значительно снижено потребление памяти при выполнении запросов: использование памяти в операторе SELECT снизилось на 90%.
  2. MatrixGate поддерживает UPSERT, что актуально для следующих сценариев (см. Документацию):
    • Устройства могут повторно отправлять данные или корректировать временные метки с ошибками.
    • Пакетная отправка данных разных категорий с возможностью автоматического объединения.
  3. Поддержка слияния и сжатия при переходе между «горячими» и «холодными» уровнями: для упрощения конвертации «горячих» данных в «холодные» в секционированных таблицах возможно объединение нескольких секций. Это снижает нагрузку на управление секциями и упрощает администрирование. См. Документацию
  4. Впервые представлены инструменты параллельного резервного копирования и восстановления: YMatrix Database представляет два новых инструмента — mxbackup и mxrestore. По сравнению с pg_dump и pg_restore из PostgreSQL они поддерживают параллельную обработку и обеспечивают более высокую эффективность резервного копирования и восстановления. См. Документацию

Примечания к выпуску


  1. Добавлен пользовательский тип данных mxkv для хранения пар «ключ-значение», что упрощает расширение дополнительных полей и обеспечивает лучшую производительность по сравнению с типом JSON.
  2. Поддержка доступа к данным Kafka и графического интерфейса управления.
  3. Предоставлены функции автоматического управления секциями. Пользователи могут настраивать политики секционирования, а фоновые процессы автоматически выполняют управление секциями.

Примечания к выпуску 4.0.3


  1. Добавлена визуальная установка многомашинного кластера.
  2. Исправлена ошибка MARS при увеличении числа секций.

Примечания к выпуску 4.0.2


  1. Сжатие MARS включено по умолчанию.
  2. Обеспечен плавный переход файла supervisor.conf после обновления.
  3. Параллельная оптимизация gapfill.

Примечания к выпуску 4.0.1


  1. Исправлена ошибка, связанная с отсутствием экранирования имён столбцов в функции building_timeseries_table.
  2. Оптимизация движка MARS.

Примечания к выпуску 4.0.0


YMatrix Database 4.0.0 официально выпущен. Новая версия включает следующие новые функции:

  1. Движок MARS MARS — это собственный движок хранения, обладающий следующими возможностями:
    • Хранение в столбцах
    • Кодирование и сжатие данных
    • Оптимизация push-down агрегаций
    • Оптимизация сканирования без индексов

Подходит для хранения исторических «холодных» данных в сценариях работы с временными рядами, обеспечивая чрезвычайно высокую производительность агрегирующих запросов по временным меткам.

На данный момент MARS поддерживает только операции вставки, обновление и удаление не поддерживаются.

  1. Автоматическое развёртывание многонодового кластера
    На основе автоматического развёртывания однодоменного кластера YMatrix Database 3 реализовано автоматическое развёртывание многонодового кластера. Включает:
    • Добавление узлов кластера
    • Настройку количества сегментов на каждом узле
    • Настройку включения автоматического зеркалирования данных

Развёртывание кластера занимает менее 5 минут.

Подробности см. в Развертывание кластера YMatrix Database 4. 3. UDF для горячего и холодного хранения Для упрощения создания секций для таблиц временных рядов, управления ими и конвертации «горячих» и «холодных» данных реализован полный набор интерфейсов управления: создание шаблонов секций, создание секций, замена «горячих» и «холодных» секций.

Подробности см. в Горячее и холодное раздельное хранение.

  1. time_bucket_gapfill
    В компоненте временных рядов MatrixTS добавлена функция time_bucket_gapfill, основанная на time_bucket. Позволяет заполнять пропущенные временные интервалы по заданным правилам.

Поддерживаются два правила заполнения:

  • locf: заполнение значениями, которые встречались ранее в группе агрегации.
  • interpolate: линейная интерполяция пропущенных значений.