Как импортировать файл.csv в базу данных Hasura PostgreSQL?
У меня есть данные в файле.csv, которые я хочу импортировать в экземпляр базы данных PostgreSQL моего кластера Hasura. Какой лучший способ сделать это?
3 ответа
1) Перенаправьте порт Hasres Postgres на локальный порт и сохраните его в одном окне терминала:
$ hasura microservice port-forward postgres -n hasura --local-port 6432
2) Создать table_name
с соответствующей схемой для поглощения ваших данных CSV; используйте psql для потоковой передачи данных на postgres. Выполните это другое окно терминала:
$ psql -h localhost -p 6432 -d hasuradb -U admin -c \
"copy table_name from STDIN with delimiter as ',';" \
< /path/to/file.csv
Вы будете иметь данные из файла CSV внутри таблицы table_name
Добавляю сюда свой ответ для справки. При развертывании Hasura в Heroku мы можем получить временные учетные данные для базы данных Postgres, открыв надстройку Postgres из панели управления ресурсами Heroku. Затем вы можете получить доступ к базе данных напрямую, используя 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. Примечание: я удалил строки комментариев перед вводом.
Вы можете использовать pgAdmin , чтобы упростить задачу. Подключитесь к своему экземпляру postgres, затем перейдите к «Импорт/экспорт данных» в меню «Инструменты» после выбора нужной таблицы на левой боковой панели.
Выберите файл .csv и нажмите «ОК».
Теперь все ваши данные должны быть успешно импортированы.