Интеграция объектного хранилища с ClickHouse Cloud
ClickPipes для объектного хранилища предоставляет простой и надежный способ загрузки данных из Amazon S3 и Google Cloud Storage в ClickHouse Cloud. Поддерживаются как одноразовые, так и непрерывные загрузки с семантикой exact-once.
Предварительные требования
Вы ознакомились с вводной информацией о ClickPipes.
Создание вашего первого ClickPipe
- В облачной консоли выберите кнопку
Источники данных
в левом меню и нажмите "Настроить ClickPipe".

- Выберите ваш источник данных.

- Заполните форму, предоставив вашему ClickPipe название, описание (по желанию), вашу IAM роль или учетные данные и URL ведра. Вы можете указать несколько файлов, используя подстановочные знаки в стиле bash. Для получения дополнительной информации см. документацию по использованию подстановочных знаков в пути.

- Интерфейс отобразит список файлов в указанном ведре. Выберите свой формат данных (в настоящее время мы поддерживаем подмножество форматов ClickHouse) и решите, хотите ли вы включить непрерывную загрузку Больше деталей ниже.

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

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

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

Вы также можете сопоставить виртуальные колонки, такие как _path
или _size
, с полями.
- Наконец, вы можете настроить разрешения для внутреннего пользователя ClickPipes.
Разрешения: ClickPipes создаст выделенного пользователя для записи данных в таблицу назначения. Вы можете выбрать роль для этого внутреннего пользователя, используя собственную роль или одну из предопределенных ролей:
Полный доступ
: с полным доступом к кластеру. Требуется, если вы используете Materialized View или Dictionary с таблицей назначения.Только таблица назначения
: с правамиINSERT
только для таблицы назначения.

- Нажав на "Завершить настройку", система зарегистрирует ваш ClickPipe, и вы сможете увидеть его в сводной таблице.


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

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

- Поздравляем! Вы успешно настроили ваш первый 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 для получения более подробной информации.