在 Cloud SQL 中使用 LOAD DATA INFILE 和 SELECT INTO OUTFILE

Use LOAD DATA INFILE and SELECT INTO OUTFILE in Cloud SQL

我正在测试 Google Cloud SQL 我必须测试指令 LOAD DATA INFILESELECT...INTO OUTFILE.

我知道可以使用指令 LOAD DATA LOCAL INFILE 代替 LOAD DATA INFILE,但如何在 Cloud SQL 中使用它?

指令SELECT...INTO OUTFILE可以按原样使用吗?

谢谢 Renzo 的回答,但是当我尝试执行指令 SELECT.. INTO OUTFILE 当我连接到 Cloud SQL 实例时,我收到以下错误消息:

第 1 行的错误 1045 (28000):用户 'root'@'%'

的访问被拒绝

我尝试从连接到 MySQL 上的云 SQL 实例的计算机使用指令 LOAD DATA LOCAL INFILE,它成功了。我使用位于我计算机上的文件将 CSV 数据成功导入 table。但我想知道我是否可以使用存储桶中的文件来做同样的事情...

我试着解释一下我需要做什么:

我们正在将我们的网站迁移到 GCP 应用 Engine/Cloud SQL。我们广泛使用这两条指令 LOAD DATA INFILE which select files from a folder "ftp" 将它们加载到数据库中。同样,我们使用 SELECT INTO OUTFILE 将数据导出为 CSV 文件并放入我们网站的文件夹中。所以我关心的是能够在 App Engine/Cloud SQL.

上使用相同的过程

区别在于网站实例和数据库实例在GCP上是分开的。我们应该在 GCP 上使用存储桶来替换我们的文件夹吗?或者我们应该在 App Engine / Cloud SQL 实例上创建文件夹吗?您认为最好的解决方案是什么?

提前致谢

根据关于 Importing data into Cloud SQL 的页面,

you can also use the LOAD DATA LOCAL INFILE statement in the mysql client, which loads a local file to the database

您可以按照此 link 中的示例步骤启动 mysql 客户端 ,方法是首先连接到您的云 SQL 实例云Shell。连接后,您将能够执行导入语句:LOAD DATA LOCAL INFILE.

相同的步骤可以应用于导出,语法 SELECT...INTO OUTFILE 可以按原样使用。与其他替代方案一起,也可以在 Exporting data from Cloud SQL :

上找到

Exporting in CSV format is equivalent to running the following SQL statement:

SELECT <query> INTO OUTFILE ... CHARACTER SET 'utf8mb4'
        FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
        ESCAPED BY '\' LINES TERMINATED BY '\n'

一旦你执行了这些操作,也建议check their status特别是如果它很长运行或者发生错误。