将 CSV 文件从 Google Cloud Storage 导入到 Google Cloud SQL

Import CSV file from Google Cloud Storage to Google Cloud SQL

我正在尝试使用以下命令将 csv 文件直接导入 Google Cloud SQL。

LOAD DATA LOCAL INFILE "gs:/zuds/stg/ems/product_offering_fact/000002_0" INTO TABLE buydoc CHARACTER SET "utf8" FIELDS TERMINATED BY "^";

由于某种原因,它返回如下错误。我已确认该文件存在。但是,请注意错误字符串中的路径只有一个“/” 这是一个错误还是我遗漏了一些明显的东西?

ERROR 2 (HY000) at line 1: File 'gs:/zuds/stg/ems/product_offering_fact/000002_0' not found (Errcode: 2)

注意:如果我使用下面 link 中描述的 UI,它会起作用。但是,UI 不支持非逗号分隔的文件。 https://cloud.google.com/sql/docs/import-export

Unsupported MySQL statements: Sending any of the following types of SQL statements will generate an error with the message "Error 1290: The MySQL server is running with the google option so it cannot execute this statement"

LOAD DATA INFILE Note: LOAD DATA LOCAL INFILE is supported. SELECT ... INTO OUTFILE SELECT ... INTO DUMPFILE INSTALL PLUGIN ... UNINSTALL PLUGIN CREATE FUNCTION ... SONAME ...

https://cloud.google.com/sql/faq#supportmysqlfeatures

此外,mysql 命令行无法理解 gs:// 文件引用。

Cloud SQL 不支持 运行 具有 "gs://" 路径的 LOAD DATA LOCAL INFILE。从 UI 开始,正如文档所建议的,此时仅支持逗号分隔的文件。这里有两个解决方法:

  1. 将您的文件转换为 CSV 并通过 UI
  2. 进行导入
  3. 将 gs:// 文件下载到本地磁盘,然后 运行 LOAD DATA LOCAL INFILE 指向本地磁盘上的路径。