【问题标题】:How to call on Web Service API and route data into Azure SQL Database?如何调用 Web 服务 API 并将数据路由到 Azure SQL 数据库?
【发布时间】:2017-08-09 23:57:42
【问题描述】:

配置 Azure SQL 数据库后,我想为一些表提供来自 HTTP REST GET 调用的数据。 我已经尝试过 Microsoft Flow(其 HTTP 请求操作完全拙劣),我现在正在探索 Azure 数据工厂,但无济于事。 我目前能想到的唯一方法是预配 Azure VM 并使用 Newman 安装 Postman。但是,我仍然需要为 Azure SQL 数据库创建一个 Web 服务接口。

Microsoft 是否不提供 HTTP 调用服务来连接 Azure SQL 数据库?

【问题讨论】:

  • 要指定,我知道 WebLinkedService,但该服务似乎不支持通过 Raw、OAuth 或任何基于令牌的身份验证进行身份验证。我将能够设置自定义身份验证方法,但我需要为此访问 HTTP 标头。如何添加 HTTP 标头?我猜您无论如何都需要它们来获取诸如 Content-Type 之类的参数。

标签: web-services azure-sql-database azure-data-factory


【解决方案1】:

我建议您自己编写一个 Azure 数据工厂自定义活动来实现此目的。我为最近的一个项目做了这个。

将 C# 类库添加到您的 ADF 解决方案并创建一个继承自 IDotNetActivity 的类。然后在 IDictionary 方法中发出 HTTP Web 请求以获取数据。首先将下载的文件放到 blob 存储中,然后有一个下游活动将数据加载到 SQL DB 中。

public class GetLogEntries : IDotNetActivity
{     
    public IDictionary<string, string> Execute(
        IEnumerable<LinkedService> linkedServices,
        IEnumerable<Dataset> datasets,
        Activity activity,
        IActivityLogger logger)
    {

等等……

HttpWebResponse myHttpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();

您可以使用 ADF 链接服务对存储帐户进行身份验证,并定义您希望将容器和文件名作为输出的位置等。

这是我用于数据湖的示例。但是有一个几乎相同的 Blob 存储类。

        Dataset outputDataset = datasets.Single(dataset => dataset.Name == activity.Outputs.Single().Name);

        AzureDataLakeStoreLinkedService outputLinkedService;

        outputLinkedService = linkedServices.First(
            linkedService =>
            linkedService.Name ==
            outputDataset.Properties.LinkedServiceName).Properties.TypeProperties
            as AzureDataLakeStoreLinkedService;

不要打扰活动的输入。

您还需要一个 Azure Batch 服务来处理已编译类的计算。请查看我的博客文章。

https://www.purplefrogsystems.com/paul/2016/11/creating-azure-data-factory-custom-activities/

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    几周前遇到了同样的情况,我最终使用 Azure Functions 构建了 API 调用管理。使用 Azure SDK 将结果上传到例如 BLOB 存储或数据湖没有问题。您可以添加执行 HTTP 发布操作所需的任何程序集。

    从他们那里,您可以使用数据工厂轻松地将其拉到 Azure SQL 数据库。

    【讨论】:

      猜你喜欢
      • 2014-03-25
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多