微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决每小时对API进行REST调用,并将结果每小时保存到Azure SQL

我正在使用这个非常有用的SQLCLR script来对API进行REST调用,并即时将数据保存在sql Server上。 我创建了一个存储过程,该存储过程每小时都会提取新数据,因此我的数据总是会更新。 我希望将所有这些都放在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
------------------------------

enter image description here

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

  • 在Azure上sqlCLR之外还有其他选择吗?
  • 在Azure上sql Server Agent之外还有其他选择吗?
  • 基本上:如何每小时自动执行一次对API的REST调用并将结果保存到Azure上的sql Server?

解决方法

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

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

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

根据情况,Azure Data Factory也可以提供解决方案。您可以创建一个调用API的管道,并根据here将数据复制到Sql Server,概述为schedule trigger

,

尽管Azure Functions很棒,但您甚至可以使用Azure Logic应用程序,计划的触发器,http请求和mssql连接器而无需太多代码即可解决此问题。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。