对每个GA请求的响应返回一定数量的行(最多10,000行)。如果您的第一个请求定义的查询将导致超过10,000行(例如,它会产生26,000行),那么将只返回前10,000行。然后你必须发出另一个请求(使用相同的查询),指定你希望接下来的10,000行从10,001开始,然后另一个请求指定你想要20,001之后的行。
我的问题是Pentaho Google分析插件是否在幕后进行此操作?我似乎无法在任何地方找到任何有意义的文件。提前感谢您提供的任何信息。
答案 0 :(得分:2)
因此,据Google称,default maxResults设置为1,000。 GA PDI组件是开源的,因此代码为easily accessible,在快速扫描其Java代码后,内部组件看起来像每个请求使用默认的MaxResults
(1,000),然后继续翻页剩余的结果以1,000块为单位。这就是我所假设的,但确保组件将获得每个结果集超过10,000行的所有数据是很好的。现在我唯一不确定的是,这是否适用于Google 10 queries per second (QPS) per IP
配额限制。
GAInputstep.java:
private DataEntry getNextDataEntry() throws KettleException {
// no query prepared yet?
if (data.query == null){
data.query = getQuery();
// use default max results for now
//data.query.setMaxResults(10000);
...
}
// query is there, check whether we hit the last entry and requery as necessary
else if (data.entryIndex >= data.feed.getEntries().size()){
if (data.feed.getStartIndex()+data.entryIndex <= data.feed.getTotalResults()){
// need to query for next page
data.query.setStartIndex(data.feed.getStartIndex()+data.entryIndex);