Skip to main content

Приём файлов Parquet из S3 бакета

Ниже приведены основные сведения об использовании движка таблицы S3 для чтения файлов Parquet.
  • создайте ключ доступа и секретный ключ для сервисного пользователя IAM. обычные пользователи обычно не подходят, так как для них может быть настроена политика MFA.
  • задайте в политике разрешения, позволяющие сервисному пользователю получать доступ к бакету и папкам.
Ниже приведён очень простой пример, который можно использовать, чтобы проверить, что доступ к вашим файлам Parquet работает корректно, прежде чем применять это к реальным данным. Если вам нужен пример создания пользователя и бакета, вы можете воспользоваться первыми двумя разделами (создание пользователя и создание бакета): Интеграция S3 с ClickHouse Я использовал этот пример файла: https://github.com/Teradata/kylo/tree/master/samples/sample-data/parquet и загрузил его в свой тестовый бакет Для бакета можно задать примерно такую политику: (при необходимости скорректируйте: этот вариант даёт довольно широкие разрешения, но поможет при тестировании. при необходимости вы можете сузить их)
Вы можете выполнять запросы с таким синтаксисом, используя движок таблицы S3: https://clickhouse.com/docs/sql-reference/table-functions/s3/
Справочник по типам данных для формата Parquet находится здесь: https://clickhouse.com/docs/interfaces/formats/#data-format-parquet Чтобы загрузить данные в собственную таблицу ClickHouse: создайте таблицу, например так (для примера выбрано всего несколько столбцов из файла Parquet):
Выберите данные из S3 бакета для вставки в новую таблицу:
Проверьте импорт:
Когда вы будете готовы импортировать реальные данные, можно использовать специальный синтаксис — например, подстановочные шаблоны и диапазоны, — чтобы указать папки, подпапки и файлы в вашем бакете. Я бы рекомендовал для начала отфильтровать несколько каталогов и файлов, чтобы проверить импорт, например выбрать определённый год, пару месяцев и какой-нибудь диапазон дат. Помимо параметров path, здесь также появился новый синтаксис **, который рекурсивно указывает все подкаталоги. https://clickhouse.com/docs/sql-reference/table-functions/s3/ Например, предположим, что пути и структура бакета выглядят примерно так: https://your_s3_bucket.s3.amazonaws.com/<your_folder>/<year>/<month>/<day>/<filename>.parquet https://mars-doc-test.s3.amazonaws.com/system_logs/2022/11/01/my-app-logs-0001.parquet Это позволит получить все файлы за 1-й день каждого месяца в 2021–2022 годах https://mars-doc-test.s3.amazonaws.com/system_logs/{2021-2022}/**/01/*.parquet
Последнее изменение 23 июля 2026 г.