【问题标题】:Recommended tools to ETL data from Azure SQL Database to Azure SQL Data Warehouse? [closed]将数据从 Azure SQL 数据库 ETL 到 Azure SQL 数据仓库的推荐工具? [关闭]
【发布时间】:2016-01-27 03:12:52
【问题描述】:

我需要使用 Azure SQL 数据仓库构建数据仓库,数据来源于单个 Azure SQL 数据库。看着this article,看来我有两个选择:

  • SSIS
  • Azure 数据工厂

我的 Azure SQL 数据库已标准化,但我想以星形或雪花模式格式构建我的 Azure SQL 数据仓库,因此它不是表的直接副本 - 肯定需要进行一些转换。

鉴于 Azure SQL 数据库不支持 SSIS,并且需要我在其上运行带有 SQL Server 的 VM 以将我的进程完全保留在 Azure 中,Azure 数据工厂是否是推荐的用于在 Azure SQL 数据库和 Azure SQL 之间进行 ETL 数据的工具数据仓库?在这种情况下,一种选择与另一种选择会更充分吗?

谢谢!

【问题讨论】:

    标签: sql-server azure ssis azure-sqldw azure-sql-database


    【解决方案1】:

    如果您希望将流程完全保留在云中而不是启动 VM,那么 Azure 数据工厂目前是您进行数据移动的最佳选择。但是,此时我可能会推荐 ELT 方法而不是 ETL 方法。通过首先加载数据,然后在 SQL 数据仓库中完成转换,您的加载速度会更快,并且您将能够在转换数据时利用额外的计算能力。此外,听起来您对 SQL 很熟悉,因此与使用数据工厂的 JSON 相比,在 SQL 数据仓库中编写转换可能更容易。

    【讨论】:

    • 感谢您的回复!一个小的跟进 - 什么工具最适合在 SQL 数据仓库中执行转换?我们希望通过我们将插入但从不更新的快照样式表(即在这一天您连接到 Y 其他人)以及将插入和更新的维度数据来捕获历史数据。这是否是某种可以由 ADF 活动的完成触发并可能在 ADW 上执行一些存储过程以填充星形/雪花模式表的过程?
    • 数据工厂将允许您通过SQLServerStoredProcedure 活动安排管道中的转换。这应该允许您将数据移动和存储过程安排为一个,而无需触发器。
    • @tarun713 是的,准确地说,ADF 活动允许在活动完成后运行“清理”存储过程,这将是一些主存储过程,它将完成所有工作来填充您的星号架构。
    【解决方案2】:

    看看创建一个外部表(在 DW 中)指向您的 Azure SQL 数据库是否会对您有所帮助。有了这个,您可能会通过发出一些 Create Table As (CTAS) 命令来将结构更改为星星/雪花。

    来自https://msdn.microsoft.com/en-us/library/dn935022.aspx

    --Create an external data source for a remote database on Azure SQL Database
    CREATE EXTERNAL DATA SOURCE data_source_name
        WITH ( 
            TYPE = RDBMS,
            LOCATION = '<server_name>.database.windows.net',
            DATABASE_NAME = 'Remote_Database_Name',
            CREDENTIAL = SQL_Credential
        )
    [;]
    

    【讨论】:

    • 这篇文章充实了它的工作原理。 azure.microsoft.com/en-us/documentation/articles/…
    • 感谢您的回复!这很有趣,我没有意识到这一点,但是,我们的目标之一是构建数据仓库数据库,以便我们想要运行的任何分析都避免给我们的关系数据库增加负载。虽然实现这一点可能使我们不必复制某些维度表中的数据,但负载仍将保留在我们的关系数据库上 - 所以我认为这不是我们的选择。
    • 无论你如何移动数据,关系数据库都会有负载。我认为这个想法只是数据推送(使用 SSIS 或数据工厂)逻辑与数据拉取(查询外部表同时使用 CTAS 命令保存)的区别。加载该新表后,您在关系数据库上的负载将结束,您将在已加载的新表上完成剩余的工作。因此,外部表只是加载过程中使用的一个临时步骤......不是您要查询的最终表。
    • 这可能是有助于澄清我的意思的缺失部分。 azure.microsoft.com/en-us/documentation/articles/…
    • 知道了 - 谢谢你的链接,我现在明白了很多。我明白你在说什么,是的,这可能对我们有帮助——但你已经回答了我的下一个问题——如何安排或触发这个问题。似乎我们只需要某种方法来安排 Azure SQL 数据仓库中的作业,以使这种方法或 Drew 的建议端到端工作。
    猜你喜欢
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 2021-03-04
    • 2016-10-26
    • 1970-01-01
    相关资源
    最近更新 更多