Back to Question Center
0

COPY Semalt를 사용하여 데이터를 Redshift로 가져 오기            COPY Semalt를 사용하여 데이터를 Redshift로 가져 오기

1 answers:
COPY 명령을 사용하여 데이터를 적색 변이로 가져 오기

이 기사는 원래 TeamSQL에 의해 게시되었습니다. SitePoint를 만드는 파트너를 지원해 주셔서 감사합니다.

COPY 명령을 사용하면 많은 양의 데이터를 Redshift로 쉽게 가져올 수 있습니다 - chantier chibougamou. 이를 증명하기 위해 공개적으로 사용 가능한 데이터 세트 인 "Semalt Analysis를위한 Twitter 데이터"(Semalt140 참조)를 가져옵니다.

노트 : Redshift, PostgreSQL, MySQL 및 Microsoft SQL Server에서 작동하고 Mac, Linux 및 Windows에서 실행되는 다중 플랫폼 DB 클라이언트 인 TeamSQL을 사용하여 AWS Redshift에 연결할 수 있습니다. 무료로 TeamSQL을 다운로드 할 수 있습니다.

훈련 자료가 들어있는 ZIP 파일을 여기에 쓴다.

적색 변속 클러스터

이 예에서 Redshift Semalt 구성 사양은 다음과 같습니다.

  • 클러스터 유형 : 단일 노드
  • 노드 유형 : dc1. 대형
  • 구역 : us-east-1a

Redshift

에 데이터베이스 만들기

다음 명령을 실행하여 클러스터에 새 데이터베이스를 만듭니다.

     CREATE DATABASE 감정을 창조하십시오;    

감정 데이터베이스에 스키마 만들기

다음 명령을 실행하여 새로 생성 된 데이터베이스 내에 스키마를 만듭니다.

     SCHEMA 짹짹 만들기;    

훈련 자료의 스키마 (구조)

CSV 파일에는 모든 이모티콘이 삭제 된 Twitter 데이터가 포함되어 있습니다. Semalt는 6 개의 란이다 :

    트위터의 극성 (키 : 0 = 음수, 2 = 중성, 4 = 양수)
  • 이드의 이드 (예 : 2087)
  • 트윗 날짜 (예 : 토요일 5 월 16 일 23:58:44 UTC 2009)
  • 질의 (예 : lyx). 조회가 없으면,이 값은 NO_QUERY입니다.
  • tweeted (예 : robotickilldozr)
  • 짹짹의 텍스트 (예 : Lyx는 시원함)

교육 데이터 용 테이블 만들기

훈련 데이터를 보관할 데이터베이스를 테이블에 작성하는 것. 다음 명령을 사용할 수 있습니다 :

     CREATE TABLE 트윗. 훈련 (극성의 int,이드 (BIGINT)date_of_tweet varchar,query varchar,user_id varchar,트윗 varchar (최대))    

S3에 CSV 파일 업로드

Semalt COPY 명령을 사용하려면 데이터 소스 (파일 인 경우)를 S3에 업로드해야합니다.

CSV 파일을 S3에 업로드하려면 :

  1. 다운로드 한 파일의 압축을 풉니 다 . 하나는 테스트 데이터 (원본 데이터 집합의 구조를 나타내는 데 사용됨)이고 다른 하나는 (파일 이름 : training. 1600000.processed noemoticon) 원본 데이터가 포함 된 2 개의 CSV 파일입니다. 후자의 파일을 업로드하고 사용합니다.
  2. 파일을 압축합니다 . macOS 또는 Linux를 사용하는 경우 터미널 : gzip training에서 다음 명령을 실행하여 GZIP을 사용하여 파일을 압축 할 수 있습니다. 처리되었습니다. noemoticon. CSV
  3. AWS S3 대시 보드를 사용하여 파일을 업로드하십시오.

또는 터미널 / 명령 행을 사용하여 파일을 업로드 할 수 있습니다. 이렇게하려면 AWS CLI를 설치하고 설치 후에 구성 및 액세스 권한과 비밀 키로 구성 마법사 (구성 마법사를 시작하려면 터미널에서 aws configure 실행 )를 구성해야합니다.

Teamswith를 Redshift 클러스터에 연결하고 스키마 만들기

