SQL을 배우고 있으며 다양한 개념을 이해하기 위해 몇 가지 샘플 데이터로 작업하려고합니다. 여기플랫 파일에서 MySQL 테이블로 데이터로드
은 같은 Yahoo! Search Marketing Advertiser Bid-Impression-Click data on competing Keywords data의 처음 몇 줄을 보면 무엇을 :
1 08bade48-1081-488f-b459-6c75d75312ae 2 2affa525151b6c51 79021a2e2c836c1a 327e089362aac70c fca90e7f73f3c8ef af26d27737af376a 100.0 2.0 0.0
29 08bade48-1081-488f-b459-6c75d75312ae 3 769ed4a87b5010f4 3d4b990abb0867c8 cd74a8342d25d090 ab9f74ae002e80ff af26d27737af376a 100.0 1.0 0.0
29 08bade48-1081-488f-b459-6c75d75312ae 2 769ed4a87b5010f4 3d4b990abb0867c8 cd74a8342d25d090 ab9f74ae002e80ff af26d27737af376a 100.0 1.0 0.0
11 08bade48-1081-488f-b459-6c75d75312ae 1 769ed4a87b5010f4 3d4b990abb0867c8 cd74a8342d25d090 ab9f74ae002e80ff af26d27737af376a 100.0 2.0 0.0
76 08bade48-1081-488f-b459-6c75d75312ae 2 769ed4a87b5010f4 3d4b990abb0867c8 cd74a8342d25d090 ab9f74ae002e80ff af26d27737af376a 100.0 1.0 0.0
48 08bade48-1081-488f-b459-6c75d75312ae 3 2affa525151b6c51 79021a2e2c836c1a 327e089362aac70c fca90e7f73f3c8ef af26d27737af376a 100.0 2.0 0.0
97 08bade48-1081-488f-b459-6c75d75312ae 2 2affa525151b6c51 79021a2e2c836c1a 327e089362aac70c fca90e7f73f3c8ef af26d27737af376a 100.0 1.0 0.0
123 08bade48-1081-488f-b459-6c75d75312ae 5 769ed4a87b5010f4 3d4b990abb0867c8 cd74a8342d25d090 ab9f74ae002e80ff af26d27737af376a 100.0 1.0 0.0
119 08bade48-1081-488f-b459-6c75d75312ae 3 2affa525151b6c51 79021a2e2c836c1a 327e089362aac70c fca90e7f73f3c8ef af26d27737af376a 100.0 1.0 0.0
73 08bade48-1081-488f-b459-6c75d75312ae 1 2affa525151b6c51 79021a2e2c836c1a 327e089362aac70c fca90e7f73f3c8ef af26d27737af376a 100.0 1.0 0.0
이 데이터는 야후에서에서만 사용할 수 있습니다 요청시. 나는 load data infile
문을 사용하여 MySQL의 테이블에 플랫 파일에서이 데이터를로드하려고
(1) "ydata-ysm-keyphrase-bid-imp-click-v1_0.gz" contains the following fields:
0 day
1 anonymized account_id
2 rank
3 anonymized keyphrase (expressed as list of anonymized keywords)
4 avg bid
5 impressions
6 clicks
Primary key of the data is a combination of fields date, account_id, rank and keyphrase. Average bid, impressions and
clicks information is aggregated over the primary key.
: 여기
는 데이터의 설명이다.질문 1 : 나는 별도의
varchar
열로를 지정하는 경우, 또는 데이터 형식이 일반적으로
, 나는 컬럼의 데이터 유형을 지정하는 방법을 이해하지만, 확실하지 3 anonymized keyphrase (expressed as list of anonymized keywords)
에 대해 오전 생각 그것들을 "목록"유형으로 함께 저장할 수 있습니까?
다음은 현재이 데이터를 보관할 테이블을 만드는 쿼리입니다.
# create a new database
create database webscopedata;
show databases;
use webscopedata;
# create the table
drop table bidders;
create table bidders (
daynum int,
account_id varchar(40),
rank int,
keyphrase1 varchar(100),
keyphrase2 varchar(100),
keyphrase3 varchar(100),
keyphrase4 varchar(100),
keyphrase5 varchar(100),
avg_bid double,
impressions double,
clicks double);
는 지금은 쿼리를 실행하려고하면
load data infile "ydata-ysm-keyphrase-bid-imp-click-v1_0" into table bidders fields terminated by "\t";
나는 탭 구분 기호를 지정할 때, 나는 오류 얻을 것을 :
Error Code: 1261. Row 1 doesn't contain data for all columns
이 믿고 날 리드를 탭 구분 기호를 지정할 때 필드가 올바르게 구분되지 않습니다. 그래서 쿼리를 사용하여 여러 구분 기호를 지정하려고 : 여기
load data infile "ydata-ysm-keyphrase-bid-imp-click-v1_0" into table bidders fields terminated by "' '\t";
나는 여러 필드 터미네이터를 사용하는 것을 시도하고있다,하지만이 작동하지 않는 것, 그리고 오류 얻을 :
Error Code: 1265. Data truncated for column 'daynum' at row 1
을 질문 2 : 어떻게 여러 구분 기호로이 데이터의 구문 분석을 지정할 수 있습니까?
행 1은 첫 번째 열에 유효한 숫자 1 alue 1), 데이터 파싱의 오류 일 수 있습니다.값이'null' 인 경우에도 '1265'오류가 발생할 수 있기 때문에 올바른 구분 기호를 사용하고 있는지 확인할 수 있습니다. – activatedgeek
질문 1에 대해서는 [this] (http://stackoverflow.com/questions/3653462/is-storing-a-delimited-list-in-a-database-column-really-that-bad) 토론을 참조하십시오. 또한 '데이터의 기본 키는 date, account_id, rank 및 keyphrase 필드의 조합입니다.'라고 생각하면 keyphrase는 단일 열이어야한다고 생각합니다. 두 번째 질문으로 넘어갑니다. 여러 개의 구분 기호를 지정하는 대신 데이터 파일의 패턴을 알고 있으므로 파서에있는 열의 하위 집합을 병합하면됩니다. – activatedgeek
@activatedGeek 1. 올바른 구분 기호를 사용하고 있는지 어떻게 확인할 수 있습니까? 2. "파서에서 열의 하위 집합을 병합"하는 것이 무슨 뜻인지 이해하지 못합니다. – tchakravarty