2018년 9월 29일 토요일

[SQL Server] 대용량 데이터 파일로 바로 내보내기

데이터 추출 작업을 진행하다 보면 대용량의 데이터를 파일로 저장 해야 하는 경우가 있다.
데이터가 작다면 즉석에서 복사 붙여넣기가 편하지만 데이터가 많다면 시간이 오래걸리고 메모리가 overflow되어 진행되지 않는다.

이런경우 SQL Server Import and Export Wizard 도구를 활용하여 진행한다.

1. 작업하고자 하는 DB에서 마우스 우클릭 > Tasks > Export Data... 선택 하면 해당 도구가 실행된다.

2. Next 버튼을 클릭

3. Choose a Data Source 메뉴는 데이터를 어디에서 가지고 올것인가를 결정하는 것이다. 
  SQL Server Native Client XX.0을 선택한다.

4. 서버 명 혹은 IP 정보를 입력하고 인증모드를 선택한다 주로 로컬이면 (local)이라고 하면 되고, 인증모드도 해당 SQL 서버에 접속할 때 사용하는 인증모드를 선택해 주면된다.

5. Database 에서 데이터를 가지고 갈 DB를 선택 후 Next> 버튼을 클릭해준다. 

6. 데이터를 어떻게 추출할지 Choose a Destination 화면이 나온다. 원하는 것을 선택해 주면 된다. csv 파일로 내보내는 것을 예로 들면 Destination은 Flat File Destination으로 선택한다.

7. File name 에서 파일이 저장될 곳을 정해서 지정해준다. 이때 저장 옵션을 csv로 선택해주는 것이 중요하며, Unicode  옵션을 설정해주는 것이 대체적으로 데이터가 깨지지 않는다.

8. Column name in the first data row 옵션이 있는데 해당 파일의 첫 행을 컬럼명으로 할 것인지 물어보는 것이다. 체크를 하는 것이 편하다. 나중에 데이터 분석을 할 때 해당 데이터가 어떤 컬럼의 데이터에 해당하는지 명확하게 확인할 수 있다.

9. 이제 전송할 데이터를 어떻게 추출할지 결정한다. Write a query to specify the data to transfer 옵션은 쿼리 작성을 통해 작업을 진행하겠다는 뜻이다. 해당 옵션 선택 후 Next> 버튼을 클릭한다.

10. SQL statement 에서 추출할 대상의 쿼리를 써넣는다.
 ex> select * from tbl_name
 Parse 버튼을 누르면 이 쿼리가 유효한 쿼리인지 다시 확인 해준다. 유효하다면 Next> 버튼을 눌러준다.

11. 이제 텍스트의 행과 열을 구분한다. csv로 선택했다면 Column delimiter 가 Comma {,} 로 될 것이다. 다른 옵션이 필요하다면 선택 가능한다. 이때도 Edit Mappings..를 통해 데이터 매핑을 진행 할 수 있다. 문제가 없다면 Next> 버튼을 클릭한다.

12. Save and Run Package 에서  Run immediately 를 선택하면 바로 실행이 가능하다. Next> 버튼 클릭하면 수행할 동작을 정리한 내용을 보여준다. 진행 작업이 맞다면 Finish>>|를 눌러주면 작업이 진행된다.

13. 성공결과를 확인 하면 원하는 파일을 확인 할 수 있다.

댓글 없음:

댓글 쓰기