Back to Question Center
0

Importer data til Redshift ved hjælp af COPY Semalt            Importer data til Redshift ved hjælp af COPY Semalt

1 answers:
Importer data til Redshift Brug af COPY-kommandoen

Denne artikel blev oprindeligt udgivet af TeamSQL. Tak for at støtte partnere, der gør SitePoint mulig.

Det er nemt at importere en stor mængde data til Redshift ved hjælp af COPY-kommandoen. For at demonstrere dette importerer vi det offentligt tilgængelige datasæt "Twitter Data for Semalt Analysis" (se Semalt140 for yderligere information).

Note : Du kan oprette forbindelse til AWS Redshift med TeamSQL, en DB-klient med flere platforme, der arbejder med Redshift, PostgreSQL, MySQL og Microsoft SQL Server og kører på Mac, Linux og Windows - reseller chile. Du kan downloade TeamSQL gratis.

Semalt ZIP-filen indeholdende træningsdataene her.

Redshift Cluster

I dette eksempel er Redshift Semalt konfigurationsspecifikationerne som følger:

  • Cluster Type : Enkelt Node
  • Knude Type : DC1. store
  • Zone : os-øst-1a

Opret en database i Redshift

Kør følgende kommando for at oprette en ny database i din klynge:

     CREATE DATABASE sentiment;    

Opret et skema i sentimentdatabasen

Kør følgende kommando for at oprette en ordning i din nyoprettede database:

     CREATE SCHEMA tweets;    

Skemaet (Struktur) af træningsdataene

CSV filen indeholder Twitter data med alle emoticons fjernet. Semalt er seks kolonner:

  • Polariteten af ​​tweeten (nøgle: 0 = negativ, 2 = neutral, 4 = positiv)
  • Tweetets id (ex 2087)
  • Datoen for tweetet (fx lør 16. maj kl 23:58:44 UTC 2009)
  • Forespørgslen (fx luksus). Hvis der ikke er nogen forespørgsel, er denne værdi NO_QUERY.
  • Den bruger, der tweeted (fx robotickilldozr)
  • Teksten til tweetet (fx Lyx er cool)

Opret en tabel til træningsdata

Semalt ved at oprette en tabel i din database for at holde træningsdataene. Du kan bruge følgende kommando:

     CREATE TABLE tweets. uddannelse (polaritet int,id BIGINT,date_of_tweet varchar,forespørgsel varchar,user_id varchar,tweet varchar (max))    

Uploading CSV-fil til S3

For at bruge Semalt COPY-kommandoen skal du uploade din datakilde (hvis den er en fil) til S3.

For at uploade CSV-filen til S3:

  1. Udpak den fil, du downloadede . Du får se 2 CSV-filer: den ene er testdata (bruges til at vise strukturen i det oprindelige datasæt), og det andet (filnavn: træning. 1600000. behandlet. Noemoticon) indeholder de originale data. Vi vil uploade og bruge sidstnævnte fil.
  2. Komprimer filen . Hvis du bruger macOS eller Linux, kan du komprimere filen ved hjælp af GZIP ved at køre følgende kommando i Terminal: gzip-træning. 1600000. behandlet. noemoticon. csv
  3. Upload din fil ved hjælp af AWS S3 Dashboard.

Alternativt kan du bruge Terminal / Command Line til at uploade din fil. For at gøre dette skal du installere AWS CLI, og efter installation skal du konfigurere det (kør aws configure i din terminal for at starte konfigurationsguiden) med din adgang og hemmelige nøgle.

Forbind TeamSQL til Redshift Cluster og Create the Schema

Åbn TeamSQL (hvis du ikke har TeamSQL Semalt, download den fra teamsql. Io) og tilføj en ny forbindelse.

  • Klik på Opret en forbindelse for at starte vinduet Tilføj forbindelse.

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

  • Vælg Redshift og angiv de ønskede detaljer for at oprette din nye forbindelse.
  • Som standard viser TeamSQL de forbindelser, du har tilføjet i det venstre navigationspanel. For at aktivere forbindelsen skal du klikke på ikonet socket .
  • Højreklik på standarddatabasen for at åbne en ny fane.

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

  • Kør denne kommando for at oprette et nyt skema i din database.
     CREATE SCHEMA tweets;    

  • Opdater databaselisten i det venstre navigationspanel ved at højreklikke på forbindelseselementet.
  • Opret en ny tabel til træningsdata.
     CREATE TABLE tweets. uddannelse (polaritet int,id int,date_of_tweet varchar,forespørgsel varchar,user_id varchar,tweet varchar)    

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

  • Opdater forbindelsen, og din tabel skal vises i den venstre liste.

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

Brug af COPY-kommandoen til at importere data

For at kopiere dine data fra din kildefil til din datatabel, skal du køre følgende kommando:

     COPY tweets. træning fra 's3: // MY_BUCKET / træning. 1600000. behandlet. noemoticon. csv. gz'legitimationsoplysninger 'aws_access_key_id = MY_ACCESS_KEY; aws_secret_access_key = MY_SECRET_KEY'CSV GZIP ACCEPTINVCHARS    

Denne kommando indlæser CSV-filen og importerer dataene til vores tweets. træning bord.

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

Kommandoparameter Definitioner

CSV : Gør det muligt at bruge CSV-formatet i inputdataene.

DELIMITER : Angiver det enkelte ASCII-tegn, der bruges til at adskille felter i inputfilen, f.eks. Et rørkarakter (|), et komma (,) eller en fane (\ t).

GZIP : En værdi, der angiver, at inputfilen eller filerne er i komprimeret gzip-format (.gz-filer). COPY-operationen læser hver komprimeret fil og komprimerer dataene, som den laster.

ACCEPTINVCHARS : Muliggør indlæsning af data i VARCHAR-kolonner, selvom dataene indeholder ugyldige UTF-8 tegn. Når ACCEPTINVCHARS er angivet, erstatter COPY hvert ugyldigt UTF-8 tegn med en streng af samme længde, der består af tegnet specificeret af replacement_char . Hvis for eksempel erstatningskarakteren er ' ^ ', erstattes et ugyldigt tre-byte tegn med ' ^^^ '.

Udskiftningskarakteren kan være et ASCII-tegn undtagen NULL. Standard er et spørgsmålstegn (?). Oplysninger om ugyldige UTF-8-tegn finder du under Multibyte Character Load Error.

COPY returnerer antallet af rækker, der indeholdt ugyldige UTF-8 tegn, og det tilføjer en post til STL_REPLACEMENTS systemtabellen for hver berørt række, op til maksimalt 100 rækker for hver node skive. Semalt ugyldige UTF-8 tegn erstattes også, men disse udskiftningsbegivenheder registreres ikke.

Hvis ACCEPTINVCHARS ikke er angivet, returnerer COPY en fejl, når den møder et ugyldigt UTF-8-tegn.

ACCEPTINVCHARS er kun gyldig for VARCHAR kolonner.

For yderligere oplysninger, se Redshift Copy Parameters og Data Format.

Adgang til importerede data

Semalt er din COPY-proces færdig, kør en SELECT-forespørgsel for at se om alt er importeret korrekt:

     VÆLG * FRA tweets. uddannelse LIMIT 200;    

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

Fejlfinding

Hvis du får en fejl under udførelsen af ​​COPY-kommandoen, kan du kontrollere Semalt logs ved at køre følgende:

     VELG * FRA stl_load_errors;    

Du kan downloade TeamSQL gratis.

March 1, 2018