나는 1 억 개의 행을 포함하는 큰 테이블을 가진 데이터베이스를 가지고있다. 이 데이터를 내보내고 (일부 변환 후이 테이블을 다른 테이블과 조인하고 일부 필드를 정리하는 등) 나중에 큰 텍스트 파일로 저장하여 나중에 Hadoop으로 처리하려고합니다. 대형 테이블 (100M + 행)을 텍스트 파일로 내보내는 방법은 무엇입니까?
지금까지, 나는 두 가지 시도 : 파이썬을 사용하여를, 내가 this subquery trick를 사용하여 덩어리 (한 번에 일반적 10'000 기록)하여 테이블을 찾아, 각 행의 변환을 수행 직접 쓰기 텍스트 파일. 트릭이 도움이되지만
LIMIT
은 내보내기가 진행됨에 따라 느려지고 느려집니다. 나는 이것으로 전체 테이블을 내보낼 수 없었습니다.mysql
명령 줄 도구를 사용하여CSV
형식의 내 쿼리 결과를 텍스트 파일로 직접 출력하려고했습니다. 크기 때문에 메모리가 부족하여 추락했습니다.
나는 현재 직접 HDFS
로 데이터를 가져올 수있는 도구로 Sqoop을 조사하고,하지만 난 같은 대규모 수출을 처리하는 방법을 다른 사람이 있을까요?
['SELECT ... INTO OUTFILE'] (http://dev.mysql.com/doc/en/select-into.html). – eggyal
가능한 복제본 http://stackoverflow.com/questions/10890163/exporting-large-mysql-table – RGO