ORC Format сканирует все таблицы в каждом запросе

Я создал свой первый стол орков в Афине.

CREATE EXTERNAL TABLE `orc_test`(
 `hexid` string,
 `version` int,
 `ts` int,
 `campaignid` int,
 `sourceuid` string,
 `publisherid` string,
 `adslot` string,
 `share` double,
 `earn` double,
 `spent` double,
 `rebate` double,
 `payout` double,
 `cost` double,
 `ip` string,
 `useragent` string,
 `referer` string,
 `param1` string,
 `param2` string,
 `param3` string,
 `param4` string,
 `param5` string,
 `param6` string,
 `appid` string,
 `bundleid` string,
 `deviceid` string,
 `uuid` string,
 `callbackurl` string)
PARTITIONED BY (
 `year` string,
 `month` string,
 `day` string,
 `hour` string,
 `minute` string) 
STORED AS orc
LOCATION
 ‘s3://someplace/orc_2’
TBLPROPERTIES (‘orc.compress’=‘SNAPPY’)

Когда я делаю запрос в поисках конкретных данных (например, hexid). Запрос сканирует всю таблицу. Будучи столбчатой ​​таблицей, не будет ли она выполнять поиск только по столбцу hexId без сканирования всей таблицы?

Я думаю, что я что-то упустил.

Спасибо!

pd: извините за мой английский!

1 ответ

Я полагаю, что вы уменьшите количество отсканированных данных только тогда, когда будете использовать столбцы разделов в предложении WHERE, чтобы Афина могла определить подмножество разделов для сканирования. В определении вашей таблицы hexid не является полем раздела, поэтому Афина должна отсканировать весь набор данных, чтобы определить строки.

См. Разделение данных в Документах Athena для получения дополнительной информации.

Пожалуйста, взгляните на этот пост: https://forums.aws.amazon.com/message.jspa?messageID=841338 Кажется, что доступность чтения столбцов зависит от размера полосы ORC. По умолчанию в Presto установлено значение 8 МБ (а Athena использует Presto), ваш файл ORC должен содержать полосы размером более 8 МБ. Ниже этого предела будет прочитан весь файл.

AWS Athena не имеет этой проблемы с файлами Parquet. Однако будьте осторожны со сложными типами данных паркета:

"Когда вы запрашиваете столбцы со сложными типами данных (массив, карта, структура) и используете Parquet для хранения данных, Athena в настоящее время читает всю строку данных, а не выборочно читает только указанные столбцы, как ожидалось. Это известная проблема.. "(все ограничения: https://docs.aws.amazon.com/athena/latest/ug/other-notable-limitations.html)

Другие вопросы по тегам