Postgres Bulk Insert

Postgres Bulk Insert



Et bulkinsert er en prosess som legger til flere rader med data til en tabell i en enkelt operasjon. Dette kan være mye raskere enn å sette inn én rad om gangen, spesielt når det er snakk om store datamengder.

Den vanligste metoden for å utføre en masseinnsetting i PostgreSQL er COPY-kommandoen som kan ta dataene fra en fil eller standardinndata og sette dem inn i en tabell. COPY-kommandoen krever at dataene skal være i et spesifikt format, vanligvis en CSV- eller tekstfil.

La oss utforske hvordan du bruker denne kommandoen til å utføre en masseinnsetting i PostgreSQL.







PostgreSQL Bulk Insert

La oss utforske trinnene for å utføre en masseinnsetting i PostgreSQL.



Forbered dine data

Før du utfører en masseinnsetting, sørg for at måldataene er i passende format. Vi anbefaler at du konfigurerer dataene dine i CSV eller TSV. Du kan strukturere måldataene i rader og kolonner som er atskilt med kommaer eller tabulatorer.



Koble til PostgreSQL

Koble deretter til PostgreSQL-databasen ved å bruke ønsket klient. For denne opplæringen bruker vi PSQL-verktøyet for enkel bruk og universell tilgang.





$ psql -I postgres -d < databasenavn >

Du kan for eksempel kjøre følgende spørring for å bruke databasen user_information:

$ psql -I postgres -d brukerinformasjon

Hvis du ikke har måldatabasen, kan du opprette den ved å bruke CREATE DATABASE-kommandoen:



LAG DATABASE < db_navn >

Lag en tabell

Deretter må vi sørge for at tabellen der vi ønsker å sette inn dataene eksisterer. Tabellstrukturen må samsvare med datastrukturen inkludert de støttede datatypene.

Hvis tabellen ikke eksisterer, kan du bruke CREATE TABLE-kommandoen:

CREATE TABLE network_users (
id SERIELL PRIMÆR NØKKEL,
brukernavn VARCHAR ( 255 ) IKKE NULL,
ip_adresse INET,
mac_adresse MACADDR,
mime TEKST
) ;

Den gitte kommandoen skal lage en tabell kalt 'network_users' med id, brukernavn, ip_address, mac_address og mime-kolonnene.

Når tabellen er klar, kan vi laste dataene inn i PostgreSQL-tabellen. Igjen er det greit å sørge for at datafilen er tilgjengelig fra maskinen der serveren kjører.

Utfør masseinnlegget

Deretter kan vi bruke COPY-kommandoen til å laste dataene fra filen inn i databasetabellen. Kommandosyntaksen er som følger:

COPY tabellnavn ( kolonne1, kolonne2, kolonne3 )
FRA 'bane/til/datafil'
MED ( FORMAT csv | tekst, DELIMITER 'avgrensning' , OVERSKRIFT ) ;

Du kan spesifisere formatet (CSV eller tekst), skilletegnet som brukes i filen (f.eks. ',' for CSV, '\t' for TSV), og om filen inneholder en overskriftsrad.

For eksempel, for å kopiere dataene til 'network_users'-tabellen, kan vi kjøre kommandoen som følger:

kopier nettverksbrukere ( id , brukernavn, ip_adresse, mac_adresse, mime ) fra 'nettverksbrukere.
csv'
med ( format csv, skilletegn ',' , Overskrift ) ;

Dette gjør at PostgreSQL kan laste dataene fra filen inn i tabellen. Du kan bekrefte om innsettingen er vellykket ved å spørre etter dataene i tabellen.

PostgreSQL Bulk Insert PgAdmin

Vi kan også bruke et grafisk grensesnitt som pgAdmin gir for å importere en datafil.

Start med å starte pgAdmin og koble til din PostgreSQL-database ved å oppgi de nødvendige tilkoblingsdetaljene.

Deretter finner du tabellen der du ønsker å utføre en masseinnsetting. Du kan finne databasene og tabellene i nettleserpanelet.

Høyreklikk på tabellen og velg 'Importer/eksporter'.

I «Import/Export»-veiviseren velger du «Import»-alternativet og velger datakildetypen. Du kan for eksempel importere en spørring eller utklippstavlen fra en fil.

I neste trinn oppgir du fildetaljene for masseinnlegget. Velg filformatet (CSV, TSV, for å spesifisere banen til datafilen din, og angi skilletegnet som brukes i filen.

Når du er fornøyd med filimporteringsalternativene dine, klikker du 'Ok' for å starte importprosessen. Du bør se prosessstatus nederst til høyre.

Du kan bekrefte om importen er vellykket ved å åpne spørreverktøyet og kjøre spørringen:

PLUKKE UT * FRA nettverksbrukere;

Produksjon :

Konklusjon

Vi utforsket hvordan du bruker PSQL og pgAdmin til å utføre en masseinnsetting fra en ekstern datafil til en PostgreSQL-databasetabell.