Comment faire pour importer le fichier CSV des données dans une table PostgreSQL?
Comment puis-je écrire une procédure stockée que l'importation des données à partir d'un fichier CSV et remplit la table?
- Pourquoi une procédure stockée? COPIE de l'astuce
- J'ai une interface utilisateur qui télécharge le fichier csv, pour accrocher cette j'ai besoin de la procédure stockée qui copie les données à partir du fichier cvs
- C'est ce que la COPIE ne...
- pourriez-vous élaborer sur la façon d'utiliser le COPIER ?
- Bozhidar Batsov vous ai déjà donné un lien vers un exemple, l'amende manuel pourrait également aider: postgresql.org/docs/8.4/interactive/sql-copy.html
- Manuel actuel: postgresql.org/docs/current/static/sql-copy.html
- Connexes: stackoverflow.com/questions/17662631/...
- Voir cette réponse: stackoverflow.com/a/42726226/1614973
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à ce court article.
Solution paraphrase ici:
Créer votre table:
De copier des données à partir de votre fichier CSV à la table:
COPY zip_codes FROM '/path/to/csv/ZIP_CODES.txt' DELIMITER ',' CSV HEADER;
postgresql.org/docs/9.1/static/sql-copy.htmlpsql
) à PARTIR de./relativePath/file
? Fonctionne pas pour moiSi vous n'avez pas la permission d'utiliser
COPY
(qui travaillent sur le serveur de base de données), vous pouvez utiliser\copy
à la place (qui fonctionne dans la base de données client). En utilisant le même exemple que Bozhidar Batsov:Créer votre table:
De copier des données à partir de votre fichier CSV à la table:
Vous pouvez également spécifier les colonnes à lire:
COPY
et\copy
est beaucoup plus que juste des autorisations, et vous ne pouvez pas simplement ajouter un ` faire de la magie de travail. Voir la description (dans le contexte de l'exportation) ici: stackoverflow.com/a/1517692/157957Un moyen rapide de le faire est avec le Python pandas de la bibliothèque (la version 0.15 ou ci-dessus fonctionne le mieux). Cela permettra de gérer la création de colonnes pour vous - même si, évidemment, le choix des types de données peuvent ne pas être ce que vous voulez. Si ce n'est pas tout à fait faire ce que vous voulez, vous pouvez toujours utiliser l'option 'create table' code généré en tant que modèle.
Voici un exemple simple:
Et voici un code qui vous montre comment définir les différentes options:
if_exists
paramètre peut être réglé pour remplacer ou ajouter à une table existante, par exempledf.to_sql("fhrs", engine, if_exists='replace')
df.to_sql()
est vraiment lent, vous pouvez utiliserd6tstack.utils.pd_to_psql()
à partir de d6tstack voir comparaison des performancesVous pouvez également utiliser pgAdmin, qui offre une interface graphique pour effectuer l'importation. Qui est indiqué dans ce Fil. L'avantage d'utiliser pgAdmin est qu'il fonctionne aussi pour les bases de données distantes.
Un peu comme les solutions précédentes, vous auriez besoin d'avoir votre table sur la base de données déjà. Chaque personne a sa propre solution, mais ce que j'ai l'habitude de faire est d'ouvrir le fichier CSV dans Excel, copier les en-têtes, de collage spécial avec la transposition sur une autre feuille de calcul, le lieu, le type de données correspondant à la colonne suivante, puis il suffit de copier et de le coller dans un éditeur de texte ainsi que les SQL de création de table de requête comme ceci:
La plupart des autres solutions ici nécessitent que vous créez la table à l'avance/manuellement. Cela peut ne pas être pratique dans certains cas (par exemple, si vous avez un grand nombre de colonnes dans la table de destination). Ainsi, l'approche ci-dessous peut être pratique.
De fournir le chemin d'accès et le nombre de colonnes de votre fichier csv, vous pouvez utiliser la fonction suivante pour charger votre table pour une table temporaire qui sera nommé comme
target_table
:La rangée du haut est supposé avoir les noms de colonne.
public
)Comme Paul l'a mentionné, l'importation ne fonctionne dans pgAdmin:
clic droit sur le tableau -> import
sélectionnez fichier local, le format et le codage
ici est un allemand pgAdmin GUI capture d'écran:
similaires chose que vous pouvez faire avec DbVisualizer (j'ai une licence, vous ne savez pas à propos de la version gratuite)
clic droit sur un tableau -> Importer les Données de la Table...
créer une table
Puis utilisez la commande copier pour copier les informations de la table:
copie table_name (C1,C2,C3....)
de 'chemin d'accès à votre fichier csv' délimiteur ',' csv en-tête;
Grâce
Expérience personnelle avec PostgreSQL, toujours en attente d'un moyen plus rapide.
1. Créer une table squelette d'abord si le fichier est stocké localement:
2. Lorsque l' \chemin\xxx.csv est sur le server, postgreSQL n'a pas l'
l'autorisation d'accès au serveur, vous devez importer le .fichier csv à travers le pgAdmin construit dans la fonctionnalité.
Cliquez-droit sur le nom de la table, choisissez importer.
Si vous avez encore des problèmes, veuillez consulter ce tutoriel.
http://www.postgresqltutorial.com/import-csv-file-into-posgresql-table/
Utiliser ce code SQL
l'en-tête de mot-clé vous permet de le SGBD savoir que le fichier csv en avoir un en-tête avec des attributs
pour plus de visite http://www.postgresqltutorial.com/import-csv-file-into-posgresql-table/
À mon humble avis, le moyen le plus pratique est de suivre "Importer des données CSV dans postgresql, le confortable 😉", à l'aide de csvsql de csvkit, qui est un python package installable via pip.
En Python, vous pouvez utiliser ce code pour automatique PostgreSQL création de la table avec les noms de colonne:
Il est également relativement rapide, je peux importer plus de 3,3 millions de lignes dans environ 4 minutes.
Comment faire pour importer le fichier CSV des données dans une table PostgreSQL?
suit:
Besoin de connecter une base de données postgresql dans le terminal
Besoin de créer une base de données
Besoin de créer un utilisateur
Se connecter avec la base de données
Besoin de créer schéma
Besoin pour créer la table
D'importation de fichier csv de données de postgresql
Trouver la table de données
Créer une table et ont exigé que les colonnes qui sont utilisés pour la création de la table dans le fichier csv.
Ouvrir postgres et faites un clic droit sur la table cible que vous souhaitez charger & sélectionnez importer et mettre à Jour les étapes suivantes dans options de fichier section
Maintenant parcourir votre fichier dans le nom de fichier
Sélectionnez csv en format
Encodage ISO_8859_5
Maintenant goto Misc. options et contrôler l'en-tête et cliquez sur importer.
Si vous avez besoin d'mécanisme simple pour importer du texte/parse multiligne CSV, vous pouvez utiliser:
DBFiddle Démo
J'ai créé un petit outil que les importations
csv
fichier dans PostgreSQL super facile, il suffit d'une commande et il permettra de créer et de remplir les tables, malheureusement, pour le moment tous les domaines créé automatiquement utilise le type de TEXTEL'outil peut être trouvé sur https://github.com/eduardonunesp/csv2pg
psql -h 192.168.99.100 -U postgres mydatabase -c "COPY users FROM 'users.csv' DELIMITER ';' CSV"
? Je suppose que la partie où il crée la table est belle, mais, puisque chaque champ de texte c'est pas super utile