2017-12-17 1 views
0

아래 사항을 도와주십시오.sqoop 유효성 검사를 사용하는 방법?

  1. 은 오늘 거대한 헤아 렸어요 기록과 오라클 데이터베이스를 가지고 - 5TB의 데이터를 가정, 그래서 우리는 그것은 HDFS에서 확인하고 가져옵니다 framework- Sqoop을 vaildator를 사용할 수 있습니다.
  2. 그러면 tomorrow-i는 위의 TB 데이터 위에 새 레코드를 받게 될 것이므로 어떻게 새 레코드 (기존 레코드 만 새 레코드로 가져올 수 있습니까)와 유효성 검사기 sqoop 프레임 워크를 사용하여 유효성 검사를 가져올 수 있습니다.
  3. 새 레코드가 도착하면 sqoop 유효성 검사기를 사용하는 방법에 대한 요구 사항이 있습니다.
  4. 새 레코드가 사용 된 sqoop validatior 프레임 워크가 HDFS로 가져 오기되어야합니다.

제발 도와주세요. 감사합니다.

+0

내 대답에 유효성 검사 부분을 추가했습니다. 도움이되고 효과가 있다면 제 답변을 upvote 해주세요. – roh

답변

1

나의 이해는 당신이 당신의 델타 프로세스를 시작하기 전에 새로운 레코드에 대한 오라클 데이터베이스를 확인할 필요가있다 Sipra, 감사합니다. 나는 당신이 기록의 크기에 근거하여 검증 할 수 있다고 생각하지 않는다. 그러나 유효성 검사에 도움이되는 오프셋 또는 TS 열이있는 경우

마지막 실행/작업/검사 이후 oracle에 새 레코드가 있는지 어떻게 알 수 있습니까 ??

두 개의 sqoop 가져 오기 방법으로이 작업을 수행 할 수 있습니다. 다음은 두 가지 모두에 대한 예제와 설명입니다. https://www.tutorialspoint.com/sqoop/sqoop_import.html

Sqoop을 가져 오기 사용하여 쿼리 옵션

:

Sqoop을 증가

는 다음이 링크를 설명

sqoop import --connect jdbc:mysql://localhost:3306/ydb --table yloc --username root -P --check-column rDate --incremental lastmodified --last-value 2014-01-25 --target-dir yloc/loc

증분 Sqoop을 수입에 대한 예입니다

기본적으로 쿼리의 where 조건을 사용하고 마지막으로받은 날짜 또는 오프셋 열보다 큰 데이터를 가져옵니다.

여기에 대한 구문이 sqoop import \ --connect "jdbc:mysql://quickstart.cloudera:3306/retail_db" \ --username retail_dba --password cloudera \ --query 'select * from sample_data where $CONDITIONS AND salary > 1000' \ --split-by salary \ --target-dir hdfs://quickstart.cloudera/user/cloudera/sqoop_new

독립적 검증 및 가져 오기 작업을 실행할 경우 Sqoop을 평가입니다 Sqoop을에 ​​다른 유틸리티가

검증 및 가져 오기 작업을 분리, 이를 통해 rdbms에 대한 쿼리를 실행하고 파일 또는 변수에 출력을 지정하고 코드에서 원하는대로 유효성을 검사 할 수 있습니다.

구문 : $ sqoop eval \ --connect jdbc:mysql://localhost/db \ --username root \ --query “SELECT * FROM employee LIMIT 3”

는 여기에 설명 : https://www.tutorialspoint.com/sqoop/sqoop_eval.htm

검증 매개 변수를 Sqoop을에 ​​

가져온 무슨 사이의 수를 검증하기 위해이 매개 변수를 사용할 수 있습니다

/

RDBMS와 HDFS 사이에 수출
—validate 

기타 : https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#validation

관련 문제