【问题标题】:How to export data from Cloud SQL to BigQuery on a daily basis?如何每天将数据从 Cloud SQL 导出到 BigQuery?
【发布时间】:2020-07-02 00:38:23
【问题描述】:

我创建了与 Cloud SQL 的连接并使用 EXTERNAL_QUERY() 将数据导出到 Bigquery。我的问题是,由于 Cloud SQL 表未分区,因此我不知道导出新日期数据的计算效率高的方法;但是,它确实有一个日期列date_field,但它的数据类型为char

我尝试运行以下查询,以调度类似类型,以便插入结果:

SELECT * FROM EXTERNAL_QUERY("connection", "SELECT period FROM table where date_field = cast(current_date() as char);")

但运行时间很长,而:

SELECT * FROM EXTERNAL_QUERY("connection", "SELECT period FROM table where date_field = '2020-03-20';")

几乎是即时的。

【问题讨论】:

  • 您希望在什么环境中运行这些查询?
  • @FelipeHoffa 我想在 BigQuery 中运行这些查询;外部查询是 MySQL 格式。
  • 是的。但是你想自动化这个。谁将运行查询,以及在哪个环境中运行。在 BigQuery 中运行查询的方法有很多种...
  • @FelipeHoffa 我将使用 BigQuery 中的预定查询选项来提取最新一天的数据并附加到结果中。抱歉,不清楚。

标签: mysql google-bigquery google-cloud-sql


【解决方案1】:

首先,强烈建议将“date_field”列转换为数据类型 DATE。这将在未来提高简单性和性能。

当比较两个字符串时,MySQL 会利用索引来加速查询。例如,当将字符串定义为“2020-03-20”时,这会成功执行。将当前日期转换为字符串时,比较中使用的字符集可能不同,因此无法使用索引。

您可能希望在转换 current_datetime 后检查字符集,并与“date_field”列中的值进行比较。然后,您可以使用此命令而不是强制转换: CONVERT(current_date() USING enter_char_sets_here)

这里是 documentation 用于不同的转换功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-03
    • 2021-08-26
    • 2017-11-13
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 2022-07-07
    • 1970-01-01
    相关资源
    最近更新 更多