我建议你自己写一个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批处理服务以处理已编译类的计算。看看我的博客文章这样做。
https://www.purplefrogsystems.com/paul/2016/11/creating-azure-data-factory-custom-activities/
希望这有助于。
要指定,我知道WebLinkedService,但该服务似乎不支持通过Raw,OAuth或任何基于令牌的身份验证的身份验证。我将能够设置一个自定义身份验证方法,但我需要访问HTTP标头。如何添加HTTP标头?我想你无论如何都需要它们来获取Content-Type等参数。 – MisterTuna