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