0

你好谷歌云和大查询专家:-)

我在 GCP 中有一个 cloudsql mysql 数据库和一个 BigQuery 数据库,我需要使用类似于 bigquery 联合查询的机制删除 cloudsql mysql 数据库中的某些记录。例如见下文(不在场外工作:-()

SELECT * FROM EXTERNAL_QUERY("uca-proddev-devops.us-east1.uca-useast-cloudsql-conn", " DELETE from inventory. cloud_object_events where cloud_object_id in (SELECT cloud_object_id from inventory.cloud_objects where date_created <  CURDATE() - INTERVAL 60 DAY);”);

这给了我一个错误

Invalid table-valued function EXTERNAL_QUERY
Failed to get query schema from MySQL server. Error: MysqlErrorCode(0):  at [3:15]

我在 ( https://cloud.google.com/bigquery/docs/cloud-sql-federated-queries )查看了 Cloud SQL 联合查询文档。它清楚地提到“external_database_query(string):是外部数据库的SQL方言(MySQL或PostgreSQL)中的只读查询
所以看起来我不能直接使用联合查询机制使用基于数据的条件从cloudsql中删除记录在大查询中。

从 BigQuery 导出数据并在 cloudsql 中导入以形成删除查询过于严格。是否有更方便的机制可以让我根据 BigQuery 中的数据从 cloudsql 中删除。

谢谢你的帮助

4

1 回答 1

2

您无法使用 Cloud SQL 联合表删除/更新数据。您只能在 Cloud SQL 中阅读。

您需要在其他地方实现自己的流程(Cloud Functions、Cloud Run、...)

于 2021-01-13T16:42:29.643 回答