【问题标题】:BigQuery Data Studio Custom QueryBigQuery 数据洞察自定义查询
【发布时间】:2017-04-28 03:06:36
【问题描述】:

我正在尝试将 BigQuery 中的自定义查询与数据洞察相关联。我已阅读此处的指南:https://support.google.com/360suite/datastudio/answer/6370296?hl=en&ref_topic=6370347,但我还有一些问题。

我的查询应该提取过去 7 天的漏斗流数据,因此在 Data Studio 中使用自定义查询时,如果可能,我该如何编写 BQ 将提取数据的方式?

如果不是,我该如何修改我的查询,以便数据洞察根据我在数据洞察中定义的日期范围从 BigQuery 中提取数据?我将在 Data Studio 中添加日期范围选择器。

以下是我获取目标渠道数据的查询示例。

SELECT
  s0.fullVisitorId,
  s0.visitId,
  s0.firstHit,
  s1.firstHit
FROM (
SELECT
    fullVisitorId,
    visitId,
    MIN(hits.hitNumber) AS firstHit
    FROM
    (TABLE_DATE_RANGE([xxx.ga_sessions_],
                DATE_ADD(CURRENT_TIMESTAMP(), -7, 'DAY'),
                CURRENT_TIMESTAMP()))
    WHERE
    REGEXP_MATCH(hits.page.pagePath, '/pageA/')
    AND totals.visits = 1
    GROUP BY
    fullVisitorId,
    visitId) s0
LEFT OUTER JOIN EACH (
SELECT
    fullVisitorId,
    visitId,
    MIN(hits.hitNumber) AS firstHit
    FROM
    (TABLE_DATE_RANGE([xxx.ga_sessions_],
                DATE_ADD(CURRENT_TIMESTAMP(), -7, 'DAY'),
                CURRENT_TIMESTAMP()))
    WHERE
    REGEXP_MATCH(hits.page.pagePath, '/pageB/')
    AND totals.visits = 1
    GROUP BY
    fullVisitorId,
    visitId) s1
ON
    s0.fullVisitorID = s1.fullVisitorID
    AND s0.visitID = s1.visitID

【问题讨论】:

  • 您的意思是使用查询中未定义的日期范围从 BigQuery 检索数据?例如,当您的查询仅处理过去 7 天时,使用上个月的日期范围?
  • 嗨@Will 澄清一下,我希望它可以在Data Studio 中提取任何日期范围的数据,而不必一直在我的查询中编辑日期范围选择器。不确定是否甚至可以这样做。
  • 查看 BigQuery 参数化查询:cloud.google.com/bigquery/querying-data

标签: google-bigquery google-data-studio


【解决方案1】:

游戏迟到了,但这里是其他评论此内容的人的回应:

如果我正确理解您的问题,其要点是您希望能够在数据工作室中显示自定义查询的最后 x 天。如果这是问题,那么简单的答案是提供日期范围内的所有数据。即,查看全年的数据,然后让数据洞察使用此处描述的日期范围过滤方法将其过滤掉:

https://www.youtube.com/watch?v=Jafy-CB148k

我相信您的问题更多地与 Google Data Studio 相关,而不是 BigQuery 查询。我发现在使用 Data Studio 时,最好让您的查询保持相当简单,然后在 Data Studio 中进行过滤以进行更复杂的操作,因为它使您的图表具有更多的可定制性。考虑到上述情况,假设您没有 庞大的数据集,您的查询可能如下所示:

SELECT
  s0.fullVisitorId,
  s0.visitId,
  s0.firstHit,
  s1.firstHit
FROM (
SELECT
    fullVisitorId,
    visitId,
    MIN(hits.hitNumber) AS firstHit
    FROM [xxx.ga_sessions_]
    WHERE
    REGEXP_MATCH(hits.page.pagePath, '/pageA/')
    AND totals.visits = 1
    GROUP BY
    fullVisitorId,
    visitId) s0
LEFT OUTER JOIN EACH (
SELECT
    fullVisitorId,
    visitId,
    MIN(hits.hitNumber) AS firstHit
    FROM [xxx.ga_sessions_]
    WHERE
    REGEXP_MATCH(hits.page.pagePath, '/pageB/')
    AND totals.visits = 1
    GROUP BY
    fullVisitorId,
    visitId) s1
ON
    s0.fullVisitorID = s1.fullVisitorID
    AND s0.visitID = s1.visitID

请注意,我删除了硬编码的日期范围,现在由数据洞察的日期过滤器来过滤您需要的数据。

【讨论】:

  • 除此之外,我会说将此查询放入您的 BQ 数据集中的视图中,然后连接到该视图,而不是在 DS 中进行自定义查询。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
  • 1970-01-01
  • 1970-01-01
  • 2021-12-04
  • 1970-01-01
相关资源
最近更新 更多