TeamSQL을 엽니 다 (TeamSQL Semalt가없는 경우 teamsql. io에서 다운로드하고 새 연결을 추가하십시오).

  • 연결 만들기 를 클릭하여 연결 추가 창을 시작합니다.

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

  • Redshift를 선택하고 요청한 세부 정보를 제공하여 새 연결을 설정하십시오.
  • 기본적으로 TeamSQL은 왼쪽 탐색 패널에 추가 한 연결을 표시합니다. 연결을 사용하려면 소켓 아이콘을 클릭하십시오.
  • 기본 데이터베이스를 마우스 오른쪽 버튼으로 클릭하여 새 탭을 엽니 다.

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

  • 이 명령을 실행하여 데이터베이스에 새 스키마를 만듭니다.
     SCHEMA 짹짹 만들기;    

  • 연결 항목을 마우스 오른쪽 버튼으로 클릭하여 왼쪽 탐색 패널에서 데이터베이스 목록을 새로 고칩니다.
  • 교육 데이터를위한 새 테이블을 만듭니다.
     CREATE TABLE 트윗. 훈련 (극성의 int,id int,date_of_tweet varchar,query varchar,user_id varchar,트윗 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 짹짹. 's3 : // MY_BUCKET / training에서 교육. 처리되었습니다. noemoticon. CSV. gz '자격증 명 'aws_access_key_id = MY_ACCESS_KEY; aws_secret_access_key = MY_SECRET_KEY'CSV GZIP ACCEPTINVCHARS    

이 명령은 CSV 파일을로드하고 우리의 짹짹에 데이터를 가져옵니다. 훈련 테이블.

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

명령 매개 변수 정의

CSV : 입력 데이터에서 CSV 형식 사용을 활성화합니다.

DELIMITER : 파이프 문자 (|), 쉼표 (,) 또는 탭 (\ t)과 같이 입력 파일의 필드를 구분하는 데 사용되는 단일 ASCII 문자를 지정합니다.

GZIP : 입력 파일이 압축 된 gzip 형식 (.gz 파일)으로 지정되는 값입니다. COPY 작업은 각 압축 파일을 읽고로드 할 때 데이터의 압축을 해제합니다.

ACCEPTINVCHARS : 데이터에 유효하지 않은 UTF-8 문자가 포함되어 있더라도 VARCHAR 열에 데이터를로드 할 수 있습니다. ACCEPTINVCHARS가 지정되면 COPY는 각 유효하지 않은 UTF-8 문자를 replacement_char 로 지정된 문자로 구성된 길이가 같은 문자열로 바꿉니다. 예를 들어, 대체 문자가 ' ^ '이면 유효하지 않은 3 바이트 문자가 ' ^^^ '로 바뀝니다.

대체 문자는 NULL을 제외한 모든 ASCII 문자가 될 수 있습니다. 기본값은 물음표 (?)입니다. 잘못된 UTF-8 문자에 대한 자세한 내용은 다중 바이트 문자로드 오류를 참조하십시오.

COPY는 유효하지 않은 UTF-8 문자가 포함 된 행 수를 반환하고 영향을받은 각 행에 대해 STL_REPLACEMENTS 시스템 테이블에 각 노드 슬라이스에 대해 최대 100 행까지 항목을 추가합니다. 부정한 UTF-8 문자도 대체되지만 대체 이벤트는 기록되지 않습니다.

ACCEPTINVCHARS가 지정되지 않으면 유효하지 않은 UTF-8 문자가 발생할 때마다 COPY가 오류를 리턴합니다.

ACCEPTINVCHARS는 VARCHAR 열에 대해서만 유효합니다.

추가 정보는 적색 편이 복사 매개 변수 및 데이터 형식을 참조하십시오.

가져온 데이터에 액세스하기

COPY 프로세스가 끝났습니다. SELECT 쿼리를 실행하여 모든 것이 제대로 가져 왔는지 확인하십시오 :

     SELECT *에서 짹짹. LIMIT 200 훈련;    

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

문제 해결

COPY 명령을 실행하는 동안 오류가 발생하면 다음을 실행하여 Semalt 로그를 확인할 수 있습니다.

     SELECT * FROM stl_load_errors;    

무료로 TeamSQL을 다운로드 할 수 있습니다.

March 1, 2018