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

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

Предварительные требования

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

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

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

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

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

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

  • Full access: с полным доступом к кластеру. Это может быть полезно, если вы используете материализованное представление или словарь с целевой таблицей.
  • Only destination table: с разрешениями 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 с ключами и значениями используя любой из вышеупомянутых типов (включая Nullables)
  • Tuple и Array с элементами, используя любой из вышеупомянутых типов (включая Nullables, только одна глубина)

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

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

НазваниеОписаниеРекомендуемый тип данных
_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.