Поддерживаемые источники данных
Поддерживаемые форматы
Возможности
Одноразовая ингестия
Непрерывная ингестия
Лексикографический порядок
file1, file2 и file3 будут обработаны последовательно, но если в бакет будет добавлен новый file 0, он будет проигнорирован, поскольку имя этого файла не лексикографически больше имени последнего обработанного файла.
В этом режиме S3 ClickPipe выполняет начальную загрузку всех файлов по указанному пути, а затем с настраиваемым интервалом проверяет наличие новых файлов (по умолчанию каждые 30 секунд). Чтобы начать непрерывную ингестию после определённого файла, настройте Start after. ClickPipes пропустит файлы, лексикографически меньшие или равные заданному значению, и продолжит загружать более новые файлы начиная с него.
В любом порядке
Неупорядоченный режим поддерживается только для Amazon S3 и не поддерживается для публичных бакетов или S3-совместимых сервисов. Для него требуется настроить очередь Amazon SQS, подключённую к бакету, и при необходимости использовать Amazon EventBridge как маршрутизатор событий.
ObjectCreated:*, соответствующие указанному пути. Любое сообщение о файле, который уже был обработан, о файле, не соответствующем пути, или о событии другого типа будет игнорироваться. Чтобы принимать только файлы, доставленные через очередь, включите Skip initial load. При включении этого параметра ClickPipes пропускает первоначальное сканирование существующих файлов по выбранному пути и обрабатывает только файлы, доставленные через очередь SQS.
Настройка префикса/постфикса для событий необязательна. Если вы её задаёте, убедитесь, что она соответствует пути, заданному для ClickPipe. S3 не позволяет использовать несколько пересекающихся правил уведомлений для одних и тех же типов событий.
max insert bytes или max file count, либо по истечении настраиваемого интервала (по умолчанию 30 секунд). Если настроена DLQ, сообщения с ошибками будут повторно помещаться в очередь и обрабатываться заново до числа раз, заданного в параметре DLQ maxReceiveCount.
EventBridge в SQS
SNS в SQS
Сопоставление имён файлов с шаблоном
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 содержит имя файла объекта-источника, которое можно использовать в запросах, чтобы определить, какие файлы были обработаны.
Управление доступом
Разрешения
S3 бакет
Очередь SQS
Аутентификация
Учетные данные IAM
Credentials в поле Authentication method. Затем введите идентификатор ключа доступа (например, AKIAIOSFODNN7EXAMPLE) и секретный ключ доступа (например, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY) в полях Access key и Secret key соответственно.
роль IAM
IAM role в поле Authentication method при настройке подключения ClickPipe.
Следуйте этому руководству, чтобы создать роль с необходимой политикой доверия для доступа к S3. Затем укажите ARN роли IAM в поле IAM role ARN.
Сетевой доступ
-
Для управления доступом на основе IP-адресов политика S3 бакета должна разрешать статические IP-адреса региона сервиса ClickPipes, перечисленные здесь, а также статические IP-адреса сервиса ClickHouse Cloud. Чтобы получить статические IP-адреса для вашего региона ClickHouse Cloud, откройте терминал и выполните:
-
Для управления доступом на основе VPC endpoint S3 бакет должен находиться в том же регионе, что и сервис ClickHouse Cloud, а операции
GetObjectдолжны быть ограничены Endpoint ID VPC endpoint сервиса ClickHouse Cloud. Чтобы получить VPC endpoint для вашего региона ClickHouse Cloud, откройте терминал и выполните: