2011-04-12 3 views
0

ICE 버전 : infobright-3.5.2-P1-win_32 나는 큰 파일을로드하지만 같은 오류 문제로 실행을 유지하기 위해 노력하고있어갖는 문제

:

잘못된 데이터 또는 열 정의입니다. 행 : 989, 필드 : 5.

이 행 989, 필드 5 :

"(450) 568-3 ***"

참고 : 마지막 3 개 문자는 숫자 뿐만 아니라, 그러나 여기에 somebodys 전화 번호를 게시하고 싶지 않았다.

을 그것은 그 분야에서 다른 항목의 정말 다를 바 없다.

를 해당 필드의 데이터 유형은 VARCHAR (255)입니다 NULL하지 않음

+0

실행 한 쿼리를 게시하여 데이터? 테이블 DDL은 파일의 샘플 행뿐만 아니라 도움이 될 것입니다. – curlingdude

답변

3

또한 현재 릴리스 4.0.6으로 업그레이드하면 LOAD 중에 행 수준 오류 검사를 지원하고 거부 파일을 지원합니다.

거부 ​​파일 기능을 사용하려면 BH_REJECT_FILE_PATH와 연관된 매개 변수 (BH_ABORT_ON_COUNT 또는 BH_ABORT_ON_THRESHOLD) 중 하나를 지정해야합니다. 예를 들어, DATAFILE.csv 파일의 데이터를 테이블 T로로드하려고하지만이 파일의 10 개 행이 잘못 포맷 될 것으로 예상하는 경우 다음 명령을 실행하십시오.

@BH_REJECT_FILE_PATH = '/ tmp/reject_file ';

세트 @BH_ABORT_ON_COUNT = 10;

로드 데이터를 DATAFILE.csv를 T 테이블에 infile하십시오.

10 개 미만의 행이 거부되면 경고가 출력되고로드가 성공하며 문제가있는 모든 행이/tmp/reject_file 파일에 출력됩니다. Infobright 로더가 열 번째 열을 찾으면로드가 오류로 종료되고 지금까지 발견 된 모든 불량 행이/tmp/reject_file 파일로 출력됩니다.

0

파일의 마지막 줄이 --lines-terminated-by = "\ n"값으로 종료되지 않은 경우이 문제가 발생했습니다. 예 : 9000 줄의 데이터가있는 파일을 가져 오는 경우 파일 끝에 새 줄이 있는지 확인해야합니다. 파일의 크기에 따라 텍스트 편집기로 열어 반품 할 수 있습니다. k

0

'\ r \ n'과 '\ n'의 차이와 일치하는 것으로 나타났습니다. Windows에서 로더를 실행하는 경우에도 '\ n'이 100 % 성공합니다 (데이터 대 col. 정의에 실제 문제가 없다고 가정).