Back to Question Center
0

Importovať dáta do redshift pomocou COPY Semalt            Importovať dáta do redshift pomocou COPY Semalt

1 answers:
Importovanie údajov do redshift pomocou príkazu COPY

Tento článok bol pôvodne publikovaný TeamSQL. Ďakujeme, že ste podporili partnerov, ktorí umožňujú vykonanie funkcie SitePoint.

Importovanie veľkého množstva údajov do redshiftu je jednoduché pomocou príkazu COPY. Aby sme to dokázali, importujeme verejne dostupnú množinu údajov "Twitterové údaje pre analýzu sémaltu" (ďalšie informácie nájdete v Semalt140) - telemedicine companies 2017.

Poznámka: Môžete sa pripojiť k AWS Redshift pomocou TeamSQL, multiplatformového DB klienta, ktorý pracuje s Redshift, PostgreSQL, MySQL a Microsoft SQL Server a pracuje na Macoch, Linuxoch a Windows. Stiahnite si TeamSQL zadarmo.

Semaltujte súbor ZIP obsahujúci údaje o tréningoch.

Redshift Cluster

Na účely tohto príkladu sú špecifikácie konfigurácie Redshift Semalt konfigurácie nasledovné:

  • Typ klastra : Jeden uzol
  • Typ uzla : dc1. veľké
  • Zóna : nás-východ-1a

Vytvorte databázu v redshift

Spustite nasledujúci príkaz na vytvorenie novej databázy vo vašom klastri:

     CREATE DATABASE sentiment;    

Vytvorte schému v databáze sentimentu

Spustite nasledujúci príkaz na vytvorenie schémy v novovytvorenej databáze:

     CREATE SCHEMA tweets;    

Schéma (štruktúra) vzdelávacích údajov

Súbor CSV obsahuje údaje zo služby Twitter so všetkými odstránenými emotikonmi. Semalt je šesť stĺpcov:

  • Polarita tweet (kľúč: 0 = negatívny, 2 = neutrálny, 4 = pozitívny)
  • Identifikácia tweet (ex 2087)
  • Dátum tweetu (napríklad so 16. mája 23:58:44 UTC 2009)
  • Dotaz (napr. Lyx). Ak neexistuje žiadny dopyt, táto hodnota je NO_QUERY.
  • Používateľ, ktorý používa tweeted (napr. Robotickilldozr)
  • Text tweetu (napríklad Lyx je v pohode)

Vytvorte tabuľku pre výcvikové údaje

Semalt vytvorením tabuľky vo vašej databáze na uchovávanie tréningových dát. Môžete použiť nasledujúci príkaz:

     CREATE TABLE tweets. vzdelávania (polarita int,id BIGINT,date_of_tweet varchar,dotaz varchar,user_id varchar,tweet varchar (max))    

Nahrávanie súboru CSV na S3

Ak chcete použiť príkaz Semalt COPY, musíte nahrať váš zdroj údajov (ak je to súbor) do S3.

Ak chcete nahrať súbor CSV do S3:

  1. Rozbaľte stiahnutý súbor . Zobrazia sa 2 súbory CSV: jedna je skúšobná data (použitá na zobrazenie štruktúry pôvodnej množiny údajov) a druhá (názov súboru: tréning: 1600000. spracovaná noemoticon) obsahuje pôvodné údaje. Tento súbor odovzdáme a použijeme.
  2. Komprimujte súbor . Ak používate macOS alebo Linux, môžete komprimovať súbor pomocou GZIP spustením nasledujúceho príkazu v termináli: tréning gzip. 1600000. spracované. noemoticon. csv
  3. Nahrajte súbor pomocou AWS S3 Dashboard.

Prípadne môžete na odovzdanie súboru použiť terminál / príkazový riadok. Ak to chcete urobiť, musíte nainštalovať AWS CLI a po jeho inštalácii nakonfigurovať (spustiť aws konfiguráciu vo vašom termináli, aby ste spustili sprievodcu konfiguráciou) pomocou prístupového a tajného kľúča.

Pripojte TeamSQL k Redshift Clusteru a vytvorte schému

Otvorte tím TeamSQL (ak nemáte TeamSQL Semalt, stiahnite si ho z teamql io) a pridajte nové spojenie.

  • Kliknutím na tlačidlo Vytvoriť spojenie spustite okno Add Connection.

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

  • Zvoľte Redshift a zadajte požadované údaje a nastavte nové spojenie.
  • TeamSQL štandardne zobrazuje pripojenia, ktoré ste pridali do ľavého navigačného panela. Ak chcete zapnúť pripojenie, kliknite na ikonu soketu .
  • Pravým kliknutím na predvolenú databázu otvoríte novú kartu.

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

  • Spustite tento príkaz na vytvorenie novej schémy vo vašej databáze.
     CREATE SCHEMA tweets;    

  • Obnovte zoznam databáz v ľavom navigačnom paneli kliknutím pravým tlačidlom na položku pripojenia.
  • Vytvorte novú tabuľku pre výcvik dát.
     CREATE TABLE tweets. vzdelávania (polarita int,id int,date_of_tweet varchar,dotaz varchar,user_id varchar,tweet varchar)    

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

  • Obnovte pripojenie a tabuľka by sa mala zobraziť v zozname vľavo.

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

Použitie príkazu COPY na import údajov

Ak chcete skopírovať údaje zo zdrojového súboru do tabuľky s údajmi, spustite nasledujúci príkaz:

     COPY tweets. tréning z "s3: // MY_BUCKET / tréning. 1600000. spracované. noemoticon. csv. gz 'poverenia 'aws_access_key_id = MY_ACCESS_KEY; aws_secret_access_key = MY_SECRET_KEY'CSV GZIP ACCEPTINVCHARS    

Tento príkaz načíta súbor CSV a importuje údaje do našich tweetov. tréning tabuľka.

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

Definície príkazového parametra

CSV : Umožňuje použitie formátov CSV vo vstupných údajoch.

DELIMITER : Určuje jediný znak ASCII, ktorý sa používa na oddelenie polí vo vstupnom súbore, napríklad znak potrubie (|), čiarka (,) alebo karta (\ t).

GZIP : Hodnota, ktorá určuje, že vstupný súbor alebo súbory sú vo formáte gzip (.gz). Operácia COPY prečíta každý komprimovaný súbor a rozbalí údaje pri načítaní.

ACCEPTINVCHARS : Umožňuje načítanie údajov do stĺpcov VARCHAR, aj keď údaje obsahujú neplatné znaky UTF-8. Keď je zadané ACCEPTINVCHARS, kópia nahradí každý neplatný znak UTF-8 reťazcom rovnakej dĺžky pozostávajúci z znaku špecifikovaného replace_char . Ak je napríklad náhradný znak ' ^ ', neplatný trojbajtový znak sa nahradí znakom ' ^^^ '.

Náhradný znak môže byť akýkoľvek znak ASCII okrem NULL. Predvolená hodnota je otáznik (?). Informácie o neplatných znakoch UTF-8 nájdete v časti Chyby pri nakladaní viacerých bajtov.

COPY vracia počet riadkov, ktoré obsahovali neplatné znaky UTF-8 a pridáva záznam do systémovej tabuľky STL_REPLACEMENTS pre každý ovplyvnený riadok až do maximálne 100 riadkov pre každý uzolový segment. Neplatné semtaltové znaky UTF-8 sú tiež nahradené, ale tieto výmenné udalosti sa nezaznamenávajú.

Ak ACCEPTINVCHARS nie je zadané, COPY vracia chybu vždy, keď narazí na neplatný znak UTF-8.

ACCEPTINVCHARS platí len pre stĺpce VARCHAR.

Ďalšie informácie nájdete v časti Redshift Parameters Copy and Data Format.

Prístup k importovaným údajom

Semalt vášho procesu kopírovania skončil, spustite dotaz SELECT, aby ste zistili, či všetko importované správne:

     SELECT * FROM tweets. tréning LIMIT 200;    

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

Riešenie problémov

Ak sa pri vykonávaní príkazu COPY vyskytne chyba, môžete skontrolovať protokoly Semalgát spustením nasledujúceho:

     SELECT * z stl_load_errors;    

TeamSQL si môžete stiahnuť zadarmo.

March 1, 2018