【问题标题】:Copy data from on-prem SQL server DB to Azure SQL DB. Then truncate the tables in Azure SQL DB after data is copy to Tableau CRM将数据从本地 SQL 服务器数据库复制到 Azure SQL 数据库。然后在将数据复制到 Tableau CRM 后截断 Azure SQL DB 中的表
【发布时间】:2022-01-24 08:07:27
【问题描述】:

我想在触发器或函数的帮助下自动化以下任务/场景。截至目前,通过手动运行管道通过 Azure 数据工厂执行了这些步骤。

  1. 只要在本地 sql db 中填充新数据,就会自动将数据从本地 sql server 复制到 Azure SQL DB。

  2. 当拉取请求通过 Microsoft Azure SQL DB 连接器来自 Tableau CRM 时,从 Azure SQL DB 截断表。

不想在图片中包含 azure 突触分析。

需要您对此提出好的建议。

【问题讨论】:

    标签: triggers azure-sql-database tableau-api azure-data-factory azure-data-factory-pipeline


    【解决方案1】:

    您可以利用复制数据工具按计划提取数据。

    选择您的本地数据库作为源

    注意:您必须将自托管 IR 用于源链接服务(本地 sql db)。参考:Tutorial: How to access on-premises SQL Server from Data Factory Managed VNet using Private Endpoint

    仅选择新行

    接下来,您可以选择现有表或使用源表架构创建新表

    更改客户要求

    最后,验证和部署!

    对于复制后截断表...

    虽然CopyActivty 中有Stored ProcedurePre-copy scripts 的规定,但您可能不得不使用explicit StoredProcedure Activity strong> 在 CopyActvity 之后清除表格

    或者..更好

    【讨论】:

    • 感谢 Karthik 的精彩回答。这将用于方案 1。请您帮助我回答问题中列出的第二种方案。
    • 当然,但我没有完全理解。当您收到来自 Tableau 的拉取请求时,您想从 Azure sql db 中删除所有表吗?可以解释那个位“whenever a pull request comes from Tableau CRM via Microsoft Azure SQL DB connector.”我不确定我以前遇到过这个
    • 是的,您理解正确。当 Azure SQL DB 从 Tableau 连接器(在本例中我们使用 Microsoft Azure SQL DB 连接器)获取拉取请求时。一旦请求完成并且数据被填充到 Tableau 中,它应该删除数据(而不是表)。此外,在第三张图片 “选择新行” 中回答第一个场景时,在我们的案例中,源表没有修改的日期列。完成此复制活动的下一步应该是什么。
    • 我已经添加了第二个答案。您应该有一个带有日期时间或时间戳的列来标识创建的新记录。您可以更改表格以添加它们。
    • 例如,在片段中,我的表的列名为ModifiedDate,它存储了行插入表中时的 tmestamp。您可以创建一个列,在插入行时默认存储 UTC 时间戳。示例:ALTER TABLE TestTable ADD DateInserted DATETIME NOT NULL DEFAULT (GETDATE());
    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    • 2011-07-25
    • 1970-01-01
    • 2021-04-10
    • 2017-11-14
    • 1970-01-01
    相关资源
    最近更新 更多