Dremio 是否支持流式传输大型结果集?

问题描述

Dremio 是否支持流式传输大型结果集,例如使用 Arrow 3.0 流式传输格式?还是按行组流式传输?

背景:我正在考虑使用带有镶木地板编码箭头文件的 S3 支持的 Dremio。

出于讨论目的,请考虑这些文件包含按时间戳排序的传感器数据。

我想沿着 sensortype/year/month/day/hour.parquet 使用 Dremio 支持的 s3 分区

我的主要用例都涉及时间范围查询(并按时间排序)。由于 Dremio 可以使用分区列传感器类型、年份等(即谓词下推),并且由于数据已经正确排序,这应该会导致非常有效的查询

仍然进行如下查询

为我提供按时间戳排序的周期 [t1,t2] 内所有类型为 x 或 y 或 x 的传感器数据

可能会产生数百万条记录,这对于 Dremio 来说可能会占用大量内存。此外,如果在客户端上我需要等待整个箭头文件进来才能开始处理,这可能会导致最坏的 OOM 错误并且整个过程变慢(因为必须等待文件传输完成)在最好

为了解决这个问题,Dremio 是否足够聪明:

  1. 要实现它不需要先扫描范围内的所有文件,然后再计算结果集,因为请求的顺序和文件中事件排列的顺序是一样的?
  2. 鉴于上述情况,Dremio 是否可以在仍然忙于计算结果集的其余部分的同时将结果流式传输到客户端(通过使用每个箭头行组的批处理或其他方式)?

非常感谢任何帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...