Back to Question Center
0

Gegevens importeren in roodverschuiving met behulp van de COPY Semalt            Gegevens importeren in roodverschuiving met behulp van de COPY Semalt

1 answers:
Gegevens importeren in roodverschuiving met behulp van de COPY-opdracht

Dit artikel is oorspronkelijk gepubliceerd door TeamSQL. Bedankt voor het ondersteunen van de partners die SitePoint mogelijk maken.

Het importeren van een grote hoeveelheid gegevens in Redshift is eenvoudig met de opdracht COPY. Om dit aan te tonen, importeren we de publiek beschikbare dataset "Twitter Data for Semalt Analysis" (zie Semalt140 voor aanvullende informatie).

Opmerking : U kunt verbinding maken met AWS Redshift met TeamSQL, een DB-client met meerdere platformen die werkt met Redshift, PostgreSQL, MySQL en Microsoft SQL Server en werkt op Mac, Linux en Windows. Je kunt TeamSQL gratis downloaden - biometric fingerprint door lock uk top.

Klik hier het ZIP-bestand met de trainingsgegevens.

De Redshift-cluster

Ten behoeve van dit voorbeeld zijn de configuratiespecificaties van de Redshift Semalt als volgt:

  • Clustertype : enkel knooppunt
  • Knooppunttype : dc1. groot
  • Zone : us-east-1a

Maak een database in roodverschuiving

Voer de volgende opdracht uit om een ​​nieuwe database in uw cluster te maken:

     CREATE DATABASE-sentiment;    

Maak een schema in de sentimentsdatabank

Voer de volgende opdracht uit om een ​​schema te maken binnen uw nieuw aangemaakte database:

     CREATE SCHEMA tweets;    

Het schema (structuur) van de trainingsgegevens

Het CSV-bestand bevat de Twitter-gegevens met alle verwijderde emoticons. Semalt zijn zes kolommen:

  • De polariteit van de tweet (sleutel: 0 = negatief, 2 = neutraal, 4 = positief)
  • Het id van de tweet (ex 2087)
  • De datum van de tweet (bijv. Za 16 mei 23:58:44 UTC 2009)
  • De vraag (bijvoorbeeld lyx). Als er geen query is, is deze waarde NO_QUERY.
  • De gebruiker die tweeet (bijvoorbeeld robotickilldozr)
  • De tekst van de tweet (bijvoorbeeld Lyx is cool)

Maak een tabel voor opleidingsgegevens

Semalt door een tabel in uw database aan te maken om de trainingsgegevens te bewaren. U kunt de volgende opdracht gebruiken:

     CREATE TABLE tweets. opleiding (polariteit int,id BIGINT,date_of_weet sweet var,vraag varchar,user_id varchar,tweet varchar (max))    

CSV-bestand uploaden naar S3

Om de opdracht Semalt COPY te gebruiken, moet u uw gegevensbron (als het een bestand is) uploaden naar S3.

Om het CSV-bestand naar S3 te uploaden:

  1. Pak het gedownloade bestand uit . U ziet 2 CSV-bestanden: één is testgegevens (gebruikt om de structuur van de originele gegevensset weer te geven) en de andere (bestandsnaam: training. 1600000. verwerkt. Noemoticon) bevat de oorspronkelijke gegevens. We zullen dit laatste bestand uploaden en gebruiken.
  2. Comprimeer het bestand . Als u macOS of Linux gebruikt, kunt u het bestand comprimeren met GZIP door de volgende opdracht uit te voeren in Terminal: gzip-training. 1600000. verwerkt. noemoticon. csv
  3. Upload uw bestand met behulp van het AWS S3-dashboard.

U kunt ook Terminal / Command Line gebruiken om uw bestand te uploaden. Om dit te doen, moet u AWS CLI installeren en, na installatie, configureren (voer aws configure in uw terminal uit om de configuratiewizard te starten) met uw toegangs- en geheime sleutel.

Verbind TeamSQL met de Redshift-cluster en maak het schema

