第一天安装程序的原始BigQuery日志数据

时间:2017-08-28 13:55:48

标签: google-bigquery firebase-analytics

我是StandardSQL的新手,并希望为安装在指定日期(2017年6月1日)的用户导出Raw BigQuery日志数据,并在安装日期之后安装第一个3周的会话数据(D0-D20)

    #StandardSQL
    SELECT user_dim.first_open_timestamp_micros, user_dim.app_info.app_instance_id, event_dim.date, event_dim.name, event_dim.timestamp_micros, event_dim.previous_timestamp_micros
    FROM `your_table_id.app_events_*`
    WHERE _TABLE_SUFFIX BETWEEN '20170601' AND '20170621' AND
    (SELECT user_dim.first_open_timestamp_micros
    FROM UNNEST(user_dim) AS user
    WHERE user.first_open_timestamp_micros BETWEEN 1496275200000 AND 1496361600000);

我只得到以下输出:“UNNEST中引用的值必须是数组.UNNEST包含STRUCT类型的表达式。”我的初始问题是:我如何将其转换为数组,给我适当的输出?

米哈伊尔回答后更新:

执行了以下查询,但未提供任何数据作为输出。我知道应该有用户应该出现,因为如果我预览实际的表(查看截图),我会看到表中存在的值应该是输出的一部分(但不是)。

#standardSQL
SELECT 
  user_dim.first_open_timestamp_micros, 
  user_dim.app_info.app_instance_id, 
  event.date, event.name, 
  event.timestamp_micros, 
  event.previous_timestamp_micros
FROM `your_table_id.app_events_*`, UNNEST(event_dim) AS event
WHERE _TABLE_SUFFIX BETWEEN '20170601' AND '20170621' 
AND user_dim.first_open_timestamp_micros BETWEEN 1496275200000 AND 1496361600000
LIMIT 10;

实际表格的屏幕截图:

Screenshot

转换时间戳,表明上面的会话确实应该出现在2 user_dim.first_open_timestamp_micros-results的中间,但不是......

1496275200000已转换: 假设此时间戳以毫秒为单位: 格林尼治标准时间:2017年6月1日星期四12:00:00 AM 您的时区:2017年6月1日星期四上午2:00:00 GMT + 02:00 DST

1496353126947000已转换: 假设此时间戳以微秒(1 / 1,000,000秒)为单位: 格林尼治标准时间:2017年6月1日星期四9:38:46.947 PM 您的时区:2017年6月1日星期四11:38:46.947 PM GMT + 02:00 DST

1496361600000已转换: 假设此时间戳以毫秒为单位: 格林尼治标准时间:2017年6月2日星期五12:00:00 AM 您所在的时区:2017年6月2日星期五格林威治标准时间上午2:00:00 +夏令时02:00

问题:

  • 我错过了什么,为什么这个值不会出现在输出中?

1 个答案:

答案 0 :(得分:1)

请尝试以下
我假设 - user_dimrecordevent_dimrecord, repeated

  
#standardSQL
SELECT 
  user_dim.first_open_timestamp_micros, 
  user_dim.app_info.app_instance_id, 
  event.date, event.name, 
  event.timestamp_micros, 
  event.previous_timestamp_micros
FROM `your_table_id.app_events_*`, UNNEST(event_dim) AS event
WHERE _TABLE_SUFFIX BETWEEN '20170601' AND '20170621' 
AND user_dim.first_open_timestamp_micros BETWEEN 1496275200000 AND 1496361600000