GCP中Class A操作计算问询:查询Hive表的storage.objects.list次数
Hive查询GCS存储时
storage.objects.list操作次数的说明 执行SELECT * FROM table1时,不会触发100次storage.objects.list操作,实际只会针对table1绑定的gs://bucket/table1路径执行1次该操作(因为该路径下仅10个对象,远低于GCS list接口默认的1000条分页上限)。
具体原因:
- Hive表与GCS的具体路径是一一绑定的,查询指定表时,只会扫描该表对应的路径下的对象,不会遍历整个存储桶的所有路径。
- GCS的
storage.objects.list接口支持按前缀过滤,Hive会自动带上table1作为前缀发起list请求,只会返回该前缀下的10个对象,不需要扫描存储桶内的其他90个对象。
你之前的误解在于认为查询会遍历整个存储桶,但实际上Hive会利用GCS的前缀过滤功能,精准定位到目标路径下的对象,避免不必要的扫描。
内容的提问来源于stack exchange,提问作者dipayan
相关产品推荐
相关产品推荐

