【问题标题】:BigQuery events calculationBigQuery 事件计算
【发布时间】:2021-03-04 10:13:34
【问题描述】:

我有一个包含开始日期时间和事件名称的事件表。 event_name 可以属于开始或结束事件。 我需要使用以下规则计算开始和结束事件对的日期时间之间的差异总和:停止事件日期时间减去该停止事件日期之前的最早开始事件日期,例如:

开始 1,开始 2,停止 1,开始 3,停止 2

sum((Stop1 - Start1),(Stop2-Start3))。

您对如何使用带有分析功能的 sql 有一些想法吗?从我的角度来看,循环是必要的,因此要么是存储过程(这是不可能的),要么是带有数据流的 apache 束来计算数据。

【问题讨论】:

    标签: google-bigquery analytics google-cloud-dataflow apache-beam


    【解决方案1】:

    您可以尝试按照 Bigquery SQL 查找 2 个 DATETIME 字段之间的差异。 推荐Doc

    SELECT DATETIME_DIFF(DATETIME '2018-02-20', DATETIME '2018-01-15', DAY) as days_diff;
    

    然后您可以编写一个 Apache Beam 代码以使用您在上面创建的 BQ-SQL 从 BQ 读取数据,然后在应用所有可以写入 Target(BQ 表或 GCS 或 BT)的转换逻辑之后。在这里你会得到样本Beam code

    【讨论】:

      猜你喜欢
      • 2021-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-01
      • 2020-01-30
      • 1970-01-01
      • 1970-01-01
      • 2021-08-16
      相关资源
      最近更新 更多