Перейти к основному содержимому
Перейти к основному содержимому

Функция таблицы s3Cluster

Это расширение функции таблицы s3.

Позволяет обрабатывать файлы из Amazon S3 и Google Cloud Storage Google Cloud Storage параллельно с использованием нескольких узлов в заданном кластере. На инициаторе устанавливается соединение со всеми узлами в кластере, раскрываются подстановочные знаки в пути к файлам S3 и динамически распределяются файлы. На рабочем узле он запрашивает у инициатора следующую задачу для обработки и выполняет ее. Это повторяется, пока все задания не будут завершены.

Синтаксис

Аргументы

  • cluster_name — Имя кластера, которое используется для создания набора адресов и параметров подключения к удаленным и локальным серверам.
  • url — путь к файлу или группе файлов. Поддерживает следующие подстановочные знаки в режиме только для чтения: *, **, ?, {'abc','def'} и {N..M}, где N, M — числа, abc, def — строки. Для получения дополнительной информации см. Подстановочные знаки в пути.
  • NOSIGN — Если это ключевое слово указано вместо учетных данных, все запросы не будут подписаны.
  • access_key_id и secret_access_key — Ключи, которые указывают учетные данные, используемые с заданной конечной точкой. Необязательно.
  • session_token - Токен сессии для использования с указанными ключами. Необязательно при передаче ключей.
  • format — Формат файла.
  • structure — Структура таблицы. Формат 'column1_name column1_type, column2_name column2_type, ...'.
  • compression_method — Параметр является необязательным. Поддерживаемые значения: none, gzip или gz, brotli или br, xz или LZMA, zstd или zst. По умолчанию будет автоматически определен метод сжатия по расширению файла.
  • headers - Параметр является необязательным. Позволяет передавать заголовки в запрос S3. Указывайте в формате headers(key=value) например headers('x-amz-request-payer' = 'requester'). См. здесь для примера использования.

Аргументы также можно передавать с использованием именованных коллекций. В этом случае url, access_key_id, secret_access_key, format, structure, compression_method работают аналогичным образом, и поддерживаются некоторые дополнительные параметры:

  • filename — добавляется к url, если указан.
  • use_environment_credentials — включен по умолчанию, позволяет передавать дополнительные параметры с использованием переменных окружения AWS_CONTAINER_CREDENTIALS_RELATIVE_URI, AWS_CONTAINER_CREDENTIALS_FULL_URI, AWS_CONTAINER_AUTHORIZATION_TOKEN, AWS_EC2_METADATA_DISABLED.
  • no_sign_request — отключен по умолчанию.
  • expiration_window_seconds — значение по умолчанию составляет 120.

Возвращаемое значение

Таблица с заданной структурой для чтения или записи данных в указанный файл.

Примеры

Выбор данных из всех файлов в папках /root/data/clickhouse и /root/data/database/, используя все узлы в кластере cluster_simple:

Подсчет общего количества строк во всех файлах в кластере cluster_simple:

подсказка

Если ваш список файлов содержит диапазоны чисел с ведущими нулями, используйте конструкцию с фигурными скобками для каждой цифры отдельно или используйте ?.

Для производственных случаев рекомендуется использовать именованные коллекции. Вот пример:

Доступ к частным и публичным бакетам

Пользователи могут использовать такие же подходы, как и в документе для функции s3 здесь.

Оптимизация производительности

Для получения информации об оптимизации производительности функции s3 смотрите наше подробное руководство.

Смотрите также