PrestoDB有多个connectors。虽然连接器确实实现了读取和写入操作,但是从我阅读的所有教程中,似乎它们通常仅用作数据源以便从中读取。例如,netflix在Amazon S3上具有“10千兆字节”数据,并且他们明确指出Presto工作节点上没有使用磁盘(并且没有使用HDFS)。 陈述的用例是“特设交互式”查询。PrestoDB缓存内部开箱即用的中间结果吗?
此外,亚马逊雅典娜本质上是S3 + Presto,并附带类似的使用案例。
我很困惑这是如何工作的。显然,你不想在每个查询中读取10 PB的数据。所以我假设,你想保留一些先前在内存中获取的数据,比如数据库索引。但是,对数据和查询没有限制,我不明白这是如何有效的。
使用案例1:我经常运行相同的查询,例如,在仪表板上显示指标。 Presto是否避免重新扫描已知的数据点?
用例2:我正在分析一个大型数据集。每个查询都稍有不同,但是有一些常见的子查询,或者我们筛选到数据的一个公共子集。 Presto是否从之前的查询中学习并带来中间结果?或者,如果不是这种情况,我是否建议在某处存储中间结果(例如CREATE TABLE AS ...)?
谢谢,您提供的链接有助于:如果数据分区是数据源配置的一部分,并且查询与此分区保持一致,那么Athena/Presto可以在只读取数据的子集。 – Jan