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

Управление каталогами

Вы узнаете, как:

Включение R2 Data Catalog для бакета

Включение каталога для бакета активирует интерфейс REST-каталога и предоставляет Catalog URI и Имя хранилища необходимые клиентам Iceberg. После включения вы можете создавать таблицы Iceberg в этом бакете и управлять ими.

  1. На панели управления Cloudflare перейдите к разделу R2 Data Catalog страницу.

    Перейдите в R2 Data Catalog ↗
  2. Выберите Создание каталога.

  3. Введите имя бакета R2. Вы можете выбрать существующий бакет или указать имя нового бакета, чтобы создать его. При создании нового бакета при необходимости выберите подсказку о расположении.

  4. Выберите Далее для настройки обслуживания таблиц. При необходимости включите компактизация и истечение срока действия снимков во время настройки.

  5. Проверьте свою конфигурацию и выберите Создание каталога.

  6. После создания на странице сведений о каталоге отображаются ваши Catalog URI и Имя хранилища.

Чтобы включить каталог для вашего bucket, выполните команду r2 bucket catalog enable command:

npx wrangler r2 bucket catalog enable <BUCKET_NAME>

После включения Wrangler вернет URI каталога и имя хранилища.

Отключение R2 Data Catalog для бакета

Когда вы отключаете каталог для bucket, он немедленно перестаёт обрабатывать запросы через интерфейс каталога. Все ссылки на таблицы Iceberg, хранящиеся в этом каталоге, становятся недоступны, пока вы снова его не включите.

  1. На панели управления Cloudflare перейдите к разделу R2 Data Catalog страницу.

    Перейдите в R2 Data Catalog ↗
  2. Выберите каталог, который нужно отключить.

  3. Перейдите в Настройки вкладку и прокрутите до Отключить раздел.

  4. Выберите Отключить и подтвердите.

Чтобы отключить каталог для вашего bucket, выполните команду r2 bucket catalog disable command:

npx wrangler r2 bucket catalog disable <BUCKET_NAME>

Включение уплотнения

Уплотнение повышает производительность запросов, объединяя множество небольших файлов, созданных при загрузке данных, в меньшее количество более крупных файлов в соответствии с заданным target file size. Дополнительную информацию об уплотнении и его пользе см. в Об уплотнении.

  1. На панели управления Cloudflare перейдите к разделу R2 Data Catalog страницу.

    Перейдите в R2 Data Catalog ↗
  2. Выберите каталог, для которого нужно включить уплотнение.

  3. Перейдите в Настройки вкладку и прокрутите до Обслуживание таблиц раздел.

  4. Выберите Включить или Изменить рядом со сжатием.

  5. Включите компактификацию и при необходимости задайте целевой размер файла. По умолчанию используется значение 128 MB.

  6. Выберите Save.

Чтобы включить компактификацию для вашего каталога, выполните команду r2 bucket catalog compaction enable команда:

# Enable catalog-level compaction (all tables)
npx wrangler r2 bucket catalog compaction enable <BUCKET_NAME> --target-size 128 --token <API_TOKEN>

# Enable compaction for a specific table
npx wrangler r2 bucket catalog compaction enable <BUCKET_NAME> <NAMESPACE> <TABLE> --target-size 128

После включения уплотнение применяется задним числом ко всем существующим таблицам (при уплотнении на уровне каталога) или к указанной таблице (при уплотнении на уровне таблицы).

Отключение уплотнения

Отключение уплотнения останавливает этот процесс для всех таблиц (на уровне каталога) или для конкретной таблицы (на уровне таблицы). Вы можете снова включить его в любой момент.

  1. На панели управления Cloudflare перейдите к разделу R2 Data Catalog страницу.

    Перейдите в R2 Data Catalog ↗
  2. Выберите каталог, для которого нужно отключить уплотнение.

  3. Перейдите в Настройки вкладку и прокрутите до Обслуживание таблиц раздел.

  4. Выберите Изменить рядом со сжатием.

  5. Отключите компактификацию.

  6. Выберите Save.

Чтобы отключить компактификацию для вашего каталога, выполните команду r2 bucket catalog compaction disable команда:

# Disable catalog-level compaction (all tables)
npx wrangler r2 bucket catalog compaction disable <BUCKET_NAME>

# Disable compaction for a specific table
npx wrangler r2 bucket catalog compaction disable <BUCKET_NAME> <NAMESPACE> <TABLE>

Включение истечения срока действия снимков

Истечение срока действия снимков автоматически удаляет старые снимки таблиц и файлы данных, на которые нет ссылок, снижая накладные расходы на метаданные и затраты на хранение. Вы можете настроить:

  1. На панели управления Cloudflare перейдите к разделу R2 Data Catalog страницу.

    Перейдите в R2 Data Catalog ↗
  2. Выберите каталог, для которого нужно включить истечение срока действия снимков.

  3. Перейдите в Настройки вкладку и прокрутите до Обслуживание таблиц раздел.

  4. Выберите Включить или Изменить рядом с истечением срока действия снимков.

  5. Включите истечение срока действия снимков.

  6. Задайте Максимальный возраст снимка и Минимальное число сохраняемых снимков значения.

  7. Выберите Save.

Чтобы включить истечение срока действия снимков для вашего каталога, выполните команду r2 bucket catalog snapshot-expiration enable команда:

