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

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

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

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

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

  1. Получите доступ к SQL консоли для вашего ClickHouse Cloud Service.
  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 создаст выделенного пользователя для записи данных в целевую таблицу. Вы можете выбрать роль для этого внутреннего пользователя, используя собственную роль или одну из предопределенных ролей:

  • Полный доступ: с полным доступом к кластеру. Это может быть полезно, если вы используете материализованное представление или словарь с целевой таблицей.
  • Только целевая таблица: с разрешениями 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
  • все типы ClickHouse LowCardinality
  • 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 можно использовать в случаях, когда требуется только полная запись Kinesis в формате JSON (например, при использовании функций 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.