【问题标题】:Import/Export data from Cloud SQL from/to CSV files从 Cloud SQL 导入/导出数据到 CSV 文件
【发布时间】:2019-10-03 23:24:41
【问题描述】:

在 Cloud SQL 上,使用 MySQL 引擎,如何替换功能 LOAD DATA INFILE ... REPLACE?

我们正在使用 App Engine 和 Cloud SQL 将我们的网络平台迁移到 Google Cloud。

我们使用 IGNORE 或 REPLACE 模式的 LOAD DATA INFILE 将 CSV 文件导入我们的表中。

由于 Cloud SQL 不支持指令 LOAD DATA INFILE,我们如何设法替换它?

我尝试使用 gcloud sql import csv 和 Cloud SQL API,但似乎不存在忽略或替换重复数据的选项。

举个例子,这里是导入数据的表:

C1 | C2 | C3 | C4
-----------------
1  | 2  | 3  | A |
4  | 5  | 6  | B |
7  | 8  | 9  | C |

在这张表上,列 C1+C2+C3 上有一个唯一索引

现在我需要导入一个包含以下内容的 CSV 文件:

1,2,3,AA

如果我使用带有选项 REPLACE 的 LOAD DATA INFILE,导入后的表会是这样的:

C1 | C2 | C3 | C4
-----------------
1  | 2  | 3  | AA |
4  | 5  | 6  | B  |
7  | 8  | 9  | C  |

所以,我想使用 gcloud sql import csv 或 Cloud SQL API 在 Cloud SQL 上获得相同的行为。

我们需要使用 PHP 以编程方式执行此操作。

有可能还是有其他可能?

谢谢

【问题讨论】:

    标签: php mysql google-cloud-platform google-cloud-sql import-csv


    【解决方案1】:

    App Engine 支持 LOAD DATA LOCAL INFILE。

    这个问题的答案在这些链接中:

    Importing Data to Google Cloud SQL via CSV

    Google Cloud SQL: Alternative to LOAD DATA INFILE

    【讨论】:

    • 感谢您的回答,但我仍然不明白如何将文件从存储桶传输到 Cloud SQL 实例,然后使用 LOAD DATA LOCAL INFILE。我的意思是,可以将文件从我的本地计算机手动复制到 Cloud Shell,但是如何使用 PHP 和存储桶以编程方式进行复制?
    • 好的,我刚刚明白怎么做。我将文件从 GCP 存储桶复制到 App Engine,然后使用 LOAD DATA LOCAL INFILE 将其导入数据库。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多