Табличный движок AzureQueue
Этот движок обеспечивает интеграцию с экосистемой Azure Blob Storage и поддерживает потоковый импорт данных.
Создание таблицы
Параметры движка
Параметры AzureQueue такие же, как у табличного движка AzureBlobStorage. См. раздел с параметрами здесь.
Аналогично табличному движку AzureBlobStorage, пользователи могут использовать эмулятор Azurite для локальной разработки хранилища Azure. Дополнительные сведения см. здесь.
Пример
Settings
Набор поддерживаемых настроек в основном совпадает с настройками для движка таблицы S3Queue, но без префикса s3queue_. См. полный список настроек.
Чтобы получить список настроек, заданных для таблицы, используйте таблицу system.azure_queue_settings. Доступно начиная с версии 24.10.
Ниже приведены настройки, совместимые только с AzureQueue и неприменимые к S3Queue.
after_processing_move_connection_string
Строка подключения к Azure Blob Storage, в которую будут перемещаться успешно обработанные файлы, если в качестве назначения используется другой контейнер Azure.
Возможные значения:
- String.
Значение по умолчанию: пустая строка.
after_processing_move_container
Имя контейнера, в который необходимо переместить успешно обработанные файлы, если целевым контейнером является другой контейнер Azure.
Возможные значения:
- Строка.
Значение по умолчанию: пустая строка.
Пример:
SELECT из движка таблицы AzureQueue
Запросы SELECT по умолчанию запрещены для таблиц AzureQueue. Это соответствует общей модели работы очередей, в которой данные читаются один раз, а затем удаляются из очереди. SELECT запрещён, чтобы предотвратить случайную потерю данных.
Однако иногда это может быть полезно. Для этого необходимо установить настройку stream_like_engine_allow_direct_select в значение True.
Движок AzureQueue имеет специальную настройку для запросов SELECT: commit_on_select. Установите её в False, чтобы сохранить данные в очереди после чтения, или в True, чтобы удалить их.
Описание
SELECT не особенно полезен для потокового импорта (кроме отладки), потому что каждый файл можно импортировать только один раз. Гораздо практичнее создавать потоки в реальном времени с использованием материализованных представлений. Для этого:
- Используйте табличный движок для создания таблицы, потребляющей данные из указанного пути в S3, и рассматривайте её как поток данных.
- Создайте таблицу с требуемой структурой.
- Создайте материализованное представление, которое преобразует данные из табличного движка и записывает их в ранее созданную таблицу.
Когда MATERIALIZED VIEW связывается с табличным движком, оно начинает собирать данные в фоновом режиме.
Пример:
Виртуальные столбцы
_path— Путь к файлу._file— Имя файла.
Дополнительные сведения о виртуальных столбцах см. здесь.
Интроспекция
Включите логирование для таблицы с помощью настройки таблицы enable_logging_to_queue_log=1.
Возможности интроспекции такие же, как у движка таблиц S3Queue, с несколькими важными отличиями:
- Используйте
system.azure_queueдля представления состояния очереди в памяти для версий сервера >= 25.1. Для более старых версий используйтеsystem.s3queue(он также будет содержать информацию для таблицazure). - Включите
system.azure_queue_logчерез основную конфигурацию ClickHouse, например:
Эта постоянная таблица содержит ту же информацию, что и system.s3queue, но для обработанных и завершившихся ошибкой файлов.
Таблица имеет следующую структуру:
Пример: