Postgres Bulk Insert

Postgres Bulk Insert



Joukkolisäys on prosessi, joka lisää useita tietorivejä taulukkoon yhdellä toiminnolla. Tämä voi olla paljon nopeampaa kuin yhden rivin lisääminen kerrallaan, varsinkin kun käsitellään suuria tietomääriä.

Yleisin tapa tehdä joukkolisäys PostgreSQL:ssä on COPY-komento, joka voi ottaa tiedot tiedostosta tai vakiosyötteestä ja lisätä sen taulukkoon. COPY-komento edellyttää, että tiedot ovat tietyssä muodossa, yleensä CSV- tai tekstitiedostona.

Katsotaanpa, kuinka tätä komentoa käytetään joukkolisäyksen suorittamiseen PostgreSQL:ssä.







PostgreSQL joukkolisäys

Tutustutaan joukkolisäyksen suorittamiseen PostgreSQL:ssä.



Valmistele tietosi

Ennen kuin teet joukkolisäyksen, varmista, että kohdetiedot ovat sopivassa muodossa. Suosittelemme, että määrität tietosi CSV- tai TSV-muodossa. Voit jäsentää kohdetiedot riveiksi ja sarakkeiksi, jotka on erotettu pilkuilla tai sarkainmerkeillä.



Yhdistä PostgreSQL:ään

Muodosta seuraavaksi yhteys PostgreSQL-tietokantaan käyttämällä haluamaasi asiakasohjelmaa. Tässä opetusohjelmassa käytämme PSQL-apuohjelmaa käytön helppouden ja yleisen käytön helpottamiseksi.





$ psql -SISÄÄN postgres -d < tietokannan nimi >

Voit esimerkiksi suorittaa seuraavan kyselyn käyttääksesi user_information -tietokantaa:

$ psql -SISÄÄN postgres -d Käyttäjän tiedot

Jos sinulla ei ole kohdetietokantaa, voit luoda sen CREATE DATABASE -komennolla:



LUO TIETOKANTA < db_nimi >

Luo taulukko

Seuraavaksi meidän on varmistettava, että taulukko, johon haluamme lisätä tiedot, on olemassa. Taulukon rakenteen on vastattava tietorakennetta, mukaan lukien tuetut tietotyypit.

Jos taulukkoa ei ole olemassa, voit käyttää CREATE TABLE -komentoa:

LUO TABLE network_users (
id SARJAN ENSISIJAINEN AVAIN,
käyttäjätunnus VARCHAR ( 255 ) EI TYHJÄ,
ip_address INET,
mac_address MACADDR,
miimi TEKSTI
) ;

Annetun komennon tulee luoda 'verkkokäyttäjät'-niminen taulukko, jossa on id-, username-, ip_address-, mac_address- ja mime-sarakkeet.

Kun taulukko on valmis, voimme ladata tiedot PostgreSQL-taulukkoon. Jälleen on hyvä varmistaa, että tiedostoon pääsee käsiksi koneelta, jossa palvelin on käynnissä.

Suorita joukkolisäys

Seuraavaksi voimme käyttää COPY-komentoa ladataksesi tiedot tiedostosta tietokantataulukkoon. Komennon syntaksi on seuraava:

KOPIO taulukon_nimi ( sarake1, sarake2, sarake3 )
FROM 'polku/tietotiedostoon'
KANSSA ( MUOTO csv | teksti, DELIMITER 'erotin' , HEADER ) ;

Voit määrittää muodon (CSV tai teksti), tiedostossasi käytetyn erottimen (esim. ',' CSV:lle, '\t' TSV:lle) ja sen, sisältääkö tiedostosi otsikkorivin.

Esimerkiksi tietojen kopioimiseksi 'verkkokäyttäjät'-taulukkoon voimme suorittaa komennon seuraavasti:

kopioi verkkokäyttäjät ( id , käyttäjätunnus, ip_osoite, mac_osoite, mime ) alkaen 'verkkokäyttäjät.
csv'
kanssa ( muoto csv, erotin ',' , otsikko ) ;

Näin PostgreSQL voi ladata tiedot tiedostosta taulukkoon. Voit tarkistaa lisäyksen onnistumisen kyselyllä taulukon tiedoista.

PostgreSQL joukkolisäys PgAdmin

Voimme myös käyttää pgAdminin tarjoamaa graafista käyttöliittymää datatiedoston tuomiseen.

Aloita käynnistämällä pgAdmin ja muodosta yhteys PostgreSQL-tietokantaan antamalla tarvittavat yhteystiedot.

Etsi seuraavaksi taulukko, johon haluat tehdä joukkolisäyksen. Löydät tietokannat ja taulukot selainpaneelista.

Napsauta taulukkoa hiiren kakkospainikkeella ja valitse 'Tuo/Vie'.

Valitse ohjatussa Import/Export-toiminnossa vaihtoehto 'Tuo' ja valitse tietolähteen tyyppi. Voit esimerkiksi tuoda kyselyn tai leikepöydän tiedostosta.

Anna seuraavassa vaiheessa joukkolisäyksen tiedoston tiedot. Valitse tiedostomuoto (CSV, TSV, määrittääksesi polun datatiedostoosi ja aseta tiedostossa käytettävä erotin.

Kun olet tyytyväinen tiedostojen tuontiasetuksiin, napsauta 'Ok' aloittaaksesi tuontiprosessin. Sinun pitäisi nähdä prosessin tila oikeassa alakulmassa.

Voit tarkistaa, onko tuonti onnistunut avaamalla Kyselytyökalun ja suorittamalla kyselyn:

VALITSE * FROM network_users;

Lähtö :

Johtopäätös

Tutkimme, kuinka PSQL:n ja pgAdminin avulla voidaan suorittaa joukkolisäys ulkoisesta datatiedostosta PostgreSQL-tietokantataulukkoon.