2017-12-14 6 views
0

--incremental sqoop 가져 오기 스위치가 SQOOP를 통한 HIVE 가져 오기에 작동하지 않는 것으로 알려져 있습니다. 하지만 그 해결 방법은 무엇입니까?incremental sqoop to HIVE 테이블

1) 내가 만들 수있는 한 가지는 HIVE 테이블을 만들고 SQOOP를 통해 증분 데이터를 HDFS로 가져 와서 수동으로로드 할 수 있다는 것입니다. 그러나 우리가 그것을하고 있다면, 매번로드가 이루어지면 데이터를 덮어 씁니다. 내가 틀렸다면 나를 바로 잡아주세요.

2) 데이터를 HIVE로 sqooping 할 때 얼마나 효과적입니까?

답변

2

당신은 하이브 테이블에 Sqoop을 증가 APPEND을 할 수 고맙지 만, 아래 당신이 그것을 달성 할 수있는 방법 중 하나입니다에는 바로 옵션이 없습니다.

하이브에 증분 테이블을 외부 테이블로 저장하십시오. 데이터가 마지막으로 업데이트 된 후 증분 변경 내용을 가져 와서 병합하는 것이 더 일반적입니다. 다음 예에서 --check-column은 마지막 증분 데이터의 날짜 인 last_import_date보다 새로운 레코드를 가져 오는 데 사용됩니다 갱신 :

sqoop import --connect jdbc:teradata://{host name}/Database=retail —connection manager org.apache.sqoop.teradata.TeradataConnManager --username dbc -password dbc --table SOURCE_TBL --target-dir /user/hive/incremental_table -m 1 --check-column modified_date --incremental lastmodified --last-value {last_import_date} 

쿼리 또한 급습 가져 오기에 활용할 수있는 매우 유용한 인수입니다 귀하의 질문의 두 번째 부분은 당신에게 기본의 유연성을 줄 것이다는 RDBMS 테이블과 유연성에 조인 날짜 및 시간 형식으로 재생할 수 있습니다. 만약 내가 당신의 신발에 내가 필요로하는 방식으로 데이터를 가져올 것입니다 쿼리를 사용하여 내 원래 테이블에 추가하고 기본 테이블에서 데이터로 더 많은 재생할 수있는로드하는 동안 것입니다. 업데이트가 너무 빈번하지 않은 경우 쿼리를 사용하는 것이 좋습니다.

+0

--incremental은 HDFS에 데이터를 저장하고 HIVE EXT 테이블에로드하는 측면에서 작동합니다. 그러나 sqoop이 HIVE 테이블을 생성하는 동안 우리가 직접 SQOOP를 통해 --increment를 사용할 수 있는지 찾고있었습니다. 나는 그럴 수 없다고 생각한다. 내 생각에 - 귀하의 의견에 따라 쿼리가 좋습니다 – user3521180

관련 문제