2016-10-31 2 views
0

저는 DBA를 처음 사용하고 SQL 담당자가 많지 않으므로 친절하게하십시오.다단계 스키마 변경을 반복하는 방법 (ETL 스키마 변경)

새로운 열, 테이블 및 관계를 추가하고 이전 테이블, 열 및 관계를 제거해야하는 데이터베이스를 다시 구성하고 싶습니다. 3 단계 프로세스가 순서대로 진행되는 것 같습니다.

  1. 변경 스키마는 이전 데이터의 일부를 사용하여 새 데이터를 연결하는 새로운 물건을
  2. 실행 SSIS를 추가 할 수 있습니다.
  3. 스키마를 변경하여 오래된 항목을 삭제합니다.

내가 스키마를 유지하기 위해 VS 2015에서 SQL 데이터베이스 프로젝트를 사용하고 스키마를 사용하고는 DB 스키마를 업데이트 할 수 비교. 가능한 경우 반복 가능하거나 자동으로 만들고 싶습니다. 따라서 프로덕션 이외의 데이터베이스에서 올바르게 테스트하여 스키마를 변경하십시오 : 스키마 변경 -> ETL-> 스키마 변경을 실행하십시오. ETL 내에서 스키마 변경 사항을 적용하는 방법이 있습니까? 아니면 수동 작업이 필요합니까? 파일에 두 개의 스키마를 저장 한 다음 VS를 게시하거나 비교하는 것 외에 다른 방법을 적용 할 수 있습니까?

답변

1

원하는 작업을 수행 할 수있는 SQL 작업이 있습니다. (열을 추가하기 위해) 테이블을 변경하고 이전 열의 데이터를 새 열로 이동 한 다음 이전 열을 삭제하려고합니다.

1) Alter table tableA add column .. 
2) update table tableA set .. 
3) alter table tableA drop column... 

실행하기 전에 코드를주의 깊게 테스트하십시오.

+0

감사 벤자민. 그렇다면 SSIS와 데이터베이스 프로젝트를 건너 뛰어야한다고 생각합니까? 그들은 이론상 SQL 초보자들에게 좋은 목발처럼 보이지만 현실에 대해서는 그렇게 확신하지 못합니다. – jlear

+0

오, SSIS의 SQL 작업에 대해 이야기하고 있습니까? 신경 쓰지 마. – jlear

0

효과가 있습니다. 다음은 ETL의 예입니다. 데이터베이스가 정적이 아니기 때문에 데이터 흐름의 경우 DelayValidation을 true로 설정하고 데이터 흐름 내의 일부 작업에 대해 ValidateExternalMetadata를 비활성화하는 것이 중요합니다.

Example Control Flow that Modifies Schema