无法从控制台将.csv导入Cloud SQL

时间:2019-01-21 21:22:07

标签: postgresql csv google-cloud-platform google-cloud-storage google-cloud-sql

我尝试了多种方法来将.csv文件导入Cloud SQL(PostgreSQL),但没有成功。

psql -f import.sql不起作用。它说我必须是超级用户才能导入,但是\ copy起作用。

所以我尝试了\ copy,但是失败了。我得到:

postgres=> \copy ppw_raw FROM 'H:\data\data.csv' WITH (FORMAT csv);

server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.

所以最后我尝试从https://console.cloud.google.com/path-to-sql-instance

我将.csv上载到存储桶,然后单击所有按钮以将.csv(在存储桶中)导入到想要的数据库/表中,并将我要导入为的用户(创建的用户)表格,该表格拥有我要选择的数据库),

,我弹出消息:

Import failed:  Import CSV error: ERROR: relation "<my-table-name>"
does not exist.

但是确实存在该表。创建表命令成功,当我描述该表时,该表存在。

我现在尝试了三种导入.csv的方法,但报告的截止日期要求很高。

任何地方的任何人都可以通过任何方式成功地将.csv文件导入Google Cloud SQL / PostgreSQL吗?

3 个答案:

答案 0 :(得分:0)

我尝试了多种方法将自定义CSV文件导入CloudSQL(PostgreSQL)数据库实例。似乎您正在尝试将数据导入到数据库中不存在的表中。当我尝试导入不存在的表时,我遇到了同样的错误。

要导入CSV文件,请确保:

  • CSV文件的列数与数据库中的表相同。
  • 文件中的数据具有正确的结构,可以表示CSV文件。
  • 在将CSV文件导入CloudSQL之前,首先从表中导出几行,然后打开文件以查看数据的表示方式。将数据与要导入的CSV文件进行比较,并确保以相同的方式表示数据。导出表单控制台时,选择将CSV导出到的存储桶文件夹,选择CSV选项,然后在SQL query中添加以下命令SELECT * FROM products LIMIT 5;。它只会从数据库中导出前5条记录,因此不会花费很多时间。

要在CloudSQL(PostgreSQL)数据库中导入文件:

首先确保该表存在于数据库中。连接到您的CloudSQl(PostgreSQL)实例。运行命令SELECT * FROM pg_catalog.pg_tables;列出所有表。如果您在列表中找到了表,则在将数据导入数据库时​​,请使用与Table完全相同的名称。

  1. 将CSV文件上传到存储桶文件夹中

  2. 在SQL页面中找到CloudSQL(PostgreSQL)实例,然后单击实例的名称。

  3. Instance details页上,单击Import

  4. Cloud Storage file中,从存储桶中选择CSV文件。

  5. Format of import中,选择CSV

  6. table中输入要在其中导入数据的表的名称。

  7. 单击Import,将导入数据。

我已经尝试过上述方法,并且已成功将自定义CSV文件上传到CloudSQL(PostgreSQL)。

答案 1 :(得分:0)

运行命令:

  1. gcloud init :借助于此设置项目ID
  2. gcloud sql connect practice-id-1 --user = root :输入mysql
  3. 创建要在其中导入数据的数据库和表架构
  4. 然后使用import,将csv导入到创建的数据库和模式中。

这是我在mysql中的前两个命令所做的图片:

enter image description here

enter image description here

enter image description here

答案 2 :(得分:0)

运行命令:

  1. gcloud init :借助于此设置项目ID
  2. gcloud sql connect your_mysql_instance_name --user = root :输入mysql
  3. 创建要在其中导入数据的数据库和表架构
  4. 然后使用import,将csv导入到创建的数据库和模式中。

这是我在mysql中的前两个命令所做的图片:

enter image description here

enter image description here

enter image description here