Интеграция объектного хранилища с 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.
- S3 / GCS ClickPipes не разделяют синтаксис списка с Табличной функцией 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 Контроль доступа для получения дополнительной информации.