Pentaho Google分析插件 - 当行数超过10,000时它会怎么做?

时间:2013-02-12 17:32:02

标签: google-analytics google-analytics-api pentaho kettle

对每个GA请求的响应返回一定数量的行(最多10,000行)。如果您的第一个请求定义的查询将导致超过10,000行(例如,它会产生26,000行),那么将只返回前10,000行。然后你必须发出另一个请求(使用相同的查询),指定你希望接下来的10,000行从10,001开始,然后另一个请求指定你想要20,001之后的行。

我的问题是Pentaho Google分析插件是否在幕后进行此操作?我似乎无法在任何地方找到任何有意义的文件。提前感谢您提供的任何信息。

1 个答案:

答案 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);