WSO2 EI 6.5.0中BigQuery连接器runQuery的maxResults限制问题
WSO2 EI 6.5.0 BigQuery连接器runQuery相关问题解答
1. 不传入maxResult参数的默认限制
不指定maxResult时,没有固定的行数限制,但返回结果受10MB字节限制约束。也就是说,连接器会尽可能返回更多行数据,直到数据体积达到10MB时自动截断,同时返回pageToken标记剩余未返回的数据。
2. maxResult参数的最大值
BigQuery原生API对maxResult的上限是100000行(10万),WSO2 EI 6.5.0的BigQuery连接器基于原生API封装,因此遵循这个上限。需要注意的是,即使设置了10万行,如果单条数据体积较大,实际返回的行数可能因为触发10MB字节限制而少于设定值。
3. 生产环境大数量级数据的解决方案
针对30-40万甚至更多记录的场景,核心方案是基于pageToken的分页查询,具体实现步骤如下:
- 首次调用
runQuery时,设置合理的maxResult值(比如10000,根据单条数据体积调整,避免提前触发10MB限制); - 检查响应结果,如果包含
pageToken,说明还有未获取的数据; - 后续每次调用
runQuery时,传入前一次响应返回的pageToken,并保持相同的maxResult值; - 在WSO2 EI中,可通过
Iterate Mediator配合Loop Mediator实现自动分页逻辑,将每次获取的结果分批处理或合并; - 如果数据量极大(比如百万级以上),也可以考虑异步查询方案:提交查询后轮询状态,待查询完成后将结果导出到Google Cloud Storage(GCS),再通过WSO2的GCS连接器批量获取数据。
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

