Hadoop

Sqoop(MySQL <-> hdfs) 명령어

집못가는프로그래머 2021. 9. 28. 10:59

sqoop import --connect jdbc:mysql://localhost:3306/userdb?serverTimezone=UTC --username user1 --password user1pwd --table emp -m 1 --target-dir /user/data/mysql/emp

 

import : SQL DB로부터 HDFS영역에 데이터를 불러온다.

--table emp -m 1 : DB의 emp 테이블을 1개의 파일로 분산시켜 저장한다

--target-dir /user/data/mysql/emp : hdfs영역내의 저장할 디렉토리 지정

 

Output

 


truncate table_name;  - MySQL의 테이블 내용 비우기

: hdfs영역의 데이터를 SQL의 DB Table로 가져올 때 Table이 비우기 위해 쓴다


 

sqoop export --connect jdbc:mysql://localhost:3306/userdb?serverTimezone=UTC --username user1 --password user1pwd --table emp -m 1 --export-dir /user/data/mysql/emp/

 

export : hdfs영역의 데이터를 SQL의 DB에 저장한다

--table emp -m 1 : 1개로 분산되어있는 데이터를 emp테이블에 저장

--export-dir /user/data/mysql/emp/ : SQL db에 저장될 hdfs영역의 데이터 위치

 

Output


*hdfs영역의 파일에 append하기

sqoop import --connect jdbc:mysql://localhost:3306/userdb?serverTimezone=UTC --username user1 --password user1pwd --target-dir /user/data/mysql/emp/ -m 1 --table emp --incremental append --check-column id

 

--incremental append : append하여 작성한다

--check-column id : id컬럼이 중복되는지 확인