Как я могу написать хранимую процедуру, которая импортирует данные из файла CSV и заполняет таблицу?
postgresql
csv
postgresql-copy
vardhan
источник
источник
Ответы:
Посмотрите на эту короткую статью .
Решение перефразировано здесь:
Создайте свою таблицу:
Скопируйте данные из вашего CSV-файла в таблицу:
источник
COPY zip_codes FROM '/path/to/csv/ZIP_CODES.txt' DELIMITER ',' CSV HEADER;
postgresql.org/docs/9.1/static/sql-copy.htmlЕсли у вас нет разрешения на использование
COPY
(которое работает на сервере БД), вы можете использовать\copy
вместо этого (которое работает в клиенте БД). Используя тот же пример, что и Божидар Бацов:Создайте свою таблицу:
Скопируйте данные из вашего CSV-файла в таблицу:
Вы также можете указать столбцы для чтения:
Смотрите документацию для COPY :
и обратите внимание:
источник
COPY
и\copy
намного больше, чем просто разрешения, и вы не можете просто добавить ``, чтобы он волшебным образом работал. См. Описание (в контексте экспорта) здесь: stackoverflow.com/a/1517692/157957Одним из быстрых способов сделать это является использование библиотеки панд Python (лучше всего работает версия 0.15 или выше). Это будет обрабатывать создание столбцов для вас - хотя, очевидно, выбор, который он делает для типов данных, может оказаться не тем, что вам нужно. Если это не совсем то, что вам нужно, вы всегда можете использовать код 'create table', сгенерированный как шаблон.
Вот простой пример:
А вот код, который показывает вам, как установить различные параметры:
источник
if_exists
параметр может быть установлен для замены или добавления к существующей таблице, напримерdf.to_sql("fhrs", engine, if_exists='replace')
df.to_sql()
очень медленно, вы можете использоватьd6tstack.utils.pd_to_psql()
из d6tstack посмотреть сравнение производительностиВы также можете использовать pgAdmin, который предлагает графический интерфейс для импорта. Это показано в этой теме . Преимущество использования pgAdmin заключается в том, что он также работает для удаленных баз данных.
Как и в предыдущих решениях, ваша таблица должна быть уже в базе данных. У каждого человека есть свое решение, но я обычно открываю CSV в Excel, копирую заголовки, вставляю специальные с транспозицией в другой лист, помещаю соответствующий тип данных в следующий столбец, затем просто копирую и вставляю его в текстовый редактор. вместе с соответствующим запросом на создание таблицы SQL следующим образом:
источник
Большинство других решений здесь требуют, чтобы вы создали таблицу заранее / вручную. В некоторых случаях это может быть непрактично (например, если в таблице назначения много столбцов). Таким образом, подход ниже может пригодиться.
Предоставляя путь и количество столбцов вашего CSV-файла, вы можете использовать следующую функцию для загрузки вашей таблицы во временную таблицу, которая будет называться как
target_table
:Предполагается, что в верхней строке есть имена столбцов.
источник
public
)Как упоминал Пол, импорт работает в pgAdmin:
щелкните правой кнопкой мыши по таблице -> импорт
выберите локальный файл, формат и кодировку
вот немецкий скриншот pgAdmin GUI:
То же самое вы можете сделать с DbVisualizer (у меня есть лицензия, но я не уверен насчет бесплатной версии)
щелкните правой кнопкой мыши таблицу -> Импортировать данные таблицы ...
источник
источник
сначала создайте таблицу
Затем используйте команду copy, чтобы скопировать данные таблицы:
скопировать имя_таблицы (C1, C2, C3 ....)
из 'path to your csv file' delimiter ',' csv header;
Спасибо
источник
Используйте этот код SQL
ключевое слово header позволяет СУБД знать, что файл csv имеет заголовок с атрибутами
для получения дополнительной информации посетите http://www.postgresqltutorial.com/import-csv-file-into-posgresql-table/
источник
Личный опыт работы с PostgreSQL все еще ждет более быстрого пути.
1. Сначала создайте скелет таблицы, если файл хранится локально:
2. Когда файл \ path \ xxx.csv находится на сервере, postgreSQL не имеет разрешения на доступ к серверу, вам придется импортировать файл .csv через встроенную функциональность pgAdmin.
Щелкните правой кнопкой мыши имя таблицы и выберите импорт.
Если проблема не устранена, обратитесь к этому руководству. http://www.postgresqltutorial.com/import-csv-file-into-posgresql-table/
источник
Как импортировать данные файла CSV в таблицу PostgreSQL?
шаги:
Необходимо подключить базу данных postgresql в терминале
Нужно создать базу данных
Необходимо создать пользователя
Связаться с базой данных
Нужно создать схему
Нужно создать таблицу
Импорт данных CSV-файла в postgresql
Найти данные данной таблицы
источник
ИМХО, наиболее удобный способ - следовать « Импортировать данные CSV в postgresql, удобный способ ;-) », используя csvsql из csvkit , который представляет собой пакет python, устанавливаемый через pip.
источник
В Python вы можете использовать этот код для автоматического создания таблицы PostgreSQL с именами столбцов:
Это также относительно быстро, я могу импортировать более 3,3 миллиона строк примерно за 4 минуты.
источник
Вы также можете использовать pgfutter или, что еще лучше, pgcsv .
pgfutter довольно глючный, я бы порекомендовал pgcsv.
Вот как это сделать с помощью pgcsv:
источник
Если вам нужен простой механизм для импорта из текстового / синтаксического анализа многострочного CSV, вы можете использовать:
DBFiddle Demo
источник
DBeaver Community Edition (dbeaver.io) упрощает подключение к базе данных, а затем импортирует файл CSV для загрузки в базу данных PostgreSQL. Это также упрощает выдачу запросов, получение данных и загрузку наборов результатов в CSV, JSON, SQL или другие распространенные форматы данных.
Это многоплатформенный инструмент для баз данных FOSS для программистов SQL, администраторов баз данных и аналитиков, который поддерживает все популярные базы данных: MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, Teradata, Firebird, Hive, Presto и т. Д. Это жизнеспособный конкурент FOSS для TOAD для Postgres, TOAD для SQL Server или Toad для Oracle.
Я не имею никакого отношения к DBeaver. Мне нравится цена (БЕСПЛАТНО!) И полная функциональность, но я бы хотел, чтобы они больше открывали это приложение DBeaver / Eclipse и позволяли легко добавлять аналитические виджеты в DBeaver / Eclipse, а не требовать от пользователей платить за годовую подписку всего в 199 долларов. создавать графики и диаграммы непосредственно в приложении. Мои навыки Java-кодирования устарели, и я не хочу потратить недели на то, чтобы заново научиться создавать виджеты Eclipse (только чтобы обнаружить, что DBeaver, вероятно, отключил возможность добавления сторонних виджетов в DBeaver Community Edition.)
Могут ли опытные пользователи DBeaver, которые являются разработчиками Java, дать некоторое представление о шагах по созданию аналитических виджетов для добавления в Community Edition DBeaver?
источник
Создать таблицу и иметь обязательные столбцы, которые используются для создания таблицы в CSV-файле.
Откройте postgres и щелкните правой кнопкой мыши на целевой таблице, которую вы хотите загрузить, и выберите импорт и обновите следующие шаги в разделе параметров файла.
Теперь просмотрите ваш файл в имени файла
Выберите CSV в формате
Кодировка как ISO_8859_5
Теперь перейдите на доп. Параметры и проверьте заголовок и нажмите на импорт.
источник
Я создал небольшой инструмент, который
csv
очень легко импортирует файл в PostgreSQL, просто команду, которая будет создавать и заполнять таблицы, к сожалению, в настоящий момент все автоматически созданные поля используют тип TEXTЭтот инструмент можно найти на https://github.com/eduardonunesp/csv2pg.
источник
psql -h 192.168.99.100 -U postgres mydatabase -c "COPY users FROM 'users.csv' DELIMITER ';' CSV"
? Я думаю, что часть, где она создает таблицу, хороша, но так как каждое поле - текст, это не супер полезно