【问题标题】:Is it possible to use a timestamp for several flatten tables in BigQuery?是否可以对 BigQuery 中的多个展平表使用时间戳?
【发布时间】:2017-03-03 09:25:43
【问题描述】:

我想知道是否可以使用类似于类似请求的特定时间戳功能查询扁平表: FROM TABLE_DATE_RANGE([89571105.ga_sessions_], TIMESTAMP('2017-02-01'), TIMESTAMP('2017-02-10'))。

是否也可以使用时间戳功能创建查询多个展平表?

如果是这样,请你分享一个例子。

【问题讨论】:

  • 什么是“扁平表”?您尝试运行的查询是什么?
  • 亲爱的艾略特;当我谈论展平表时,这意味着 BigQuery 采用重复字段并为重复字段的每个值创建一行结果(所有其他字段都重复)。GROUP BY 表达式子句隐式展平查询数据。
  • 您能否在您想要的公共表上伪键入查询,即使它不准确?很难理解你想要什么,并且可能有它的功能。
  • SELECT date, customDimensions.value, visitNumber, visitId, device.deviceCategory, FROM (FLATTEN([85801771.ga_sessions_20160703], customDimensions.value)), (FLATTEN([85801771.ga_sessions_20160704], customDimensions. value )), (FLATTEN([85801771.ga_sessions_20160705], customDimensions.value )), (FLATTEN([85801771.ga_sessions_20160706], customDimensions.value )), WHERE hits.type = 'EVENT' GROUP BY date, visitNumber, visitId, hits.page.pageTitle, customDimensions.value ORDER BY date LIMIT 100000
  • @ Pentium10 这是对公共示例表的推断:SELECT DATE, SourceCommonName , Themes, customDimensions.value, Persons, Organizations FROM (FLATTEN([gdelt-bq:internetarchivebooks.2008notxt], customDimensions.value )), (FLATTEN([gdelt-bq:internetarchivebooks.2009notxt], customDimensions.value )), BookMeta_Year = 2008 AND BookMeta_Language = EN GROUP BY DATE, SourceCommonName , Themes, customDimensions.value, Persons, Organizations ORDER BY date LIMIT 100000

标签: timestamp google-bigquery flatten


【解决方案1】:

使用standard SQL 更容易表示具有重复字段的交叉产品。试试这个:

#standardSQL
SELECT
  date,
  customDimension.value,
  visitNumber,
  visitId,
  device.deviceCategory
FROM `85801771.ga_sessions_*`
CROSS JOIN UNNEST(customDimensions) AS customDimension
CROSS JOIN UNNEST(hits) AS hit
WHERE _TABLE_SUFFIX BETWEEN '20160703' AND '20160706' AND
  hit.type = 'EVENT'
GROUP BY date, visitNumber, visitId, hit.page.pageTitle, customDimension.value
ORDER BY date
LIMIT 100000;

您可以在LondonCycleHelmet 数据集中的示例表上运行它:

#standardSQL
SELECT
  date,
  customDimension.value,
  visitNumber,
  visitId
FROM `google.com:analytics-bigquery.LondonCycleHelmet.ga_sessions_*`
CROSS JOIN UNNEST(customDimensions) AS customDimension
CROSS JOIN UNNEST(hits) AS hit
WHERE _TABLE_SUFFIX BETWEEN '20130910' AND '20130910' AND
  hit.type = 'EVENT'
GROUP BY date, visitNumber, visitId, hit.page.pageTitle, customDimension.value
ORDER BY date
LIMIT 100000;

【讨论】:

  • 谢谢埃洛特;非常感谢您的帮助
猜你喜欢
  • 2018-08-05
  • 2015-11-17
  • 2015-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-09
  • 1970-01-01
相关资源
最近更新 更多