如何将 .csv 文件导入 Hasura PostgreSQL 数据库?

Posted

技术标签:

【中文标题】如何将 .csv 文件导入 Hasura PostgreSQL 数据库?【英文标题】:How do I import a .csv file into my Hasura PostgreSQL database? 【发布时间】:2018-05-02 23:21:30 【问题描述】:

我有一个 .csv 文件中的数据,我想将其导入到我的 Hasura 集群的 PostgreSQL 数据库实例中。最好的方法是什么?

【问题讨论】:

最好的方法是发布您的代码。以及由此产生的错误信息。 #期间 【参考方案1】:

使用适当的架构创建 table_name 以吸收您的 CSV 数据;使用 psql 将数据流式传输到 postgres。执行这个命令:

$ psql <postgres-url> -d <database-name> -U <user-name> -c \
  "copy table_name from STDIN with delimiter as ',';" \
  < /path/to/file.csv

您将拥有来自表table_name内的CSV文件的数据

【讨论】:

如果本地没有安装psql,也可以使用ms cp和ms exec命令:$ hasura ms cp /path/to/file.csv hasura/postgres:/data.csv$ hasura ms exec postgres -n hasura -- psql -U admin -d hasuradb -c "copy table_name from STDIN with delimiter as ',';" &lt; /data.csv 您有hasura microservice 命令的参考吗?我在Hasura CLI docs 中看不到它【参考方案2】:

在此处添加我的答案以供参考。在 Heroku 中部署 Hasura 时,我们可以通过从 Heroku 资源仪表板访问 Postgres 插件来获取 Postgres 数据库的临时凭证。然后,您可以使用设置选项卡上提供的 url 直接访问数据库。

psql 'postgres://UUUUUU:PPPPP@ec2-54-247-72-30.eu-west-1.compute.amazonaws.com:5432/DBNAME'

然后在 Postgres 控制台中,您可以执行以下操作:

\copy countryinfo from 'countryinfo.csv' with delimiter as E'\t';

以上是从 Geonames.org 下载的制表符分隔文件。注意:我在输入之前删除了注释行。

【讨论】:

以上是关于如何将 .csv 文件导入 Hasura PostgreSQL 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

CSV 文件格式

用于文件 CSV 导入的 API 设计,最佳实践方法?

如何将手机中的csv文件的内容导入到SQLite数据库中

如何将csv导入mysql和mysql导出csv

如何把csv文件导入到sql数据库

如何把csv文件批量导入到mysql数据库