每小时对 API 进行 REST 调用并将结果保存到 Azure SQL

Make REST call to API and save the result to Azure SQL every hour

我正在使用这个非常有用的 SQLCLR script 对 API 进行 REST 调用,并将数据即时保存在 SQL 服务器上。 我创建了一个存储过程,该过程每小时提取一次新数据,因此我的数据始终处于更新状态。 我希望将所有这些都放在 Azure 上,这样我就可以创建 Power BI 数据可视化。

问题:

当我尝试在 Azure 上传输数据库时,我收到了这个错误:

TITLE: Microsoft SQL Server Management Studio
------------------------------

Could not import package.
Warning SQL0: A project which specifies SQL Server 2019 or Azure SQL Database Managed Instance as the target platform may experience compatibility issues with Microsoft Azure SQL Database v12.
Error SQL72014: .Net SqlClient Data Provider: Msg 40517, Level 16, State 1, Line 4 Keyword or statement option 'unsafe' is not supported in this version of SQL Server.
Error SQL72045: Script execution error.  The executed script:
CREATE ASSEMBLY [ClrHttpRequest]
    AUTHORIZATION [dbo]
    FROM 0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C0103006D85475F0000000000000000E00022200B0130000026000000060000000000007E45000000200000006000000000001000200000000200000400000000000000060000000000000000A00000000200004C1E01000300608500001000001000000000100000100000000000001000000000000000000000002C4500004F00000000600000FC03000000000000000000000000000000000000008000000C000000F44300001C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E7465787400000084250000002000000026000000020000000000000000000000000000200000602E72737263000000FC030000006000000004000000280000000000000000000000000000400000402E72656C6F6300000C000000008000000002000000
 (Microsoft.SqlServer.Dac)

------------------------------
BUTTONS:

OK
------------------------------

发生这种情况是因为 Azure SQL 剥离了一些功能,例如 SQLCLRSQL Server Agent(出于某些明显的安全原因)。

我认为 SQL CLR 没有直接的替代品。但是,有些 Azure 产品可能会很有趣。

我想另一种方法是使用 scheduled azure function 调用 API 并将结果存储在 Azure SQL 数据库中。

请注意,如果该过程花费的时间超过 10 分钟,您将无法使用 Azure Functions 的消费计划,这可能是最具成本效益的。

视情况而定,Azure Data Factory can also provide a solution. You can create a pipeline that calls the API and copies the data to Sql Server as outlined here, based on a schedule trigger

即使 Azure Functions 很棒,您甚至可以使用 Azure 逻辑应用程序、计划的触发器、http 请求和 mssql 连接器在没有太多代码的情况下解决这个问题。

https://azure.microsoft.com/de-de/services/logic-apps/