mysql - Apache Airflow - MySQL 到 BigQuery - 如何获取上个月的数据?

标签 mysql google-cloud-platform google-bigquery airflow

我们正在 Google BigQuery 中构建数据仓库解决方案,使用 Apache Airflow 将 MySQL 表传输到云端。我每天都会使用

进行传输并运行增量获取数据

MySQLToGoogleCloudStorageOperator => GoogleCloudStorageTBigQueryOperator

在 .sql 中使用该位:

WHERE timestamp BETWEEN '{{ macros.ds_add(ds, -1) }}' AND '{{ ds }}'

它工作正常,但我们有一个表,我们希望每月更新一次,即每月 10 日,但获取上个月整个月的数据 - 所以当以 2019-03-10 的执行日期运行时,我们想要获取

timestamp BETWEEN '2019-02-01 00:00:00' AND '2019-03-01 00:00:00'

等等。最好、最简单的方法是什么?

最佳答案

您考虑过 Cloud BQ 分区吗?

您可以创建每月分区(本质上是动态的),并且仅修补您希望在 Cloud BQ 上发生变化的月份的数据。

所有这些都可以通过 Cloud Composer 和 Cloud Functions 之间的耦合来非常巧妙地编排。

关于mysql - Apache Airflow - MySQL 到 BigQuery - 如何获取上个月的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55395231/

相关文章:

mysql - 替换字段中的批量值 - MySql

python - 有没有办法通过 JSON key 文件本身而不是文件路径进行 Google Cloud Python 身份验证?

google-api - 是否可以将 google 身份验证(即服务帐户)用于自定义 API?

python-3.x - 如何使用 google-cloud-container 模块在 python 中的谷歌云平台中创建 kubernetes 集群

google-bigquery - ST_GeogFromGeoJSON 在 bigquery 中失败而在 postgres 中成功

mysql - 数字可以成为 MySQL 中列名的一部分吗?如果是,是否可取?

php - 更新前检查列是否为零

php - 我如何优化这个花费大量时间的查询?

google-analytics - BigQuery 与 Google Analytics 报告中的总 session 数

python - 使用变量/维度过滤时,使用 Google Core Reporting API 和 bigquery 进行的用户计数不正确且不一致