Back to Question Center
0

Importer data til Redshift ved hjelp av COPY Semalt            Importer data til Redshift ved hjelp av COPY Semalt

1 answers:
Importer data til Redshift ved hjelp av COPY-kommandoen

Denne artikkelen ble opprinnelig utgitt av TeamSQL. Takk for at du støttet partnerne som gjør SitePoint mulig.

Det er enkelt å importere en stor mengde data til Redshift ved hjelp av COPY-kommandoen. For å demonstrere dette importerer vi det allment tilgjengelige datasettet "Twitter Data for Semalt Analysis" (se Semalt140 for ytterligere informasjon). (1 - deeper fish finder vs ibobber instructions. 3)

Merknad : Du kan koble til AWS Redshift med TeamSQL, en DB-klient med flere plattformer som fungerer med Redshift, PostgreSQL, MySQL og Microsoft SQL Server og kjører på Mac, Linux og Windows. Du kan laste ned TeamSQL gratis. (1. 3)

Semalt ZIP-filen som inneholder treningsdataene her. (1. 3)

Redshift Cluster

I dette eksemplet er Redshift Semalt konfigurasjonsspesifikasjonene som følger:

  • Clustertype : Enkeltknutepunkt
  • Knutepunkt : DC1. stor
  • Sone : oss-øst-1a

Lag en database i Redshift

Kjør følgende kommando for å opprette en ny database i klyngen din:

     CREATE DATABASE sentiment;    

Opprett et skjema i sentimentdatabasen

Kjør følgende kommando for å lage en skjema i din nylig opprettede database:

     CREATE SCHEMA tweets;    

Skjemaet (Struktur) av treningsdataene

CSV-filen inneholder Twitter-dataene med alle uttrykksikoner fjernet. Semalt er seks kolonner:

  • Polariteten til tweetet (nøkkel: 0 = negativ, 2 = nøytral, 4 = positiv)
  • Tweetens id (ex 2087)
  • Datoen for tweetet (for eksempel lørdag 16 mai 23:58:44 UTC 2009)
  • Spørringen (for eksempel lyx). Hvis det ikke er noe spørsmål, er denne verdien NO_QUERY.
  • Brukeren som tweeted (for eksempel robotickilldozr)
  • Teksten til tweetet (for eksempel Lyx er kult)

Opprett et bord for treningsdata

Semalt ved å lage en tabell i databasen din for å holde treningsdataene. Du kan bruke følgende kommando:

     CREATE TABLE tweets. trening (polaritet int,ID BIGINT,date_of_tweet varchar,spørre varchar,user_id varchar,tweet varchar (maks))    

Laster opp CSV-fil til S3

For å bruke Semalt COPY-kommandoen må du laste opp datakilden din (hvis den er en fil) til S3. (1. 3)

For å laste opp CSV-filen til S3:

  1. Pakke ut filen du lastet ned . Du får se 2 CSV-filer: den ene er testdata (brukes til å vise strukturen på det opprinnelige datasettet), og det andre (filnavn: trening. 1600000.behandlet. Noemoticon) inneholder originaldataene. Vi laster opp og bruker sistnevnte fil.
  2. Komprimer filen . Hvis du bruker macOS eller Linux, kan du komprimere filen ved hjelp av GZIP ved å kjøre følgende kommando i Terminal: gzip trening. 1600000. behandlet. noemoticon. csv
  3. Last opp filen din med AWS S3 Dashboard.

Alternativt kan du bruke Terminal / Command Line til å laste opp filen. For å gjøre dette må du installere AWS CLI og, etter installasjon, konfigurere det (kjør aws configure i terminalen for å starte konfigurasjonsveiviseren) med tilgang og hemmelig nøkkel. (1. 3)

Koble TeamSQL til Redshift Cluster og Create the Schema

