У меня есть набор данных, в который данные добавляются почти каждый день, и его необходимо обрабатывать каждый день в части большого ETL.
Когда я выбираю раздел напрямую, запрос действительно быстрый:
SELECT * FROM JSON.`s3://datalake/partitoned_table/?partition=2019-05-20`
Тем не менее, проблема в том, что тип события не генерирует данные в некоторые воскресенья, что приводит к отсутствию раздела в этот конкретный день. Из-за этого я не могу использовать предыдущий оператор для выполнения своей ежедневной работы.
Еще одна попытка привела меня к тому, чтобы спарк нашел последний раздел этого набора данных, чтобы убедиться, что больший запрос не сработает:
SELECT * FROM JSON.`s3://datalake/partitoned_table/`
WHERE partition = (SELECT MAX(partition) FROM JSON.`s3://datalake/partitoned_table/`)
Это работает каждый раз, но невероятно медленно.
Я нашел множество статей и ссылок о том, как создавать и поддерживать разделы, но ничего о том, как правильно их читать.
Есть идеи, как это сделать правильно?