Прозрачный кеш при запросе временных рядов с помощью Apache Spark - PullRequest
0 голосов
/ 10 ноября 2018

У нас есть данные временных рядов, такие как ежедневный файл паркета размером 3 ГБ в HDFS (hdfs:///data/year=X/month=X/day=X/data.parquet.gz), хранилище Hive в виде таблицы данных.

Всю ночь мы выполняем запросы SQL для генерации отчетов,с Apache Spark:

(1) SELECT date, count(*) from data GROUP BY date

(конечно, у нас более сложный запрос ^^)

Я заметил, что Apache Spark выполнит запрос для всего нашего набора данных (что нормально), ноЯ хотел бы повторно использовать данные предыдущего дня, если это возможно, поскольку предыдущие данные никогда не меняются.

Решение на месте

Я могу добиться этого, выполняя поэтапную консолидацию:

(2) INSERT INTO consolidation SELECT date, count(*) FROM data WHERE date="yesterday"

, затем выполните запрос к нему ((3) SELECT date, value FROM consolidation)

Прозрачный кэш, который я хочу

IМне интересно, возможно ли такое поведение с запросом (1), возможно, путем взлома того, как Spark генерирует logical plan, я не знаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...