firebase - 与不使用通配符和 _TABLE_SUFFIX 相比,BigQuery -firebase 导出的工作方式有所不同

标签 firebase google-cloud-platform google-analytics google-bigquery

我的要求: 将未嵌套的数据附加到单独的表中并将其用于可视化和分析

实现: 因为我不确定 events_intraday_YYYYMMDD 究竟在什么时间同步到 events_YYYYMMDD 以供引用检查 here

0- 使用以下方法在开始时创建了一个 events_normalized 表(仅执行一次,而不是每天)

  create analytics_data_export.events_normalized AS
SELECT .....
FROM
    `analytics_xxxxxx.events_*

收集 events_YYYYMMDD 的所有数据

1- 创建/替换每日临时表

create or replace table analytics_data_export.daily_data_temp AS
SELECT...
_TABLE_SUFFIX BETWEEN 
  FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 4 DAY)) AND
  FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))

因为我已经看到多天的数据同步在一起,所以为了安全起见,我使用 1-4 天的数据

2- 从 events_normalized 中删除两个表的内部联接(daily_data_temp,events_normalized),以删除它可能具有的任何重复项,例如 events_normalized 具有截至 18 日的数据,但 daily_data_temp 具有 16-19 日的数据,因此 events_normalized 中截至 18 日的所有行都将被删除

4- 在 events_normalized 中重新插入 daily_data_temp

问题:

1-是否有任何优化的方法来实现要求

2- 在创建 events_normalized 表时的第 0 步中,如果我使用:

WHERE
  _TABLE_SUFFIX  <=
  FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 0 DAY))

与使用时相比,我得到了不同的结果

create analytics_data_export.events_normalized AS
    SELECT .....
    FROM
        `analytics_xxxxxx.events_*

区别在于后者也有当前日期数据,其中 events_YYYYMMDD 我只能看到昨天的数据。我不明白这种行为

就像 events_YYYYMMDD 中的当前日期是 7 月 20 日一样,我只能看到 events_20200719 之前的内容

最佳答案

  1. 要进行优化,您可以按照以下步骤操作:

    1. 根据 event_time_stamp 和其他唯一字段创建哈希,用它来过滤数据
    2. 不要从较大的初始表中删除重复行,而是从较小的临时表中删除它们,然后插入该表。
  2. 这是因为过滤器 analytics_xxxxxx.events_* 将匹配每日事件表和日内事件表(名称为 就像events_intraday_20200721

关于firebase - 与不使用通配符和 _TABLE_SUFFIX 相比,BigQuery -firebase 导出的工作方式有所不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62996535/

相关文章:

java - com.google.auth.oauth2.GoogleCredentials.createScoped 处出现 StackOverflowError(GoogleCredentials.java :222)

safari - Google Analytics 指的是哪个 Safari 版本?

android - Firebase 获取推送的 key 字符串

angular - 从 "angularfire2/database"导入 { AngularFireDatabase, FirebaseListObservable } ;

ios - Swift 3 - iOS 10 UITableView 启用 "swipe-to-delete"

git - 如何将 Google Analytics 添加到 Github 存储库

javascript - 在外部 JS 文件中访问 Google Analytics Universal Analytics

node.js - 部署云函数Firebase/Stripe时出错

google-app-engine - 使用 Google Cloud Monitoring v3 api 写入自定义时间序列

python - 用于从 Google Cloud 运行 python 脚本的事件触发器