Перейти к основному содержимому
Перейти к основному содержимому

Интеграция Amazon Kinesis с ClickHouse Cloud

Требования

Вы ознакомились с введением в ClickPipes и настроили учетные данные IAM или IAM роль. Следуйте руководству по доступу на основе ролей Kinesis для получения информации о том, как настроить роль, которая работает с ClickHouse Cloud.

Создание вашего первого ClickPipe

  1. Получите доступ к SQL Console для вашей службы ClickHouse Cloud.
Служба ClickPipes
  1. Выберите кнопку Источники данных в левом меню и нажмите на "Настроить ClickPipe"
Выберите импорты
  1. Выберите ваш источник данных.
Вы�бор типа источника данных
  1. Заполните форму, указав вашему ClickPipe имя, описание (по желанию), вашу IAM роль или учетные данные и другие детали подключения.
Заполните данные для подключения
  1. Выберите поток Kinesis и начальное смещение. Интерфейс отобразит пример документа из выбранного источника (тема Kafka и т.д.). Вы также можете включить Enhanced Fan-out для потоков Kinesis, чтобы улучшить производительность и стабильность вашего ClickPipe (больше информации о Enhanced Fan-out можно найти здесь)
Установите формат данных и тему
  1. На следующем шаге вы можете выбрать, хотите ли вы загружать данные в новую таблицу ClickHouse или использовать существующую. Следуйте инструкциям на экране, чтобы изменить имя, схему и настройки вашей таблицы. Вы можете увидеть предварительный просмотр ваших изменений в образце таблицы вверху.
Установите таблицу, схему и настройки

Вы также можете настроить дополнительные параметры, используя предоставленные элементы управления

Настройте дополнительные параметры
  1. В качестве альтернативы вы можете решить загружать ваши данные в существующую таблицу ClickHouse. В этом случае интерфейс позволит вам сопоставить поля из источника с полями ClickHouse в выбранной целевой таблице.
Используйте существующую таблицу
  1. Наконец, вы можете настроить разрешения для внутреннего пользователя ClickPipes.

Разрешения: ClickPipes создаст отдельного пользователя для записи данных в целевую таблицу. Вы можете выбрать роль для этого внутреннего пользователя, используя настраиваемую роль или одну из предопределенных:

  • Полный доступ: с полным доступом к кластеру. Это может быть полезно, если вы используете Materialized View или Dictionary с целевой таблицей.
  • Только целевая таблица: с разрешениями INSERT только для целевой таблицы.
Разрешения
  1. Нажимая "Завершить настройку", система зарегистрирует ваш ClickPipe, и вы увидите его в сводной таблице.
Уведомление об успешном завершении Уведомление об удалении

Сводная таблица предоставляет элементы управления для отображения образцовых данных из источника или целевой таблицы в ClickHouse

Просмотр целевой таблицы

А также элементы управления для удаления ClickPipe и отображения сводки задания по загрузке.

Просмотр обзора
  1. Поздравляем! Вы успешно настроили ваш первый ClickPipe. Если это потоковый ClickPipe, он будет работать постоянно, загружая данные в реальном времени из вашего удаленного источника данных. В противном случае он загрузит пакет и завершит работу.

Поддерживаемые форматы данных

Поддерживаемые форматы:

Поддерживаемые типы данных

В ClickPipes в настоящее время поддерживаются следующие типы данных ClickHouse:

  • Основные числовые типы - [U]Int8/16/32/64 и Float32/64
  • Большие целочисленные типы - [U]Int128/256
  • Десятичные типы
  • Логический
  • Строка
  • FixedString
  • Дата, Date32
  • DateTime, DateTime64 (только часовые пояса UTC)
  • Enum8/Enum16
  • UUID
  • IPv4
  • IPv6
  • все типы LowCardinality ClickHouse
  • Map с ключами и значениями, использующими любые из вышеуказанных типов (включая Nullable)
  • Tuple и Array с элементами, использующими любые из вышеуказанных типов (включая Nullable, только один уровень глубины)

Виртуальные колонки Kinesis

Следующие виртуальные колонки поддерживаются для потока Kinesis. При создании новой целевой таблицы виртуальные колонки могут быть добавлены с помощью кнопки Добавить колонку.

НазваниеОписаниеРекомендуемый тип данных
_keyКлюч партиции KinesisString
_timestampПриблизительное время прибытия Kinesis (миллисекундная точность)DateTime64(3)
_streamИмя потока KinesisString
_sequence_numberНомер последовательности KinesisString
_raw_messageПолное сообщение KinesisString

Поле _raw_message может использоваться в случаях, когда требуется только полный JSON-запись Kinesis (например, с использованием функций ClickHouse JsonExtract* для заполнения нижестоящего материализованного представления). Для таких труб может быть целесообразным улучшить производительность ClickPipes, удалив все "невиртуальные" колонки.

Ограничения

  • DEFAULT не поддерживается.

Производительность

Пакетирование

ClickPipes вставляет данные в ClickHouse пакетами. Это необходимо для предотвращения создания слишком большого количества частей в базе данных, что может привести к проблемам с производительностью в кластере.

Пакеты вставляются, когда выполнено одно из следующих условий:

  • Размер пакета достиг максимального размера (100,000 строк или 20MB)
  • Пакет открыт максимальное время (5 секунд)

Задержка

Задержка (определяемая как время между отправкой сообщения Kinesis в поток и доступностью сообщения в ClickHouse) будет зависеть от множества факторов (т.е. задержка Kinesis, задержка сети, размер/формат сообщения). Описание пакетирования в предыдущем разделе также повлияет на задержку. Мы всегда рекомендуем тестировать ваш конкретный случай использования, чтобы понять ожидаемую задержку.

Если у вас есть конкретные требования к низкой задержке, пожалуйста, свяжитесь с нами.

Масштабирование

ClickPipes для Kinesis разработан для горизонтального масштабирования. По умолчанию мы создаем группу потребителей с одним потребителем. Это можно изменить с помощью элементов управления масштабированием в представлении деталей ClickPipe.

ClickPipes обеспечивает высокую доступность с распределенной архитектурой по зонам доступности. Это требует масштабирования как минимум до двух потребителей.

Независимо от количества запущенных потребителей, отказоустойчивость предусмотрена по дизайну. Если потребитель или его инфраструктура выходит из строя, ClickPipe автоматически перезапустит потребителя и продолжит обработку сообщений.

Аутентификация

Для доступа к потокам Amazon Kinesis вы можете использовать учетные данные IAM или IAM роль. Для получения более подробной информации о том, как настроить IAM роль, вы можете обратиться к этому руководству для получения информации о том, как настроить роль, которая работает с ClickHouse Cloud.