INTEGRITY Документация

R2

Приёмники R2 записывают обработанные данные из конвейеров в виде необработанных файлов в Объектное хранилище R2. В настоящее время они поддерживают запись в форматы JSON и Parquet.

Чтобы создать приёмник R2, выполните pipelines sinks create и укажите тип приёмника и целевой bucket:

npx wrangler pipelines sinks create my-sink \
  --type r2 \
  --bucket my-bucket

Варианты форматирования

Приёмники R2 поддерживают два формата вывода:

формат JSON

Запись данных в виде файлов JSON, разделённых переносами строк:

--format json

Формат Parquet

Запись данных в виде файлов Parquet для повышения производительности запросов и степени сжатия:

--format parquet --compression zstd

Варианты сжатия для Parquet:

Размер группы строк: Группы строк ↗ представляют собой наборы строк в файле Parquet, которые хранятся вместе и влияют на использование памяти и производительность запросов. Настройте целевой размер группы строк в МБ:

--target-row-group-size 256

Организация файлов

Файлы записываются с именами в формате UUID внутри партиционированной структуры каталогов. Например, при пути analytics и партиционирование по умолчанию:

analytics/year=2025/month=09/day=18/002507a5-d449-48e8-a484-b1bea916102f.parquet

Путь

Задайте базовый каталог в бакете, куда будут записываться файлы:

--path analytics/events

Партиционирование

Приёмники R2 автоматически распределяют файлы по времени с помощью настраиваемого шаблона. Шаблон по умолчанию: year=%Y/month=%m/day=%d (партиционирование в стиле Hive).

--partitioning "year=%Y/month=%m/day=%d/hour=%H"

Список доступных спецификаторов формата см. в документация по strftime ↗.

Политика пакетирования и ротации

Управляйте моментом записи файлов в R2. Настройте это под свои задачи:

Интервал ротации

Задайте, как часто записываются файлы (по умолчанию: 300 секунд, минимум: 10 секунд):

--roll-interval 10  # Write files every 10 seconds

Размер ротации

Задайте максимальный размер файла в МБ, при достижении которого создаётся новый файл:

--roll-size 100  # Create new file after 100MB

Аутентификация

Для приёмников R2 требуются API-учётные данные (Access Key ID и Secret Access Key) с Object Read & Write permissions для записи данных в ваш bucket.

npx wrangler pipelines sinks create my-sink \
  --type r2 \
  --bucket my-bucket \
  --access-key-id YOUR_ACCESS_KEY_ID \
  --secret-access-key YOUR_SECRET_ACCESS_KEY