Эффективное определение максимальной даты в Афине с разделами год, месяц, день - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть таблица в Афинах, которая имеет следующую структуру:

s3://bucketName/pathToTable/partition1/partition2/year=/month=/day=/otherPartitions

т.е. разбиения выполняются отдельными компонентами даты, а не самой датой. Разделы года, месяца и дня являются целыми числами.

Какой эффективный способ найти самую последнюю дату, для которой у меня есть данные?

Например, я могу найти следующую дату,

SELECT
  MAX(CAST(CONCAT(CAST(year_utc AS  VARCHAR(4)), '-', CAST(month_utc AS VARCHAR(2)), '-', CAST(day_utc AS VARCHAR(2)))))
FROM
  database.table;

но это дорогостоящий запрос для запуска. Мне интересно, есть ли лучший способ сделать это. Я также думал о получении необработанных файловых ключей из S3, но первые 2 раздела делают это также невозможным.

...