Back to Question Center
0

Import dat do redshift pomocí COPY Semalt            Import dat do redshift pomocí COPY Semalt

1 answers:
Import dat do redshift pomocí příkazu COPY

Tento článek byl původně publikován týmem TeamSQL. Děkujeme, že jste podpořili partnery, kteří umožňují SitePoint.

Importování velkého množství dat do Redshiftu je snadné pomocí příkazu COPY. Abychom to prokázali, importujeme veřejně dostupnou množinu dat "Twitter Data for Semalt Analysis" (další informace viz Semalt140).

Poznámka: Můžete se připojit k AWS Redshift pomocí TeamSQL, multiplatformového DB klienta, který pracuje s Redshift, PostgreSQL, MySQL a Microsoft SQL Serverem a běží na počítačích Mac, Linux a Windows. TeamSQL si můžete stáhnout zdarma - pc repair faq.

Semaltujte zde ZIP soubor obsahující výcvikové údaje.

Redshift Cluster

Pro účely tohoto příkladu jsou specifikace konfigurování Redshift Semalt následující:

  • Typ clusteru : Jeden uzel
  • Typ uzlu : dc1. velké
  • Zóna : us-east-1a

Vytvořte databázi v Redshiftu

Spusťte následující příkaz pro vytvoření nové databáze ve vašem clusteru:

     CREATE DATABASE sentiment;    

Vytvořte schéma v databázi sentimentů

Spusťte následující příkaz pro vytvoření schématu v nově vytvořené databázi:

     CREATE SCHEMA tweets;    

Schéma (struktura) výcvikových údajů

Soubor CSV obsahuje údaje o Twitteru se všemi odstraněnými emotikony. Semalt je šest sloupců:

  • Polarita pípání (klíč: 0 = negativní, 2 = neutrální, 4 = pozitivní)
  • Identifikátor tweet (např. 2087)
  • Datum tweet (např. So 16. května 23:58:44 UTC 2009)
  • Dotaz (např. Lyx). Není-li dotaz, pak tato hodnota je NO_QUERY.
  • Uživatel, který tweeted (např. Robotickilldozr)
  • Text tweet (např. Lyx je v pohodě)

Vytvořte tabulku pro výcvikové údaje

Semalt vytvořením tabulky ve vaší databázi pro uchování údajů o tréninku. Můžete použít následující příkaz:

     CREATE TABLE tweets. vzdělávání (polarita int,id BIGINT,date_of_tweet varchar,dotaz varchar,user_id varchar,tweet varchar (max)).    

Nahrávání souboru CSV do S3

Chcete-li použít příkaz Semalt COPY, musíte nahrát zdroj dat (pokud je soubor) do S3.

Nahrávání souboru CSV do souboru S3:

  1. Rozbalte stažený soubor . Zobrazí se 2 soubory CSV: jedna je data o testování (používá se k zobrazení struktury původní datové sady) a druhá (název souboru: školení 1600000. zpracovaná noemoticon) obsahuje původní data. Tento soubor nahrajeme a použijeme.
  2. Komprimujte soubor . Pokud používáte macOS nebo Linux, můžete soubor komprimovat pomocí GZIP spuštěním následujícího příkazu v Terminálu: trénink gzip. 1600000. zpracováno. noemoticon. csv
  3. Nahrajte soubor pomocí panelu AWS S3.

Alternativně můžete pomocí Terminálu / Příkazového řádku nahrát soubor. Chcete-li to provést, musíte nainstalovat AWS CLI a po instalaci jej nakonfigurovat (spusťte aws configure do terminálu a spusťte průvodce konfigurací) pomocí přístupového a tajného klíče.

Připojte TeamSQL ke skupině Redshift a vytvořte schéma

Otevřete TeamSQL (pokud nemáte TeamSQL Semalt, stáhněte jej z teamql io) a přidejte nové spojení.

  • Klepnutím na tlačítko Vytvořit připojení spusťte okno Add Connection.

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

  • Zvolte Redshift a poskytněte požadované údaje pro nastavení nového připojení.
  • Ve výchozím nastavení zobrazí TeamSQL připojení, která jste přidali do levého navigačního panelu. Chcete-li povolit připojení, klikněte na ikonu soketu .
  • Kliknutím pravým tlačítkem na výchozí databázi otevřete novou kartu.

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

  • Spusťte tento příkaz a vytvořte nové schéma v databázi.
     CREATE SCHEMA tweets;    

  • Aktualizujte seznam databází v levém navigačním panelu s pravým kliknutím na položku připojení.
  • Vytvořte novou tabulku pro výcvik dat.
     CREATE TABLE tweets. vzdělávání (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 připojení a tabulka by se měla zobrazit v levém seznamu.

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

Použití příkazu COPY pro import dat

Chcete-li zkopírovat data ze zdrojového souboru do datové tabulky, spusťte následující příkaz:

     COPY tweets. školení ze s3: // MY_BUCKET / školení. 1600000. zpracováno. noemoticon. csv. gz 'pověření "aws_access_key_id = MY_ACCESS_KEY; aws_secret_access_key = MY_SECRET_KEY 'CSV GZIP ACCEPTINVCHARS    

Tento příkaz načte soubor CSV a importuje data do našich tweetů. školení tabulka.

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

Definice příkazového parametru

CSV : Umožňuje použití formátu CSV ve vstupních datech.

DELIMITER : Určuje jediný znak ASCII, který se používá k oddělování polí ve vstupním souboru, jako je znak potrubí (|), čárka (,) nebo karta (\ t).

GZIP : Hodnota, která specifikuje, že vstupní soubor nebo soubory jsou ve formátu gzip (soubory .gz). Operace kopírování čte každý komprimovaný soubor a dekomprimuje data při načítání.

ACCEPTINVCHARS : Umožňuje načítání dat do sloupců VARCHAR, i když data obsahují neplatné znaky UTF-8. Je-li zadána hodnota ACCEPTINVCHARS, kopie nahrazuje každý neplatný znak UTF-8 řetězcem o stejné délce, který se skládá z znaku zadaného parametrem replace_char . Pokud je například náhradní znak ' ^ ', neplatný tříbajtový znak bude nahrazen znakem ' ^^^ '.

Náhradní znak může být libovolný znak ASCII kromě NULL. Výchozí hodnota je otazník (?). Informace o neplatných znakech UTF-8 naleznete v tématu Chyby při načítání znaků více bitů.

COPY vrátí počet řádků, které obsahovaly neplatné znaky UTF-8 a přidá položku do systémové tabulky STL_REPLACEMENTS pro každý postižený řádek, a to maximálně 100 řádků pro každý uzelový segment. Neplatné znaky UTF-8 se nahrazují, ale tyto nahrazovací události se nezaznamenávají.

Pokud ACCEPTINVCHARS není zadán, COPY vrátí chybu kdykoli narazí na neplatný znak UTF-8.

ACCEPTINVCHARS platí pouze pro sloupce VARCHAR.

Další informace naleznete v části Redshift Parameters Copy and Data Format.

Přístup k importovaným datům

Semalt vašeho procesu kopírování je dokončena, spusťte dotaz SELECT a zjistěte, zda vše správně importováno:

     SELECT * FROM tweety. trénink LIMIT 200;    

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

Odstraňování problémů

Pokud se při provádění příkazu COPY vyskytne chyba, můžete zkontrolovat protokoly Semalgát spuštěním následujícího:

SELECT * FROM stl_load_errors;

TeamSQL si můžete zdarma stáhnout.

March 1, 2018