2014-05-22 2 views
1

우리는 프로젝트에서 HDFS 소스에서 데이터를 소스로로드해야한다는 요구 사항이 있습니다.하이브로 데이터 테스팅

그리고 우리는/변환 룰로 데이터 변환 (소스에서 타겟으로)을 검증해야합니다.

그들은 우리에게 목표 테이블뿐만 아니라 소스 테이블의 플랫 파일 (단일 플랫 파일/테이블)을 제공합니다. 우리가 그렇게하고 자동화 범위이에이 수 방법

우리는 하이브

를 통해이 데이터 유효성 검사를해야한다.

저는이 Hadoop 기술을 매우 초보자입니다. 친절

답변

2

이 데이터 -

1 쓰기 사용자 정의 UDF를 확인하고 행을 통해 유효성 검사 규칙을 적용 할 수있는 다음 단계를 시도 나를 도와, 당신은 UDF에서 유효성 검사 규칙을 작성하기위한 REGEX을 사용할 수 있습니다.

2 하이브 테이블에로드하는 동안 데이터를 확인하기 위해 사용자 정의 Serde 또는 InputFOrmat를 작성하십시오.

3 Mapreduce Job을 사용하여 데이터 유효성 검사를 직접 시도하십시오. 소스 시스템이 RDBMS 인 경우


당신은 HDFS에 직접 하이브로 데이터를 가져 Sqoop을 사용할 수 있습니다.

Sqoop에는 행 수 및 복사 된 행 수를 사용하여 가져 오기/내보내기의 유효성을 검사하는 내장 기능이 있습니다. Sqoop을 가져 오기 --connect JDBC한다 : mysql : // localhost를/IMDB --table 영화는 또한 1 ValidationThreshold을 interfaces- 확장하여 자신의 검증 체계를 만들 수 있습니다

을 --validate. 2 ValidationFailureHandler. QA 및 DEV 그 모두에는 데이터베이스 ACESS가없는 소스로 3 검사기

example- 
**sqoop import --connect jdbc:mysql://localhost/imdb \ 
--validate --validator org.apache.sqoop.validation.RowCountValidator \ 
--validation-threshold \ 
     org.apache.sqoop.validation.AbsoluteValidationThreshold \ 
--validation-failurehandler \ 
     org.apache.sqoop.validation.LogOnFailureHandler** 
+0

클라이언트는 우리에게 플랫 파일을 제공합니다. – user2854098

+0

데이터를 테스트 할 수있는 다른 방법이 없으므로 접근 방식 (1, 2 또는 3)을 진행할 것을 제안합니다. –

관련 문제