# Enable catalog-level snapshot expiration (all tables)
npx wrangler r2 bucket catalog snapshot-expiration enable <BUCKET_NAME> \
  --token <API_TOKEN> \
  --older-than-days 7 \
  --retain-last 10

# Enable snapshot expiration for a specific table
npx wrangler r2 bucket catalog snapshot-expiration enable <BUCKET_NAME> <NAMESPACE> <TABLE> \
  --older-than-days 2 \
  --retain-last 5

Отключение истечения срока действия снимков

Отключение истечения срока действия снимков останавливает этот процесс для всех таблиц (на уровне каталога) или для конкретной таблицы (на уровне таблицы). Вы можете снова включить истечение срока действия снимков в любой момент.

  1. На панели управления Cloudflare перейдите к разделу R2 Data Catalog страницу.

    Перейдите в R2 Data Catalog ↗
  2. Выберите каталог, для которого нужно отключить истечение срока действия снимков.

  3. Перейдите в Настройки вкладку и прокрутите до Обслуживание таблиц раздел.

  4. Выберите Изменить рядом с истечением срока действия снимков.

  5. Отключите истечение срока действия снимков.

  6. Выберите Save.

# Disable catalog-level snapshot expiration (all tables)
npx wrangler r2 bucket catalog snapshot-expiration disable <BUCKET_NAME>

# Disable snapshot expiration for a specific table
npx wrangler r2 bucket catalog snapshot-expiration disable <BUCKET_NAME> <NAMESPACE> <TABLE>

Настройте аутентификацию для своего движка Iceberg

Чтобы подключить движок Iceberg к R2 Data Catalog, необходимо указать API-токен Cloudflare с оба права доступа R2 Data Catalog и права доступа к хранилищу R2. Движки Iceberg взаимодействуют с R2 Data Catalog для выполнения операций с таблицами. Каталог также предоставляет движкам учётные данные SigV4, необходимые для доступа к файлам данных, хранящимся в R2.

R2 Data Catalog поддерживает токены как только для чтения, так и для чтения и записи:

Используйте токен только для чтения для движков запросов и клиентов, которые только читают данные (например, R2 SQL, DuckDB или PyIceberg readers), и токен для чтения и записи для движков и пайплайнов, которые создают таблицы или записывают данные.

Создание API токена в панели управления

Создайте R2 API-токен с разрешениями, соответствующими вашей нагрузке:

Передав полученное значение токена движку Iceberg, вы даете ему возможность управлять метаданными каталога и выполнять операции с данными (чтение и запись в R2).

Создание API токена через API

Чтобы создать API-токен программно для использования с R2 Data Catalog, укажите группы разрешений R2 Data Catalog и R2 storage в вашем Access Policy.

Пример политики доступа на чтение и запись

Используйте группы разрешений на чтение и запись для движков и пайплайнов, которые создают таблицы или записывают данные:

[
	{
		"id": "f267e341f3dd4697bd3b9f71dd96247f",
		"effect": "allow",
		"resources": {
			"com.cloudflare.edge.r2.bucket.4793d734c0b8e484dfc37ec392b5fa8a_default_my-bucket": "*",
			"com.cloudflare.edge.r2.bucket.4793d734c0b8e484dfc37ec392b5fa8a_eu_my-eu-bucket": "*"
		},
		"permission_groups": [
			{
				"id": "d229766a2f7f4d299f20eaa8c9b1fde9",
				"name": "Workers R2 Data Catalog Write"
			},
			{
				"id": "2efd5506f9c8494dacb1fa10a3e7d5b6",
				"name": "Workers R2 Storage Bucket Item Write"
			}
		]
	}
]

Пример политики доступа только для чтения

Используйте группы разрешений на чтение для движков запросов и клиентов, которые только читают данные:

[
	{
		"id": "f267e341f3dd4697bd3b9f71dd96247f",
		"effect": "allow",
		"resources": {
			"com.cloudflare.edge.r2.bucket.4793d734c0b8e484dfc37ec392b5fa8a_default_my-bucket": "*",
			"com.cloudflare.edge.r2.bucket.4793d734c0b8e484dfc37ec392b5fa8a_eu_my-eu-bucket": "*"
		},
		"permission_groups": [
			{
				"id": "45db74139a62490b9b60eb7c4f34994b",
				"name": "Workers R2 Data Catalog Read"
			},
			{
				"id": "6a018a9f2fc74eb6b293b0c548f38b39",
				"name": "Workers R2 Storage Bucket Item Read"
			}
		]
	}
]

Подробнее о создании API-токенов для R2 Data Catalog через API, включая необходимые группы разрешений и примеры использования, см. Документация по созданию API токенов через API.

R2 Local Uploads

Local Uploads записывает данные объекта в ближайшее расположение, а затем асинхронно копирует их в ваш бакет. Данные доступны для запросов сразу же и остаются строго согласованными. Это может значительно снизить задержку записи для клиентов Apache Iceberg, находящихся за пределами региона соответствующего бакета R2 Data Catalog.

Чтобы включить R2 Local Uploads, используйте следующую команду Wrangler:

npx wrangler r2 bucket catalog local-uploads enable <R2_Data_Catalog_BUCKET_NAME>

Ограничения

Подробнее

Начало работы

Узнайте, как включить R2 Data Catalog для своего бакета, загрузить тестовые данные и выполнить первый запрос.

Подключение к движкам Iceberg

Ознакомьтесь с подробными инструкциями по настройке Apache Spark и других распространённых движков запросов.