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

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

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

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

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

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

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

Вы также можете сопоставить виртуальные колонки, такие как _path
или _size
, с полями.
- Наконец, вы можете настроить разрешения для внутреннего пользователя ClickPipes.
Разрешения: ClickPipes создаст специального пользователя для записи данных в целевую таблицу. Вы можете выбрать роль для этого внутреннего пользователя, используя пользовательскую роль или одну из предопределенных ролей:
Полный доступ
: полный доступ к кластеру. Требуется, если вы используете материализованное представление или словарь с целевой таблицей.Только целевая таблица
: разрешения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 роль. Чтобы использовать IAM роль, вам нужно создать IAM роль, как указано в этом руководстве. Скопируйте новый ARN IAM роли после создания и вставьте его в конфигурацию ClickPipe в качестве "IAM ARN роли".
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 для дальнейшей информации.