AWS Запрос Athena к паркетному файлу - с использованием столбцов в предложении where - PullRequest
0 голосов
/ 13 июля 2020

Мы планируем использовать Athena в качестве серверной службы для наших данных (хранящихся в виде паркетных файлов в разделах) в S3.

Некоторые вещи, которые нам интересно узнать, это то, как добавляются дополнительные столбцы в Предложение where запроса влияет на время выполнения запроса. Например, у нас есть 10 миллионов записей в одном разделе улья (раздел на основе столбца date)

И все запросы ниже возвращают тот же объем - 10 миллионов. будут ли все эти запросы выполняться одинаково или это сокращает выполнение запроса, когда мы добавляем дополнительные столбцы в предложение where (поскольку parquet является столбцовым fomar)? Я попытался проверить это, но результаты не были согласованными, так как было некоторое время в очереди, я думаю

  1. select * from table where date='20200712'
  2. select * from table where date='20200712' and type='XXX'
  3. select * from table where date='20200712' and type='XXX' and subtype='YYY'

1 Ответ

0 голосов
/ 13 июля 2020

Файл Parquet содержит "индексы" страниц (мин., Макс. И фильтры Блума). Если вы сортируете данные по рассматриваемым столбцам во время вставки, например, как это:

insert overwrite table mytable partition (dt)
select col1, --some columns
       type, 
       subtype, 
       dt
 distribute by dt
       sort by type, subtype

, то эти индексы могут работать эффективно. поскольку данные одного типа, подтипа будут загружены на одни и те же страницы, страницы данных будут выбираться с помощью индексов. См. Некоторые тесты здесь: https://blog.cloudera.com/speeding-up-select-queries-with-parquet-page-indexes/

Switch-on predicate-pu sh -down: https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/cdh_ig_predicate_pushdown_parquet.html

...