[HADOOP] 그것은 가져 오기 전에 새 파일에 필터와 Sqoop을 증분 가져 오기를 쓸 수 있습니까?
HADOOP그것은 가져 오기 전에 새 파일에 필터와 Sqoop을 증분 가져 오기를 쓸 수 있습니까?
내 의심의 여지가 내가 SQL 서버 테이블에 같은 파일 3000 개 레코드를 추가 한 후 그 날, HDFS에이 데이터를 가져 오기, 말, 내가 SQL 서버 테이블에 2,000 레코드를 가진 파일 A1.csv을 가지고있다. 지금, 나는 내가 완전한 3000 개 레코드를 가져올 수 싶지 않아, HDFS에 추가 할 데이터의 두 번째 덩어리에 대한 증분 가져 오기를 실행하려면,하지만. 나는 특정 조건 1000 개 레코드가 증가 가져 오기의 일환으로 가져올 수, 같은 가져올 수 내 필요에 따라 일부 데이터가 필요합니다.
할 Sqoop을 증분 가져 오기 명령을 사용하여 해당하는 방법이 있나요?
제발 도와주세요, 감사합니다.
해결법
-
==============================
1.당신은 귀하의 경우 새로운 1000 개 기록 인 델타를 식별하는 고유 키 또는 타임 스탬프 필드가 필요합니다. 옵션 당신이 해당 필드를 사용하여 하둡에 데이터를 가져올 수 있습니다.
당신은 귀하의 경우 새로운 1000 개 기록 인 델타를 식별하는 고유 키 또는 타임 스탬프 필드가 필요합니다. 옵션 당신이 해당 필드를 사용하여 하둡에 데이터를 가져올 수 있습니다.
옵션 1
Sqoop을 APPEND 증분을 사용하여, 아래 그것의 예는
sqoop import \ --connect jdbc:oracle:thin:@enkx3-scan:1521:dbm2 \ --username wzhou \ --password wzhou \ --table STUDENT \ --incremental append \ --check-column student_id \ -m 4 \ --split-by major
인수 :
--check-column (col) #Specifies the column to be examined when determining which rows to import. --incremental (mode) #Specifies how Sqoop determines which rows are new. Legal values for mode include append and lastmodified. --last-value (value) Specifies the maximum value of the check column from the previous import.
옵션 2
당신이 MySQL을위한 네이티브 SQL을 사용할 수 Sqoop을에 --query 인수를 사용하여 / 데이터베이스 당신이에 연결합니다.
예 :
sqoop import \ --query 'SELECT a.*, b.* FROM a JOIN b on (a.id == b.id) WHERE $CONDITIONS' \ --split-by a.id --target-dir /user/foo/joinresults sqoop import \ --query 'SELECT a.*, b.* FROM a JOIN b on (a.id == b.id) WHERE $CONDITIONS' \ -m 1 --target-dir /user/foo/joinresults
from https://stackoverflow.com/questions/48556141/is-it-possible-to-write-a-sqoop-incremental-import-with-filters-on-the-new-file by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하둡 네임 노드가 시작되지 않습니다 (0) | 2019.09.22 |
---|---|
[HADOOP] 하이브 테이블의 상단에 몇 줄 추가 (0) | 2019.09.22 |
[HADOOP] 하둡 setInputPathFilter 오류 (0) | 2019.09.22 |
[HADOOP] 원격 HDFS 액세스 (0) | 2019.09.22 |
[HADOOP] 맵리 듀스를 사용하여 중복 값을 제거하는 방법 (0) | 2019.09.22 |