GCP CLOUD SQL拒绝预聚合权限 1使用预聚合到外部数据库 推荐方式 2使用未记录的标志loadPreAggregationWithoutMetaLock

问题描述

我正在尝试通过Google Cloud Platform上的CLOUD sql使用预聚合,但是数据库拒绝访问并给出错误语句违反了GTID一致性。 任何帮助表示赞赏。

解决方法

Cube.js由CREATE TABLE ... SELECT完成了预聚合,但是您在带有--enforce-gtid-consistency的Google SQL上使用MySQL(有限制)。

由于只能记录交易安全的语句,因此使用CREATE TABLE ... SELECT(以及其他一些SQL)存在局限性,因为该语句实际上被记录为两个单独的事件。

有两种方法可以解决此问题:

1。使用预聚合到外部数据库。 (推荐方式)。

https://cube.dev/docs/pre-aggregations/#read-only-data-source-pre-aggregations

2。使用未记录的标志loadPreAggregationWithoutMetaLock

注意:此标志是实验性的,可以在功能中删除或更改。

Take a look at the source code

您可以直接在驱动程序构造函数中传递它。这将产生两个SQL语句以通过限制:

  • CREATE TABLE
  • INSERT INTO

谢谢