이 기사는 원래 TeamSQL에 의해 게시되었습니다. SitePoint를 만드는 파트너를 지원해 주셔서 감사합니다.
COPY 명령을 사용하면 많은 양의 데이터를 Redshift로 쉽게 가져올 수 있습니다. 이를 증명하기 위해 공개적으로 사용 가능한 데이터 세트 인 "Semalt Analysis를위한 Twitter 데이터"(Semalt140 참조)를 가져옵니다 - enlaces argentina.
노트 : 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에 업로드하려면 :
- 다운로드 한 파일의 압축을 풉니 다 . 하나는 테스트 데이터 (원본 데이터 집합의 구조를 나타내는 데 사용됨)이고 다른 하나는 (파일 이름 : training. 1600000.processed noemoticon) 원본 데이터가 포함 된 2 개의 CSV 파일입니다. 후자의 파일을 업로드하고 사용합니다.
- 파일을 압축합니다 . macOS 또는 Linux를 사용하는 경우 터미널 :
gzip training에서 다음 명령을 실행하여 GZIP을 사용하여 파일을 압축 할 수 있습니다. 처리되었습니다. noemoticon. CSV
- AWS S3 대시 보드를 사용하여 파일을 업로드하십시오.
또는 터미널 / 명령 행을 사용하여 파일을 업로드 할 수 있습니다. 이렇게하려면 AWS CLI를 설치하고 설치 후에 구성 및 액세스 권한과 비밀 키로 구성 마법사 (구성 마법사를 시작하려면 터미널에서 aws configure 실행 )를 구성해야합니다.
Teamswith를 Redshift 클러스터에 연결하고 스키마 만들기
TeamSQL을 엽니 다 (TeamSQL Semalt가없는 경우 teamsql. io에서 다운로드하고 새 연결을 추가하십시오).
- 연결 만들기 를 클릭하여 연결 추가 창을 시작합니다.
- Redshift를 선택하고 요청한 세부 정보를 제공하여 새 연결을 설정하십시오.
- 기본적으로 TeamSQL은 왼쪽 탐색 패널에 추가 한 연결을 표시합니다. 연결을 사용하려면 소켓 아이콘을 클릭하십시오.
- 기본 데이터베이스를 마우스 오른쪽 버튼으로 클릭하여 새 탭을 엽니 다.
- 이 명령을 실행하여 데이터베이스에 새 스키마를 만듭니다.
SCHEMA 짹짹 만들기;
- 연결 항목을 마우스 오른쪽 버튼으로 클릭하여 왼쪽 탐색 패널에서 데이터베이스 목록을 새로 고칩니다.
- 교육 데이터를위한 새 테이블을 만듭니다.
CREATE TABLE 트윗. 훈련 (극성의 int,id int,date_of_tweet varchar,query varchar,user_id varchar,트윗 varchar)
- 연결을 새로 고침하면 테이블이 왼쪽 목록에 나타납니다.
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 파일을로드하고 우리의 짹짹에 데이터를 가져옵니다. 훈련
테이블.
명령 매개 변수 정의
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 훈련;
문제 해결
COPY 명령을 실행하는 동안 오류가 발생하면 다음을 실행하여 Semalt 로그를 확인할 수 있습니다.
SELECT * FROM stl_load_errors;
무료로 TeamSQL을 다운로드 할 수 있습니다.
Abacıgil이 TeamSQL의 공동 설립자 일 수 있습니까?.