Поддерживаемые форматы
Возможности
Одноразовая ингестия
Непрерывная ингестия
Лексикографический порядок
file1, file2 и file3 будут приниматься последовательно, но если в бакет будет добавлен новый file 0, он будет проигнорирован, поскольку имя этого файла не лексикографически больше имени последнего принятого файла.
В этом режиме GCS ClickPipe выполняет начальную загрузку всех файлов по указанному пути, а затем с настраиваемым интервалом проверяет наличие новых файлов (по умолчанию — каждые 30 секунд). Чтобы начать непрерывную ингестию после определённого файла, настройте Start after. ClickPipes пропустит файлы, которые лексикографически меньше или равны настроенному значению, и продолжит приём более новых файлов с этого момента.
В любом порядке
Неупорядоченный режим не поддерживается для публичных бакетов. Для него требуется аутентификация через Service Account и подписка Google Cloud Pub/Sub, подключённая к бакету.
OBJECT_FINALIZE через подписку Pub/Sub, соответствующие указанному пути. Любые сообщения о ранее обнаруженном файле, файле, не соответствующем пути, или событии другого типа будут игнорироваться. Чтобы принимать только файлы, доставленные через подписку, включите Пропустить начальную загрузку. При включении этой опции ClickPipes пропускает начальное сканирование существующих файлов по выбранному пути и обрабатывает только файлы, доставленные через подписку Pub/Sub.
Сопоставление имён файлов по шаблону
data-2024-*.csv вместо *.csv).
Поддерживаемые шаблоны
Примеры:
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
Неподдерживаемые шаблоны
Примеры:
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 в разделе метод аутентификации. Затем укажите ключ доступа (например, GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA) и секретный ключ (например, bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ) в полях Access key и Secret key соответственно.
Следуйте этому руководству, чтобы создать сервисный аккаунт с HMAC-ключом.
Сетевой доступ
-
Для управления доступом на основе IP правила IP-фильтрации для вашего бакета GCS должны разрешать статические IP-адреса региона сервиса ClickPipes, перечисленные здесь, а также статические IP-адреса сервиса ClickHouse Cloud. Чтобы получить статические IP-адреса для вашего региона ClickHouse Cloud, откройте терминал и выполните:
Расширенные настройки
Масштабирование
Известные ограничения
Размер файла
Совместимость
https://storage.googleapis.com/ (вместо gs://) и HMAC-ключи для аутентификации.