1

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

我的问题是 Pentaho Google 分析插件是否在后台执行此操作?我似乎在该主题的任何地方都找不到任何有意义的文档。提前感谢您提供的任何信息。

4

1 回答 1

2

因此,根据 Google 的说法,默认的 maxResults设置为 1,000。GA PDI 组件是开源的,因此代码很容易访问,在快速扫描他们的 Java 代码后,组件内部看起来使用MaxResults每个请求的默认值 (1,000),然后继续以 1,000 块的形式对剩余的结果集进行分页. 这是我的假设,但最好确保该组件将获取每个结果集超过 10,000 行的所有数据。现在我唯一不确定的是这是否能很好地满足谷歌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);
于 2013-02-16T20:04:00.217 回答