Druid Scan 查询中实时数据的分页问题
Pagination issue with real time data in Druid Scan query
我已经阅读了以下 Druid Scan 查询文档
https://druid.apache.org/docs/0.20.0/querying/scan-query.html。当它说的时候我不明白这部分。 “请注意,如果底层数据源在页面获取之间以影响整体查询结果的方式被修改,那么不同的页面将不一定相互对齐。”
在我的例子中,数据是实时添加到 Druid 的,这意味着假设我查询了最近一小时的数据(下午 4-5 点),可能早些时候我们有 40 条记录用于该查询,但在查询期间我们收到了10 项新纪录。我的假设是所有新记录都应该添加到 post 第 40 条记录并且它不应该影响当前的 运行 分页偏移量。请帮助我实时摄取数据如何影响 Druid 分页以及可能的修复方法。
offset : Together, "limit" and "offset" can be used to implement
pagination.
However, note that if the underlying datasource is modified in between page fetches in ways that affect overall query results, then
the different pages will not necessarily align with each other.
文档描述 offset/limit 是应用程序端值。从数据库的角度来看,每个请求都是 运行 整个查询,只返回 offset
和 offset + limit
之间的行。
因此,如果按 __time desc
排序,新行将出现在结果的顶部,因此会移动分页的内容。
如果已排序 __time asc
,并且在调用之间没有摄取超出时间顺序的行,则分页应该保持不变并且新行出现在末尾。
另请记住,限制查询的总体时间范围是一种很好的做法。
我已经阅读了以下 Druid Scan 查询文档 https://druid.apache.org/docs/0.20.0/querying/scan-query.html。当它说的时候我不明白这部分。 “请注意,如果底层数据源在页面获取之间以影响整体查询结果的方式被修改,那么不同的页面将不一定相互对齐。”
在我的例子中,数据是实时添加到 Druid 的,这意味着假设我查询了最近一小时的数据(下午 4-5 点),可能早些时候我们有 40 条记录用于该查询,但在查询期间我们收到了10 项新纪录。我的假设是所有新记录都应该添加到 post 第 40 条记录并且它不应该影响当前的 运行 分页偏移量。请帮助我实时摄取数据如何影响 Druid 分页以及可能的修复方法。
offset : Together, "limit" and "offset" can be used to implement pagination. However, note that if the underlying datasource is modified in between page fetches in ways that affect overall query results, then the different pages will not necessarily align with each other.
文档描述 offset/limit 是应用程序端值。从数据库的角度来看,每个请求都是 运行 整个查询,只返回 offset
和 offset + limit
之间的行。
因此,如果按 __time desc
排序,新行将出现在结果的顶部,因此会移动分页的内容。
如果已排序 __time asc
,并且在调用之间没有摄取超出时间顺序的行,则分页应该保持不变并且新行出现在末尾。
另请记住,限制查询的总体时间范围是一种很好的做法。