将新数据插入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;
现在,我们看到的是,在非常大的桌子上,这会随着时间的推移而降低,而且很明显为什么你正在阅读你已经拥有的所有东西,并重新插入它......这对我来说似乎不是最理想的......
有没有人有他们见过的替代方法,我正在考虑像分区切换这样的事情......
答案 0 :(得分:2)
同意谁? CTAS 可以是一个有效的选项,但它实际上取决于您的数据量,SLA,业务流程等。例如,如果您将小卷插入已经很大的表中,我不确定CTAS有道理,为什么不INSERT
?您可以在Azure SQL数据仓库中使用分区切换(例如here)。其他选项包括Azure数据工厂,SSIS(现在支持Azure SQL数据仓库),Polybase,普通INSERT
等
请查看以下文章,该文章提供了许多将数据加载到Azure SQL数据仓库的策略: