Поддерживаемые форматы
Возможности
Одноразовая ингестия
Непрерывная ингестия
Лексикографический порядок
file1, file2 и file3 будут приниматься последовательно, но если в бакет будет добавлен новый file 0, он будет проигнорирован, поскольку имя этого файла не лексикографически больше имени последнего принятого файла.
В этом режиме GCS ClickPipe выполняет начальную загрузку всех файлов по указанному пути, а затем с настраиваемым интервалом проверяет наличие новых файлов (по умолчанию — каждые 30 секунд). Невозможно начать ингестию с определённого файла или момента времени — ClickPipes всегда загружает все файлы по указанному пути.
В любом порядке
Неупорядоченный режим не поддерживается для публичных бакетов. Для него требуется аутентификация через Service Account и подписка Google Cloud Pub/Sub, подключённая к бакету.
OBJECT_FINALIZE через подписку Pub/Sub, соответствующие указанному пути. Любые сообщения о ранее обнаруженном файле, файле, не соответствующем пути, или событии другого типа будут игнорироваться. Невозможно начать ингестию с определённого файла или момента времени — ClickPipes всегда загружает все файлы по выбранному пути.
Сопоставление имён файлов по шаблону
data-2024-*.csv вместо *.csv).
Поддерживаемые шаблоны
| Шаблон | Описание | Пример | Совпадения |
|---|---|---|---|
? | Соответствует ровно одному символу (кроме /) | data-?.csv | data-1.csv, data-a.csv, data-x.csv |
* | Соответствует любому количеству символов (включая ноль, кроме /) | data-*.csv | data-1.csv, data-001.csv, data-report.csv, data-.csv |
** Рекурсивный | Соответствует любому количеству символов (включая /). Позволяет рекурсивно обходить каталоги. | logs/**/error.log | logs/error.log, logs/2024/error.log, logs/2024/01/error.log |
https://bucket.s3.amazonaws.com/folder/*.csvhttps://bucket.s3.amazonaws.com/logs/**/data.jsonhttps://bucket.s3.amazonaws.com/file-?.parquethttps://bucket.s3.amazonaws.com/data-2024-*.csv.gz
Неподдерживаемые шаблоны
| Шаблон | Описание | Пример | Альтернативы |
|---|---|---|---|
{abc,def} | Раскрытие в фигурных скобках — варианты | {logs,data}/file.csv | Создайте отдельные ClickPipes для каждого пути. |
{N..M} | Раскрытие числового диапазона | file-{1..100}.csv | Используйте file-*.csv или file-?.csv. |
https://bucket.s3.amazonaws.com/{documents-01,documents-02}.jsonhttps://bucket.s3.amazonaws.com/file-{1..100}.csvhttps://bucket.s3.amazonaws.com/{logs,metrics}/data.parquet
Семантика «ровно один раз»
TRUNCATE, а затем повторить вставку с чистого состояния. Только после того, как вставка успешно завершена, партиции из staging-таблицы перемещаются в целевую таблицу. Подробнее об этой стратегии читайте в этой статье блога.
Виртуальные столбцы
_file в список сопоставления столбцов. Виртуальный столбец _file содержит имя файла исходного объекта, которое можно использовать в запросах, чтобы определить, какие файлы уже были обработаны.
Управление доступом
Разрешения
GCS-бакет
storage.objects.list и `storage.objects.get, которые позволяют ClickPipes просматривать список объектов и получать объекты в указанном бакете.
Подписка Pub/Sub
roles/pubsub.subscriber— для получения сообщений и подтверждения их обработки.roles/pubsub.viewer— для просмотра метаданных подписки.
Аутентификация
Сервисный аккаунт
Учетные данные HMAC
Credentials в разделе Authentication method. Затем укажите ключ доступа (например, GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA) и секретный ключ (например, bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ) в полях Access key и Secret key соответственно.
Следуйте этому руководству, чтобы создать сервисный аккаунт с ключом HMAC.
Сетевой доступ
-
Для управления доступом на основе IP правила IP-фильтрации для вашего бакета GCS должны разрешать статические IP-адреса региона сервиса ClickPipes, перечисленные здесь, а также статические IP-адреса сервиса ClickHouse Cloud. Чтобы получить статические IP-адреса для вашего региона ClickHouse Cloud, откройте терминал и выполните:
Расширенные настройки
| Настройка | Значение по умолчанию | Описание |
|---|---|---|
Max insert bytes | 10GB | Количество байт, обрабатываемых в одном батче вставки. |
Max file count | 100 | Максимальное количество файлов, обрабатываемых в одном батче вставки. |
Max threads | auto(3) | Максимальное количество параллельных потоков для обработки файлов. |
Max insert threads | 1 | Максимальное количество параллельных потоков вставки для обработки файлов. |
Min insert block size bytes | 1GB | Минимальный размер блока в байтах, который может быть вставлен в таблицу. |
Max download threads | 4 | Максимальное количество параллельных потоков загрузки. |
Object storage polling interval | 30s | Настраивает максимальный период ожидания перед вставкой данных в кластер ClickHouse. |
Parallel distributed insert select | 2 | Параметр parallel distributed insert select. |
Parallel view processing | false | Нужно ли включать отправку в присоединённые представления параллельно, а не последовательно. |
Use cluster function | true | Нужно ли обрабатывать файлы параллельно на нескольких узлах. |
Масштабирование
Известные ограничения
Размер файла
Совместимость
https://storage.googleapis.com/ (вместо gs://) и HMAC-ключи для аутентификации.