0
Netezza DBに40億レコードのテーブルが1つあります。私はSQL Serverにデータを移動するための移行プロジェクトに取り組んでいます。 シンプルなSSIS ETLを作成しましたが、これは非常に長い時間実行されており、バッファメモリの問題により停止しています。 このような膨大な量のデータを効率的に転送するにはどうすれば効率的ですか?NetezzaからSQL Serverへのデータ移行
Netezza DBに40億レコードのテーブルが1つあります。私はSQL Serverにデータを移動するための移行プロジェクトに取り組んでいます。 シンプルなSSIS ETLを作成しましたが、これは非常に長い時間実行されており、バッファメモリの問題により停止しています。 このような膨大な量のデータを効率的に転送するにはどうすれば効率的ですか?NetezzaからSQL Serverへのデータ移行
ソースデータをバッチに分割することができます。たとえば、1,000,000行(メモリに依存します)のバッチに分割して、Netezzaテーブルにマージすることができます。
あなたがこれを行う方法を理解するためにSQL、良い出発点を使用して外部表(フラットファイル)にテーブルからデータをアンロードすることができます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
は次のようになりhttp://www.ibm.com/support/knowledgecenter/ en/SSULQD_7.2.1/com.ibm.nz.load.doc/c_load_external_tables.htmlには、データのアンロードとリモート・クライアント・システムへのアンロードに関するサブセクションもあります。明らかに、データがファイルにアンロードされると、これもSQLサーバーにインポートする必要があります。 –