【问题标题】:Azure Data Warehouse Insert to Huge TableAzure 数据仓库插入大表
【发布时间】:2017-12-10 18:40:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: azure azure-sqldw sql-data-warehouse


    【解决方案1】:

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

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

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

    【讨论】:

    • 大声笑,关于插入的好点.. 这是相对较新的语法,你总是需要 CTAS :)
    • SELECT ... INTO 是新语法。普通的旧 INSERT(以及 DELETEUPDATE)一直都在。
    猜你喜欢
    • 2017-04-21
    • 2018-06-09
    • 1970-01-01
    • 2023-04-11
    • 2019-11-09
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    相关资源
    最近更新 更多