Несмотря на то, что Amazon Athena может обрабатывать большие файлы довольно хорошо, но если вы хотите, чтобы ваши запросы Athena были экономически эффективными и эффективными, вот несколько моментов, которые вы обязательно должны учитывать:
Во-первых, вы не упомянули тип файла (CSV, TSV, Parquet, OR C, et c). Тип файла чрезвычайно важен, так как немногие форматы являются разделяемыми, а некоторые - нет. Также тип сжатия. Разбиваемые файлы позволяют механизму выполнения в Афине разделять чтение файла несколькими считывателями для увеличения параллелизма. Паркет и ИЛИ C являются двумя наиболее распространенными форматами файлов и обеспечат вам лучшую производительность, а также стоимость, поскольку он будет сканировать меньшее количество данных.
Вы также не упомянули, насколько широк ваш файл. Если большую часть времени вы запрашиваете только несколько столбцов, рассмотрите хранилище столбчатых данных . Опять же, Apache Parquet и Apache ИЛИ C являются популярными хранилищами столбчатых данных.
Как вы планируете использовать предложение или фильтр "где"? Если вы можете классифицировать свои данные, сделайте это с помощью механизма partition . Вы можете ограничить объем данных, проверяемых запросом, указав фильтры на основе раздела. Это поможет вам уменьшить размер сканирования, что не только повышает производительность, но и снижает затраты.
Существует несколько других методов проектирования, которыми вы можете следовать, например: оптимизация размера файла, ORDER BY, объединений, GROUP BY или использование столбцов с кластеризацией / кластеризацией. Вы можете запускать задания AWS Glue ETL (без сервера) в Amazon EMR (управлял имением oop), чтобы преобразовать ваши данные в нужный формат и форму перед выполнением запросов Athena.
Для получения более подробной информации, посетите этот блог: https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/