1

将新数据插入 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;

现在,我们看到的是,在非常大的桌子上,这会随着时间的推移而退化,很明显为什么你要阅读你已经拥有的所有东西,然后重新插入它......这对我来说似乎不是最理想的......

有没有人有任何他们看到对他们有用的替代方法,我正在考虑诸如分区切换之类的事情......

4

1 回答 1

2

同意谁?CTAS可能是一个有效的选择,但它实际上取决于您的数据量、SLA、业务流程等。例如,如果您将少量数据插入已经很大的表中,我不确定 CTAS 是否有意义,为什么不INSERT呢?您可以在 Azure SQL 数据仓库中使用分区切换(例如此处)。其他选项包括 Azure 数据工厂、SSIS(现在支持 Azure SQL 数据仓库)、Polybase、plainINSERT

请查看以下文章,该文章提供了将数据加载到 Azure SQL 数据仓库的多种策略:

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

于 2017-07-07T11:15:43.363 回答