2017-07-06 83 views
1

商定的模式來插入新的數據到Azure的數據倉庫已經存在的表似乎是...Azure的數據倉庫插入到表巨大

create table dbo.MyTable_New 
with (distribution = round_robin) 
as 

select 
    Col1 
    ,Col2 
from dbo.MyTable 

union all 

select 
    Col1 
    ,Col2 
from dbo.MyNewStuff; 

現在,我們所看到的是,在真正的大這會隨着時間的推移而降低,這很明顯,爲什麼你正在閱讀你已經擁有的一切,並重新插入它..這似乎對我來說是次優的...

有沒有人有任何其他方法,他們已經看到爲他們工作,我正在考慮像分區切換等事情...

回答

2

同意誰? CTAS 可以是一個有效的選擇,但它實際上取決於您的數據量,SLA,業務流程等。如果您將小卷插入已經很大的表格中,例如,我不確定CTAS是否合理,爲什麼不選擇INSERT ?您可以在Azure SQL數據倉庫中使用分區切換(例如here)。其他選項包括Azure的數據工廠,SSIS(現在支持Azure的SQL數據倉庫),多鹼,純INSERT

請閱讀下面的文章,其提供了大量的數據加載策略到Azure的SQL數據倉庫:

https://blogs.msdn.microsoft.com/sqlcat/2017/05/17/azure-sql-data-warehouse-loading-patterns-and-strategies/

+0

大聲笑,插入的好點..這是相對較新的語法,你總是需要CTAS :) – m1nkeh

+1

'SELECT ... INTO'是新語法。普通的舊INSERT(連同'DELETE'和'UPDATE')一直在那裏。 – wBob