Back to Question Center
0

Импортиране на данни в Redshift Използване на COPY Semalt            Импортиране на данни в Redshift Използване на COPY Semalt

1 answers:
Импортиране на данни в Redshift Използване на командата COPY

Тази статия беше публикувана първоначално от TeamSQL. Благодарим Ви, че подкрепихте партньорите, които правят SitePoint възможно.

Импортирането на голямо количество данни в Redshift е лесно чрез командата COPY. За да демонстрираме това, ще импортираме обществено достъпния набор от данни "Данни от Twitter за семалтен анализ" (за допълнителна информация вижте Semalt140).

Забележка : Можете да се свържете с AWS Redshift с TeamSQL, мултиплатформен DB клиент, който работи с Redshift, PostgreSQL, MySQL и Microsoft SQL Server и работи на Mac, Linux и Windows - find you super. Можете да изтеглите TeamSQL безплатно.

Задавайте тук ZIP файла, съдържащ данните за обучението.

Клъстерът на червените превключвания

За целите на този пример спецификациите за конфигурация на семала на Redshift са следните:

  • Тип клъстер : Единичен възел
  • Тип възел : dc1. голям
  • Зона : нас-изток-1а

Създаване на база данни в Redshift

Изпълнете следната команда, за да създадете нова база данни във вашия клъстер:

     CREATE DATABASE sentiment;    

Създаване на схема в базата данни за нагласите

Изпълнете следната команда, за да създадете схема в новосъздадената ви база:

     CREATE SCHEMA tweets;    

Схемата (структурата) на данните за обучението

CSV файлът съдържа данните от Twitter с премахнати емотикони. Семалт са шест колони:

  • Полярността на тийнейджъра (ключ: 0 = отрицателен, 2 = неутрален, 4 = положителен)
  • Идентификационният номер на писмото (напр. 2087)
  • Датата на пишенето (напр., 16 май 23:58:44 UTC 2009)
  • Запитването (например lyx). Ако няма заявка, тази стойност е NO_QUERY.
  • Потребителят, който е поставил на пощата (напр. Robotickilldozr)
  • Текстът на чуруликането (например Lyx е готино)

Създайте таблица за данните за обучението

Семал, като създадете таблица във вашата база данни, за да задържите данните за обучението. Можете да използвате следната команда:

     CREATE TABLE tweets. обучение (полярност int,id BIGINT,date_of_tweet varchar,заявка varchar,user_id varchar,tweet varchar (макс))    

Качване на CSV файл в S3

За да използвате командата Semalt COPY, трябва да качите своя източник на данни (ако е файл) на S3.

За да качите CSV файла на S3:

  1. Разархивирайте изтегления от вас файл . Ще видите 2 CSV файла: едната е тестова информация (използвана за показване на структурата на оригиналния набор от данни), а другата (име на файла: обучение 1600000. обработвана noemoticon) съдържа оригиналните данни. Ние ще качим и използваме последния файл.
  2. Компресирайте файла . Ако използвате macOS или Linux, можете да компресирате файла чрез GZIP, като изпълните следната команда в Terminal: gzip обучение. 1600000. обработени. noemoticon. csv
  3. Качете файла си с таблото за управление AWS S3.

Алтернативно, можете да използвате Terminal / Command Line, за да качите вашия файл. За да направите това, трябва да инсталирате AWS CLI и след инсталирането го конфигурирайте (изпълнете aws configure във вашия терминал, за да стартирате съветника за конфигуриране) с вашия достъп и таен ключ.

Свържете TeamSQL към Redshift Cluster и създайте схема

Отворете TeamSQL (ако нямате TeamSQL Semalt, изтеглете го от teamsql.io) и добавете нова връзка.

  • Кликнете върху Създаване на връзка , за да стартирате прозореца Добавяне на връзка.

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

  • Изберете Redshift и предоставете желаните подробности, за да настроите новата връзка.
  • По подразбиране TeamSQL показва връзките, които сте добавили в левия навигационен панел. За да активирате връзката, кликнете върху иконата socket .
  • Кликнете с десния бутон на базата данни по подразбиране, за да отворите нов раздел.

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

  • Стартирайте тази команда, за да създадете нова схема във вашата база данни.
     CREATE SCHEMA tweets;    

  • Обновете списъка с бази данни в левия панел за навигация, като щракнете с десния бутон върху елемента на връзката.
  • Създайте нова таблица за обучение на данни.
     CREATE TABLE tweets. обучение (полярност int,id int,date_of_tweet varchar,заявка varchar,user_id varchar,tweet varchar)    

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

  • Обновете връзката и вашата таблица трябва да се появи в списъка вляво.

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

Използване на командата COPY за импортиране на данни

За да копирате данните си от изходния си файл в таблицата с данни, изпълнете следната команда:

     COPY tweets. обучение от "s3: // MY_BUCKET / обучение. 1600000. обработени. noemoticon. CSV. GZ "идентификационни данни "aws_access_key_id = MY_ACCESS_KEY; aws_secret_access_key = MY_SECRET_KEY 'CSV GZIP ACCEPTINVCHARS    

Тази команда зарежда CSV файла и импортира данните в нашите tweets. обучение таблица.

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

Определения на параметрите на командването

CSV : Позволява използването на CSV формат във входните данни.

DELIMITER : Указва единичния ASCII знак, който се използва за отделяне на полетата във входния файл, като символ на тръба (|), запетая (,) или раздел (\ t).

GZIP : Стойност, която определя, че входният файл или файловете са в компресиран формат gzip (.gz файлове). Операцията COPY чете всеки компресиран файл и декомпресира данните, докато се зарежда.

ACCEPTINVCHARS : Активира зареждането на данни в колоните VARCHAR, дори данните да съдържат невалидни UTF-8 знаци. Когато ACCEPTINVCHARS е зададен, COPY замества всеки невалиден символ UTF-8 с низ със същата дължина, състояща се от символа, определен от replace_char . Например, ако заместващият символ е " ^ ", невалиден трибайтов знак ще бъде заменен с " ^^^ ".

Заместващият символ може да бъде всеки ASCII символ, с изключение на NULL. По подразбиране е въпросителен знак (?). За информация относно невалидни знаци UTF-8 вижте Грешки при зареждане на символи с няколко байта.

COPY връща броя на редовете, съдържащи невалидни знаци UTF-8, и добавя запис в системната таблица STL_REPLACEMENTS за всеки засегнат ред до максимум 100 реда за всеки отрязък от възли. Повтарящи се семалактивни UTF-8 знаци също се заместват, но тези заместващи събития не се записват.

Ако ACCEPTINVCHARS не е посочено, COPY връща грешка, когато срещне невалиден знак UTF-8.

ACCEPTINVCHARS е валидна само за колоните VARCHAR.

За допълнителна информация, моля, вижте параметрите за червеното копиране и формата на данните.

Достъп до внесени данни

Съкратете процеса на копиране, завършете заявката SELECT, за да видите дали всичко е правилно внесено:

     SELECT * от tweets. обучение LIMIT 200;    

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

Отстраняване на неизправности

Ако получите грешка при изпълнение на командата COPY, можете да проверите семалтовите дневници, като изпълните следното:

     ИЗБОР * ОТ stl_load_errors;    

Можете да изтеглите TeamSQL безплатно.

March 1, 2018