Google analytics Pentaho谷歌分析插件-当超过10000行时它会做什么?

Google analytics Pentaho谷歌分析插件-当超过10000行时它会做什么?,google-analytics,google-analytics-api,pentaho,kettle,Google Analytics,Google Analytics Api,Pentaho,Kettle,对每个GA请求的响应返回一定数量的行(最多10000行)。如果您的第一个请求定义了一个将导致10000行以上的查询(例如,它将导致26000行),那么只会返回前10000行。然后,您必须发出另一个请求(使用相同的查询),指定要从10001开始的下10000行,然后发出另一个请求,指定要在20001之后的行 我的问题是Pentaho Google analytics插件是在幕后实现的吗?我似乎在任何地方都找不到关于这个问题的任何有意义的文件。提前感谢您提供的任何信息。因此,根据谷歌的设置,设置为1

对每个GA请求的响应返回一定数量的行(最多10000行)。如果您的第一个请求定义了一个将导致10000行以上的查询(例如,它将导致26000行),那么只会返回前10000行。然后,您必须发出另一个请求(使用相同的查询),指定要从10001开始的下10000行,然后发出另一个请求,指定要在20001之后的行


我的问题是Pentaho Google analytics插件是在幕后实现的吗?我似乎在任何地方都找不到关于这个问题的任何有意义的文件。提前感谢您提供的任何信息。

因此,根据谷歌的设置,设置为1000。GA PDI组件是开源的,因此代码是,在快速扫描Java代码后,组件内部似乎使用默认的
MaxResults
每个请求(1000),然后继续以1000块的形式分页剩余的结果集。这是我假设的,但最好确保组件将获得每个结果集超过10000行的所有数据。现在我唯一不确定的是,这是否能很好地适应谷歌
每秒10次查询(QPS)的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);
private DataEntry getNextDataEntry()引发异常{
//还没有准备好查询吗?
if(data.query==null){
data.query=getQuery();
//现在使用默认的最大结果
//data.query.setMaxResults(10000);
...
}
//如果有查询,请检查我们是否点击了最后一个条目,并根据需要重新查询
else if(data.entryIndex>=data.feed.getEntries().size()){

如果(data.feed.getStartIndex()+data.entryIndex)您自己试过了吗?您发现如何解决每秒
10次查询的问题了吗?