Azure blob 存储是否支持 parquet 列投影和下推 filters/predicates
Does Azure blob store support for parquet column projection and pushdown filters/predicates
我一直在阅读有关 parquet 格式以及 spark 如何与它集成的内容。
作为列式存储,parquet really shines每当 spark 可以与底层存储协作以执行投影时,无需加载所有数据以及指示存储根据各种统计数据加载特定列块(当涉及过滤器时)。
我看到一个 lecture on youtube (21:54) 警告对象存储不支持下推过滤器(具体以 Amazon S3 为例)。
Azure Blob 存储对此有何看法(当我们读取会话镶木地板时)?
她错了。更具体地说,即使在 2017 年 2 月的演讲中,她对 Hadoop 2.8 中 S3 的看法也是错误的 HADOOP-13203;多年来一直向后移植到 CDH 和 HDP。
Azure 自 2017 年 8 月以来就拥有它,HADOOP-14535,它被反向移植到 Azure HD/Insights 和 HDP(向 Cloudera 了解 CDH)。
她提到的问题是 seek() 在 HTTP 连接上的开销很大,因为如果 D/L 有很多 GB 的数据,您需要中止连接并建立一个新连接。上面的 Hadoop 补丁更改了商店的 IO 模式,通过执行具有有限内容长度的 GET 来优化随机访问,让您重用相同的 HTTP1.1 连接。这对于完整文件读取是病态的; S3A让你自讨苦吃(fs.s3a.experimental.fadvise=random
); Azure 在第一次向后搜索时切换到随机 IO。
这与谓词下推完全无关:这一切都是在 ParquetFileFormat 中完成的,只是如果您需要建立新的 HTTP 连接,查找,尤其是向后查找非常昂贵。由于 ORC 和 Parquet 格式将列摘要放在列块之后,因此有很多
有关详细信息,请查看来自同一会议的 this other talk。
我一直在阅读有关 parquet 格式以及 spark 如何与它集成的内容。
作为列式存储,parquet really shines每当 spark 可以与底层存储协作以执行投影时,无需加载所有数据以及指示存储根据各种统计数据加载特定列块(当涉及过滤器时)。
我看到一个 lecture on youtube (21:54) 警告对象存储不支持下推过滤器(具体以 Amazon S3 为例)。
Azure Blob 存储对此有何看法(当我们读取会话镶木地板时)?
她错了。更具体地说,即使在 2017 年 2 月的演讲中,她对 Hadoop 2.8 中 S3 的看法也是错误的 HADOOP-13203;多年来一直向后移植到 CDH 和 HDP。
Azure 自 2017 年 8 月以来就拥有它,HADOOP-14535,它被反向移植到 Azure HD/Insights 和 HDP(向 Cloudera 了解 CDH)。
她提到的问题是 seek() 在 HTTP 连接上的开销很大,因为如果 D/L 有很多 GB 的数据,您需要中止连接并建立一个新连接。上面的 Hadoop 补丁更改了商店的 IO 模式,通过执行具有有限内容长度的 GET 来优化随机访问,让您重用相同的 HTTP1.1 连接。这对于完整文件读取是病态的; S3A让你自讨苦吃(fs.s3a.experimental.fadvise=random
); Azure 在第一次向后搜索时切换到随机 IO。
这与谓词下推完全无关:这一切都是在 ParquetFileFormat 中完成的,只是如果您需要建立新的 HTTP 连接,查找,尤其是向后查找非常昂贵。由于 ORC 和 Parquet 格式将列摘要放在列块之后,因此有很多 有关详细信息,请查看来自同一会议的 this other talk。