【问题标题】:Accessing ga_sessions_* in Google App Script在 Google App Script 中访问 ga_sessions_*
【发布时间】:2021-11-24 15:30:30
【问题描述】:

我正在尝试通过应用脚本中的 BigQuery API 访问 Google Analytics(分析)数据。 在我的函数中,我创建了查询:

  var projectId = 'bigqueryanalytics360';
  var query = "\
      SELECT * \
      FROM `bigqueryanalytics360.{dataset}.ga_sessions_*` AS ga_sessions \
      LIMIT 5 \
  "
  var request = {
    useLegacySql: false,
    query: query,
  }

但是,当我使用此查询发出请求时,我没有得到任何数据。另一方面,当我指定日期bigqueryanalytics360.{dataset}.ga_sessions_20211123 时,我得到了预期的数据。

我相信* 在这里弄乱了查询,我想我需要像在正则表达式中那样转义它,但我不确定如何。

如何自行运行

  1. 访问公开可用的数据集here
  2. 创建应用脚本
  3. 创建一个文件以通过 API (link) 访问 BigQuery 数据。而不是这部分:
var projectId = 'XXXXXXXX';

var request = {
    query: 'SELECT TOP(word, 300) AS word, COUNT(*) AS word_count ' +
      'FROM publicdata:samples.shakespeare WHERE LENGTH(word) > 10;'
  };

这样写:

var projectId = '{your-project-id}';
var query = "\
SELECT DISTINCT visitId \
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` \
LIMIT 10 \
"

var request = {
  useLegacySql: false,
  query: query,
  }

确保您:

  • 已启用 BigQuery API (link)
  • 启用 Google API 范围 (link)
  • 通过旧版编辑器启用 BigQuery API(使用旧版编辑器 >> 资源 >>​​ 高级 Google 服务... >> BigQuery API)

你知道如何解决它吗?

【问题讨论】:

  • 如果有很多表匹配*怎么办?
  • @TheMaster 这就是* 的重点——它包含所有以ga_sessions_ 开头的表格
  • 回答你的第二个问题,我自己也不熟悉。这只是我最初的想法。 :)
  • 好吧it is valid syntax。你能删除LIMIT 子句吗?你能提供完整的脚本吗?

标签: google-apps-script google-bigquery


【解决方案1】:

根据您正在使用的 API 的 this 公共文档,建议您选择要使用的每个表,省略您尝试使用的 *。这将使结果没有问题,您应该添加要从查询中检索的字段。

【讨论】:

  • 在您提供的链接中没有任何建议应该在不使用通配符的情况下专门查询每个表。您能否提供该建议的其他来源?
  • 你能尝试从你的查询中删除限制子句吗?我在没有它的情况下运行了一个查询,它对我有用
【解决方案2】:

在每个数据集中,导出的每一天都会导入一个表。每日表格的格式为“ga_sessions_YYYYMMDD”。

参考:https://support.google.com/analytics/answer/3437719?hl=en

var 查询 = "
选择 *
FROM bigqueryanalytics360.{dataset}.ga_sessions_YYYYMMDD* AS ga_sessions
限制 5
"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多