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

Интеграция объектного хранилища с ClickHouse Cloud

ClickPipes для объектного хранилища предоставляет простой и надежный способ загрузки данных из Amazon S3 и Google Cloud Storage в ClickHouse Cloud. Поддерживаются как одноразовые, так и непрерывные загрузки с семантикой exact-once.

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

Вы ознакомились с вводной информацией о ClickPipes.

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

  1. В облачной консоли выберите кнопку Источники данных в левом меню и нажмите "Настроить ClickPipe".
Выберите импорты
  1. Выберите ваш источник данных.
Выберите тип источника данных
  1. Заполните форму, предоставив вашему ClickPipe название, описание (по желанию), вашу IAM роль или учетные данные и URL ведра. Вы можете указать несколько файлов, используя подстановочные знаки в стиле bash. Для получения дополнительной информации см. документацию по использованию подстановочных знаков в пути.
Заполните детали подключения
  1. Интерфейс отобразит список файлов в указанном ведре. Выберите свой формат данных (в настоящее время мы поддерживаем подмножество форматов ClickHouse) и решите, хотите ли вы включить непрерывную загрузку Больше деталей ниже.
Укажите формат данных и тему
  1. На следующем шаге вы можете выбрать, хотите ли вы загружать данные в новую таблицу ClickHouse или использовать существующую. Следуйте инструкциям на экране для изменения имени таблицы, схемы и настроек. Вы можете увидеть предварительный просмотр ваших изменений в образце таблицы в верхней части.
Укажите таблицу, схему и настройки

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

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

Вы также можете сопоставить виртуальные колонки, такие как _path или _size, с полями.

  1. Наконец, вы можете настроить разрешения для внутреннего пользователя ClickPipes.

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

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

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

Просмотреть назначение

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

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

Поддерживаемые источники данных

НазваниеЛоготипТипСтатусОписание
Amazon S3Объектное хранилищеСтабильныйНастройте ClickPipes для загрузки больших объемов данных из объектного хранилища.
Google Cloud StorageОбъектное хранилищеСтабильныйНастройте ClickPipes для загрузки больших объемов данных из объектного хранилища.

В ClickPipes будут добавлены дополнительные соединители, вы можете узнать больше, связавшись с нами.

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

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

Семантика Exactly-Once

Различные типы сбоев могут происходить при загрузке больших наборов данных, что может привести к частичным вставкам или дублирующим данным. ClickPipes для объектного хранилища устойчивы к сбоям вставки и обеспечивают семантику exactly-once. Это достигается с помощью временных "промежуточных" таблиц. Данные сначала вставляются в промежуточные таблицы. Если что-то пойдет не так с этой вставкой, промежуточную таблицу можно обрезать, и вставку можно повторить с чистого состояния. Только когда вставка завершена и успешна, разделы в промежуточной таблице перемещаются в целевую таблицу. Чтобы узнать больше об этой стратегии, прочитайте этот пост в блоге.

Поддержка представлений

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

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

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

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

Чтобы увеличить пропускную способность больших загрузок, мы рекомендуем масштабировать службу ClickHouse перед созданием ClickPipe.

Ограничения

  • Любые изменения в таблице назначения, ее материализованных представлениях (включая каскадные материализованные представления) или целевых таблицах материализованных представлений не будут автоматически учтены трубопроводом и могут привести к ошибкам. Вы должны остановить трубопровод, внести необходимые изменения, а затем перезапустить трубопровод, чтобы изменения были учтены и избежать ошибок и дублирующих данных из-за повторных попыток.
  • Есть ограничения на типы представлений, которые поддерживаются. Пожалуйста, прочитайте раздел о семантике exactly-once и поддержке представлений для получения дополнительной информации.
  • Аутентификация по ролям недоступна для ClickPipes S3 для экземпляров ClickHouse Cloud, развернутых в GCP или Azure. Поддерживается только для экземпляров ClickHouse Cloud на AWS.
  • ClickPipes будут пытаться загружать объекты размером 10 ГБ или менее. Если файл превышает 10 ГБ, сообщение об ошибке будет добавлено в специальную таблицу ошибок ClickPipes.
  • ClickPipes S3 / GCS не используют синтаксис перечисления с функцией таблицы S3.
    • ? — заменяет любой один символ.
    • * — заменяет любое количество любых символов, включая пустую строку.
    • ** — заменяет любое количество любых символов, включая пустую строку.
примечание

Это допустимый путь:

https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/**.ndjson.gz

Это недопустимый путь. {N..M} не поддерживаются в ClickPipes.

https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/{documents-01,documents-02}.ndjson.gz

Непрерывная загрузка

ClickPipes поддерживают непрерывную загрузку как из S3, так и из GCS. Когда включено, ClickPipes будет непрерывно загружать данные из указанного пути, будет опрашивать новые файлы с частотой один раз в 30 секунд. Однако новые файлы должны быть лексически больше, чем последний загруженный файл, что означает, что они должны быть названы таким образом, чтобы определить порядок загрузки. Например, файлы под названиями file1, file2, file3 и т. д. будут загружаться последовательно. Если новый файл добавлен с именем таким, как file0, ClickPipes не загрузит его, потому что он не лексически больше последнего загруженного файла.

Архивная таблица

ClickPipes создаст таблицу рядом с вашей целевой таблицей с постфиксом s3_clickpipe_<clickpipe_id>_archive. Эта таблица будет содержать список всех файлов, которые были загружены ClickPipe. Эта таблица используется для отслеживания файлов во время загрузки и может быть использована для проверки того, что файлы были загружены. Архивная таблица имеет TTL 7 дней.

примечание

Эти таблицы не будут видны с использованием SQL-консоли ClickHouse Cloud, вам нужно будет подключиться через внешний клиент, используя HTTPS или нативное соединение, чтобы прочитать их.

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

S3

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

GCS

Как и в случае с S3, вы можете получить доступ к публичным ведрам без конфигурации, а для защищенных ведер вы можете использовать HMAC ключи вместо учетных данных AWS IAM. Вы можете ознакомиться с этим руководством от Google Cloud о настройке таких ключей.

Служебные аккаунты для GCS напрямую не поддерживаются. Учетные данные HMAC (IAM) должны использоваться при аутентификации с непубличными ведрами. Разрешения служебного аккаунта, прикрепленные к учетным данным HMAC, должны быть storage.objects.list и storage.objects.get.

Вопросы и ответы

  • Поддерживает ли ClickPipes ведра GCS с префиксом gs://?

Нет. По причинам совместимости мы просим вас заменить префикс ведра gs:// на https://storage.googleapis.com/.

  • Какие разрешения требуются публичному ведру GCS?

allUsers требует соответствующего назначения роли. Роль roles/storage.objectViewer должна быть назначена на уровне ведра. Эта роль предоставляет разрешение storage.objects.list, которое позволяет ClickPipes перечислять все объекты в ведре, что необходимо для подключения и загрузки. Эта роль также включает разрешение storage.objects.get, которое требуется для чтения или загрузки отдельных объектов в ведре. См.: Контроль доступа Google Cloud для получения более подробной информации.