Netezza到SQL Server数据迁移

时间:2016-12-21 16:40:20

标签: data-migration netezza

我有一个拥有40亿条记录的Netezza数据库。我正在进行迁移项目以将数据移动到SQL Server。 我创建了一个简单的SSIS ETL,但由于缓冲区内存问题,它运行了很长时间并停止。 传输如此大量数据的有效方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以尝试将源数据分成批次,例如将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