Presto имеет несколько коннекторов. Хотя соединители реализуют операции чтения и записи, из всех читаемых мной руководств кажется, что они обычно используются в качестве источников данных только для чтения. Например, netflix. имеет «10 петабайт» данных на Amazon S3, и они явно заявляют, что на рабочих узлах Presto не используется диск (и HDFS). Заявленный вариант использования - это «специальные интерактивные» запросы.
Кроме того, Amazon Athena по сути является S3 + Presto и имеет аналогичные варианты использования.
Я не понимаю, как это работает на практике. Очевидно, вы не хотите читать 10 ПБ данных по каждому запросу. Итак, я предполагаю, что вы хотите сохранить в памяти некоторые ранее извлеченные данные, такие как индекс базы данных. Однако без ограничений на данные и запросы я не понимаю, как это может быть эффективным.
Пример использования 1. Я часто выполняю один и тот же запрос, например для отображения метрики на панели инструментов. Избегает ли Presto повторного сканирования уже «известных» точек данных?
Пример использования 2: я анализирую большой набор данных. Каждый запрос немного отличается, однако есть общие подзапросы или мы фильтруем общее подмножество данных. Учитывает ли Presto предыдущие запросы и переносит ли промежуточные результаты?
Или, если это не так, можно ли мне посоветовать где-нибудь хранить промежуточные результаты (например, CREATE TABLE AS ...)?