2017-07-06 82 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