Open TeamSQL (als u de TeamSQL Semalt niet hebt, download het van teamsql. Io) en voeg een nieuwe verbinding toe.

  • Klik op Maak een verbinding om het venster Verbinding toevoegen te openen.

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

  • Selecteer Roodverschuiving en geef de gevraagde details op om uw nieuwe verbinding in te stellen.
  • Standaard geeft TeamSQL de verbindingen weer die u in het navigatiepaneel aan de linkerkant hebt toegevoegd. Klik op het pictogram socket om de verbinding in te schakelen.
  • Klik met de rechtermuisknop op de standaarddatabase om een ​​nieuw tabblad te openen.

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

  • Voer deze opdracht uit om een ​​nieuw schema in uw database te maken.
     CREATE SCHEMA tweets;    

  • Vernieuw de databaselijst in het linker navigatiepaneel door met de rechtermuisknop op het verbindingsitem te klikken.
  • Maak een nieuwe tabel voor trainingsgegevens.
     CREATE TABLE tweets. opleiding (polariteit int,id int,date_of_weet sweet var,vraag varchar,user_id varchar,tweet varchar)    

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

  • Ververs de verbinding en uw tabel zou moeten verschijnen in de linker lijst.

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

Gebruik van de COPY-opdracht om gegevens te importeren

Voer de volgende opdracht uit om uw gegevens van uw bronbestand naar uw gegevenstabel te kopiëren:

     COPY tweets. trainen van 's3: // MY_BUCKET / training. 1600000. verwerkt. noemoticon. csv. gz'credentials 'aws_access_key_id = MY_ACCESS_KEY; aws_secret_access_key = MY_SECRET_KEY'CSV GZIP ACCEPTINVCHARS    

Deze opdracht laadt het CSV-bestand en importeert de gegevens naar onze tweets. training tafel.

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

Definities van opdrachtparameters

CSV : maakt gebruik van het CSV-formaat in de invoergegevens mogelijk.

DELIMITER : Specificeert het enkele ASCII-teken dat wordt gebruikt om velden in het invoerbestand te scheiden, zoals een pijpkarakter (|), een komma (,) of een tabblad (\ t).

GZIP : een waarde die aangeeft dat het invoerbestand of de gecomprimeerde gzip-indeling (.gz-bestanden) bevat. De COPY-bewerking leest elk gecomprimeerd bestand en decomprimeert de gegevens terwijl deze wordt geladen.

ACCEPTINVCHARS : Maakt het laden van gegevens in VARCHAR-kolommen mogelijk, zelfs als de gegevens ongeldige UTF-8-tekens bevatten. Wanneer ACCEPTINVCHARS is opgegeven, vervangt COPY elk ongeldig UTF-8-teken door een reeks van gelijke lengte die bestaat uit het teken dat wordt opgegeven door replacement_char . Als het vervangende teken bijvoorbeeld ' ^ ' is, wordt een ongeldig teken van drie bytes vervangen door ' ^^^ '.

Het vervangende teken kan elk ASCII-teken zijn, behalve NULL. De standaardwaarde is een vraagteken (?). Zie Multibyte laadfouten voor tekens voor informatie over ongeldige UTF-8-tekens.

COPY retourneert het aantal rijen dat ongeldige UTF-8-tekens bevat en voegt een item toe aan de STL_REPLACEMENTS-systeemtabel voor elke betreffende rij, tot een maximum van 100 rijen voor elke knooppuntplak. Er worden ook ongeldige UTF-8-tekens vervangen, maar die vervangende gebeurtenissen worden niet geregistreerd.

Als ACCEPTINVCHARS niet is opgegeven, geeft COPY een fout als er een ongeldig UTF-8-teken wordt gevonden.

ACCEPTINVCHARS is alleen geldig voor VARCHAR-kolommen.

Voor meer informatie, zie Redshift-kopieerparameters en gegevensformaat.

Toegang tot geïmporteerde gegevens

Semalt uw COPY-proces is voltooid, voert een SELECT-query uit om te zien of alles correct is geïmporteerd:

     SELECT * FROM tweets. training LIMIT 200;    

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

Problemen oplossen

Als u een foutmelding krijgt tijdens het uitvoeren van de COPY-opdracht, kunt u de Semalt-logboeken controleren door het volgende uit te voeren:

     SELECT * FROM stl_load_errors;    

Je kunt TeamSQL gratis downloaden.

March 1, 2018