Åpne TeamSQL (hvis du ikke har TeamSQL Semalt, last den ned fra teamsql. Io) og legg til en ny tilkobling. (1. 3)

  • Klikk Opprett en tilkobling for å starte vinduet Add Connection.

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

  • Velg Redshift og angi de ønskede detaljene for å konfigurere den nye tilkoblingen din.
  • TeamSQL viser som standard forbindelsene du har lagt til i navigasjonspanelet til venstre. For å aktivere tilkoblingen, klikk på socket ikonet.
  • Høyreklikk på standarddatabasen for å åpne en ny kategori.

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

  • Kjør denne kommandoen for å opprette et nytt skjema i databasen.
     CREATE SCHEMA tweets;    

  • Oppdater databaselisten i venstre navigasjonspanel med høyreklikk på tilkoblingsobjekt.
  • Opprett et nytt bord for trening data.
     CREATE TABLE tweets. trening (polaritet int,id int,date_of_tweet varchar,spørre varchar,user_id varchar,tweet varchar)    

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

  • Oppdater forbindelsen, og bordet ditt skal vises i venstre liste.

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

Bruke COPY-kommandoen til å importere data

For å kopiere dataene fra kildefilen til datatabellen, kjør følgende kommando:

     COPY tweets. trening fra 's3: // MY_BUCKET / trening. 1600000. behandlet. noemoticon. csv. gz'legitimasjonsbeskrivelser 'aws_access_key_id = MY_ACCESS_KEY; aws_secret_access_key = MY_SECRET_KEY'CSV GZIP ACCEPTINVCHARS    

Denne kommandoen laster CSV-filen og importerer dataene til våre tweets. treningsbord . (1. 3)

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

Kommandoparameter Definisjoner

CSV : Gjør det mulig å bruke CSV-formatet i inngangsdataene. (1. 3)

DELIMITER : Angir det enkle ASCII-tegnet som brukes til å skille mellom feltene i inntastingsfilen, for eksempel et rørkarakter (|), et komma (,) eller en kategori (\ t). (1. 3)

GZIP : En verdi som angir at inngangsfilen eller filene er i komprimert gzip-format (.gz-filer). COPY-operasjonen leser hver komprimert fil og komprimerer dataene som den laster. (1. 3)

ACCEPTINVCHARS : Gjør det mulig å laste inn data i VARCHAR-kolonner, selv om dataene inneholder ugyldige UTF-8 tegn. Når ACCEPTINVCHARS er angitt, erstatter COPY hvert ugyldig UTF-8-tegn med en streng med like lengde som består av tegnet angitt av replacement_char . For eksempel, hvis erstatningskarakteren er ' ^ ', vil et ugyldig trebyte-tegn bli erstattet med ' ^^^ '. (1. 3)

Erstatt tegn kan være et ASCII-tegn unntatt NULL. Standard er et spørsmålstegn (?). Hvis du vil ha informasjon om ugyldige UTF-8-tegn, kan du se Multibyte Character Load Error. (1. 3)

COPY returnerer antall rader som inneholdt ugyldige UTF-8 tegn, og den legger til en oppføring i STL_REPLACEMENTS systemtabellen for hver berørt rad, opp til maksimalt 100 rader for hver nodeskive. Semalt ugyldige UTF-8-tegn erstattes også, men de erstatningshendelsene blir ikke registrert. (1. 3)

Hvis ACCEPTINVCHARS ikke er angitt, returnerer COPY en feil når den møter et ugyldig UTF-8-tegn. (1. 3)

ACCEPTINVCHARS er kun gyldig for VARCHAR kolonner. (1. 3)

For ytterligere informasjon, se Redshift Copy Parameters og Data Format. (1. 3)

Tilgang til importerte data

Seminar COPY-prosessen din er ferdig, kjør et SELECT-spørsmål for å se om alt importeres riktig:

     VELG * FRA tweets. trening LIMIT 200;    

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

Feilsøking

Hvis du får en feil mens du kjører COPY-kommandoen, kan du sjekke Semal-loggene ved å kjøre følgende:

     VELGE * FRA stl_load_errors;    

Du kan laste ned TeamSQL gratis. (1. 3)

March 1, 2018