비디오: 3/7일 수요장터:피처삽입 및 업데이트 2024
삽입 모드에서는 Sqoop에 의해 반출 된 레코드가 목표 테이블의 끝에 추가됩니다. Sqoop은 또한 -update-key 명령 행 인수를 제공하여 사용할 수있는 갱신 모드를 제공합니다. 이 조치는 Sqoop이 SQL UPDATE 문을 생성하여 RDBMS 또는 데이터웨어 하우스에서 실행되도록합니다.
3 열 테이블을 HDFS 파일 / user / my-hdfs-file에 저장된 데이터로 업데이트한다고 가정합니다. 파일에 다음 데이터가 들어 있습니다.
100, 1000, 2000
다음 Sqoop export 명령은 데이터베이스 시스템에서 해당 SQL UPDATE 문을 생성합니다.
$ sqoop export (일반 인수) --table target-relational -table --update-key column1 --export-dir / user / my-hdfs-file … => UPDATE 대상 관계형 테이블을 생성합니다. column2 = 1000, column3 = 2000 WHERE column1 = 100;
위의 내보내기 명령을 사용하여 RDBMS 또는 데이터웨어 하우스 시스템의 target-relational-table에 column1에 일치하는 값이있는 레코드가 없으면 target-relational-table에서 아무 것도 변경되지 않습니다.
그러나 일치하는 레코드가 없으면 목표 테이블에 데이터를 삽입하거나 추가하는 다른 인수를 포함 할 수도 있습니다. 이것을 다음과 같이 생각하십시오: UPDATE가 존재하면 INSERT.
이 기술은 데이터베이스의 upsert 또는 다른 구현의 MERGE라고도합니다. upsert 모드의 인수는 -update-mode입니다. 여기서 updateonly는 기본값이고 allowinsert는 upsert 모드를 활성화합니다. 데이터베이스 설명서를 확인하거나 공급 업체에 문의하여 Upsert 모드가 Apache Sqoop에서 지원되는지 확인하십시오.