Bagaimana saya bisa menulis prosedur tersimpan yang mengimpor data dari file CSV dan mengisi tabel?
postgresql
csv
postgresql-copy
Vardhan
sumber
sumber
Jawaban:
Lihatlah artikel singkat ini .
Solusi diparafrasekan di sini:
Buat meja Anda:
Salin data dari file CSV Anda ke tabel:
sumber
COPY zip_codes FROM '/path/to/csv/ZIP_CODES.txt' DELIMITER ',' CSV HEADER;
postgresql.org/docs/9.1/static/sql-copy.htmlJika Anda tidak memiliki izin untuk menggunakan
COPY
(yang berfungsi pada server db), Anda dapat menggunakan\copy
sebagai gantinya (yang bekerja di klien db). Menggunakan contoh yang sama dengan Bozhidar Batsov:Buat meja Anda:
Salin data dari file CSV Anda ke tabel:
Anda juga dapat menentukan kolom untuk dibaca:
Lihat dokumentasi untuk COPY :
dan perhatikan:
sumber
COPY
dan\copy
lebih dari sekadar izin, dan Anda tidak bisa begitu saja menambahkan `` untuk membuatnya berfungsi secara ajaib. Lihat deskripsi (dalam konteks ekspor) di sini: stackoverflow.com/a/1517692/157957Salah satu cara cepat untuk melakukan ini adalah dengan panda Python library (versi 0.15 atau di atas yang terbaik). Ini akan menangani pembuatan kolom untuk Anda - meskipun jelas pilihan yang dibuat untuk tipe data mungkin bukan yang Anda inginkan. Jika tidak cukup melakukan apa yang Anda inginkan, Anda selalu dapat menggunakan kode 'buat tabel' yang dihasilkan sebagai templat.
Berikut ini contoh sederhana:
Dan inilah beberapa kode yang menunjukkan kepada Anda cara mengatur berbagai opsi:
sumber
if_exists
parameter dapat diatur untuk mengganti atau menambahkan ke tabel yang ada, misalnyadf.to_sql("fhrs", engine, if_exists='replace')
df.to_sql()
sangat lambat, Anda dapat menggunakand6tstack.utils.pd_to_psql()
dari d6tstack melihat perbandingan kinerjaAnda juga dapat menggunakan pgAdmin, yang menawarkan GUI untuk melakukan impor. Itu ditampilkan di utas SO ini . Keuntungan menggunakan pgAdmin adalah ia juga berfungsi untuk basis data jauh.
Sama seperti solusi sebelumnya, Anda harus sudah memiliki tabel di database. Setiap orang memiliki solusi sendiri tetapi yang biasanya saya lakukan adalah membuka CSV di Excel, menyalin tajuk, menempelkan khusus dengan transposisi pada lembar kerja yang berbeda, tempatkan tipe data yang sesuai di kolom berikutnya kemudian salin dan tempel ke editor teks bersama dengan kueri pembuatan tabel SQL yang sesuai seperti:
sumber
Sebagian besar solusi lain di sini mengharuskan Anda membuat tabel terlebih dahulu / secara manual. Ini mungkin tidak praktis dalam beberapa kasus (misalnya, jika Anda memiliki banyak kolom di tabel tujuan). Jadi, pendekatan di bawah ini mungkin berguna.
Menyediakan jumlah lintasan dan kolom file csv Anda, Anda dapat menggunakan fungsi berikut untuk memuat tabel Anda ke tabel temp yang akan dinamai sebagai
target_table
:Baris atas diasumsikan memiliki nama kolom.
sumber
public
)Seperti yang disebutkan Paul, impor berfungsi di pgAdmin:
klik kanan pada tabel -> impor
pilih file, format, dan pengkodean lokal
di sini adalah tangkapan layar pgAdmin Jerman:
hal serupa dapat Anda lakukan dengan DbVisualizer (Saya punya lisensi, tidak yakin tentang versi gratis)
klik kanan pada tabel -> Impor Data Tabel ...
sumber
sumber
buat tabel terlebih dahulu
Kemudian gunakan perintah salin untuk menyalin detail tabel:
salin table_name (C1, C2, C3 ....)
dari 'path ke file csv Anda' pembatas ',' header csv;
Terima kasih
sumber
Gunakan kode SQL ini
kata kunci header membuat DBMS tahu bahwa file csv memiliki header dengan atribut
untuk lebih lanjut kunjungi http://www.postgresqltutorial.com/import-csv-file-into-posgresql-table/
sumber
Pengalaman pribadi dengan PostgreSQL, masih menunggu cara yang lebih cepat.
1. Buat kerangka tabel terlebih dahulu jika file disimpan secara lokal:
2. Ketika \ path \ xxx.csv ada di server, postgreSQL tidak memiliki izin untuk mengakses server, Anda harus mengimpor file .csv melalui fungsionalitas bawaan pgAdmin.
Klik kanan nama tabel pilih impor.
Jika Anda masih memiliki masalah, silakan merujuk tutorial ini. http://www.postgresqltutorial.com/import-csv-file-into-posgresql-table/
sumber
Bagaimana cara mengimpor data file CSV ke tabel PostgreSQL?
Langkah:
Perlu menghubungkan database postgresql di terminal
Perlu membuat basis data
Perlu membuat pengguna
Terhubung dengan basis data
Perlu membuat skema
Perlu membuat tabel
Impor data file csv ke postgresql
Temukan data tabel yang diberikan
sumber
IMHO, cara paling mudah adalah mengikuti " Impor data CSV ke postgresql, cara yang nyaman ;-) ", menggunakan csvsql dari csvkit , yang merupakan paket python yang dapat diinstal melalui pip.
sumber
Dengan Python, Anda dapat menggunakan kode ini untuk pembuatan tabel PostgreSQL otomatis dengan nama kolom:
Ini juga relatif cepat, saya dapat mengimpor lebih dari 3,3 juta baris dalam waktu sekitar 4 menit.
sumber
Anda juga dapat menggunakan pgfutter , atau, lebih baik lagi, pgcsv .
pgfutter cukup buggy, saya akan merekomendasikan pgcsv.
Berikut cara melakukannya dengan pgcsv:
sumber
Jika Anda memerlukan mekanisme sederhana untuk mengimpor dari teks / parsing CSV multiline, Anda dapat menggunakan:
Demo DBFiddle
sumber
DBeaver Community Edition (dbeaver.io) membuatnya mudah untuk terhubung ke database, lalu mengimpor file CSV untuk diunggah ke database PostgreSQL. Ini juga memudahkan untuk mengeluarkan kueri, mengambil data, dan mengunduh set hasil ke CSV, JSON, SQL, atau format data umum lainnya.
Ini adalah alat database multi-platform FOSS untuk pemrogram SQL, DBA, dan analis yang mendukung semua basis data populer: MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, Teradata, Firebird, Hive, Presto, dll. Ini adalah pesaing FOSS yang layak untuk TOAD untuk Postgres, TOAD untuk SQL Server, atau Toad untuk Oracle.
Saya tidak memiliki afiliasi dengan DBeaver. Saya suka harga (GRATIS!) Dan fungsionalitas penuh, tetapi saya berharap mereka akan membuka aplikasi DBeaver / Eclipse ini lebih banyak dan membuatnya mudah untuk menambahkan widget analitik ke DBeaver / Eclipse, daripada meminta pengguna untuk membayar langganan tahunan $ 199 hanya untuk membuat grafik dan grafik langsung di dalam aplikasi. Keterampilan pengkodean Java saya berkarat dan saya tidak ingin menghabiskan waktu berminggu-minggu untuk mempelajari kembali cara membuat widget Eclipse, (hanya untuk mengetahui bahwa DBeaver mungkin telah menonaktifkan kemampuan untuk menambahkan widget pihak ketiga ke dalam DBeaver Community Edition.)
Bisakah DBeaver memberi pengguna daya yang merupakan pengembang Java memberikan beberapa wawasan tentang langkah-langkah untuk membuat widget analitik untuk ditambahkan ke dalam Edisi Komunitas DBeaver?
sumber
Buat tabel dan memiliki kolom yang diperlukan yang digunakan untuk membuat tabel dalam file csv.
Buka postgres dan klik kanan pada tabel target yang ingin Anda muat & pilih impor dan Perbarui langkah-langkah berikut di bagian opsi file
Sekarang telusuri file Anda dalam nama file
Pilih csv dalam format
Pengkodean sebagai ISO_8859_5
Sekarang kebagian misc. opsi dan periksa tajuk dan klik impor.
sumber
Saya membuat alat kecil yang mengimpor
csv
file ke PostgreSQL super mudah, hanya sebuah perintah dan itu akan membuat dan mengisi tabel, sayangnya, saat ini semua bidang yang dibuat secara otomatis menggunakan jenis TEXTAlat ini dapat ditemukan di https://github.com/eduardonunesp/csv2pg
sumber
psql -h 192.168.99.100 -U postgres mydatabase -c "COPY users FROM 'users.csv' DELIMITER ';' CSV"
? Saya kira bagian di mana ia menciptakan tabel itu bagus, tetapi karena setiap bidang adalah teks, itu tidak berguna