Функция таблицы 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 смотрите наше подробное руководство.
Смотрите также