我希望能够将 ergast(非商业用途的赛车数据历史记录)数据导入 PostgreSQL

我希望能够将 ergast(非商业用途的赛车数据历史记录)数据导入 PostgreSQL

我正在寻找一种方法来埃尔加斯特数据导入 PostgreSQL。我曾想过编写一些代码来从 API 中提取数据,但有 SQL 转储MySQL 和 ANSI但都不能运行在 PostgreSQL 上。

我不想导入 MySQL 而是导出到 CSV...有没有更好的方法?

答案1

我一直在为可能要做的演示而玩弄这个,并且使用一些基本的 UNIX 工具快速找到了一个解决方案... 虽然很老套,但确实有效。

cat  f1db_ansi.sql | sed 's/int(..)/int/' | sed 's/ \+AUTO_INCREMENT//' |  sed "s/\\\'/\'\'/g" |  sed 's/UNIQUE KEY \"\(\w\+\)\"/UNIQUE /' | sed 's/^ *KEY .*(\"\(.*\)\")/CHECK ("\1" > 0)/' | sed 's/ date NOT NULL DEFAULT .0000.*,/ date,/'| psql -h 127.0.0.1 -U postgres -d f1 -q -b

其中 f1db_ansi.sql 是从站点转储的 ANSI SQL 数据。

截至 2017 年 7 月 25 日,这是正确的。

答案2

您可以按照本指南了解如何从 mysql 使用 pgloader:https://github.com/dimitri/pgloader/blob/master/docs/tutorial/mysql.rst

相关内容