0
40 억 개의 레코드가있는 Netezza DB가 있습니다. 데이터를 SQL Server로 옮기는 마이그레이션 프로젝트를 진행하고 있습니다. 간단한 SSIS ETL을 만들었지 만 매우 오랜 시간 동안 실행 중이며 버퍼 메모리 문제로 인해 중지됩니다. 엄청난 양의 데이터를 전송하는 효율적인 빠른 방법은 무엇입니까?Netezza에서 SQL Server 로의 데이터 마이그레이션
40 억 개의 레코드가있는 Netezza DB가 있습니다. 데이터를 SQL Server로 옮기는 마이그레이션 프로젝트를 진행하고 있습니다. 간단한 SSIS ETL을 만들었지 만 매우 오랜 시간 동안 실행 중이며 버퍼 메모리 문제로 인해 중지됩니다. 엄청난 양의 데이터를 전송하는 효율적인 빠른 방법은 무엇입니까?Netezza에서 SQL Server 로의 데이터 마이그레이션
원본 데이터를 배치 (예 : 1,000,000 행 (메모리에 따라 다름))로 배치하여 Netezza 테이블로 병합 할 수 있습니다.
DECLARE @BatchSize INT = 10000
WHILE 1 = 1
BEGIN
INSERT INTO [dbo].[Destination] --WITH (TABLOCK) -- Uncomment for 2008
(
FirstName
,LastName
,EmailAddress
,PhoneNumber
)
SELECT TOP(@BatchSize)
s.FirstName
,s.LastName
,s.EmailAddress
,s.PhoneNumber
FROM [dbo].[SOURCE] s
WHERE NOT EXISTS (
SELECT 1
FROM dbo.Destination
WHERE PersonID = s.PersonID
)
IF @@ROWCOUNT < @BatchSize BREAK
END
SQL을 사용하여 테이블의 데이터를 외부 테이블 (플랫 파일)에서 언로드 할 수 있습니다.이 작업을 수행하는 방법을 이해하는 좋은 출발점은 http://www.ibm.com/support/knowledgecenter/입니다. ko/SSULQD_7.2.1/com.ibm.nz.load.doc/c_load_external_tables.html에는 데이터를 언로드하고 원격 클라이언트 시스템으로 언로드하는 하위 절도 있습니다. 분명히 일단 데이터가 파일로 언로드되면, 이것을 SQL 서버로 가져와야 할 것입니다. 희망이 도움이됩니다. –