为Azure数据工厂创建自定义.NET活动管道
Azure数据工厂为收集和准备数据,从而将这些数据用于存储和分析提供了一种基于云的全新方法。那么,您该如何开始使用它来探索其功能呢?Feodor Georgiev向我们介绍了准备使用管道的实际步骤,其中包括从配置Azure环境到将文件从FTP下载到Azure环境中的blob存储的过程。
Azure数据工厂是构建在基于云的ETL理念之上的Azure集成工具,但它使用了提取和加载(EL)模型及转换和加载(TL)模型。为此,它使用了名为管道的数据驱动工作流,而它们可以从一系列的数据存储库中收集数据,并对其进行处理或转换。该数据处理过程可以使用基于Azure的可用计算机服务,如Hadoop、Spark和Azure机器学习等。然后,它就可以将数据发布到各种下游数据存储库中了。本文将为您介绍如何创建用于Azure 数据工厂的自定义.net活动管道。
首先为您介绍一种创建自定义.NET活动的方法,从而将文件从FTP服务器资讯news.webhostin***/下载到Azure环境中的blob存储之上。为此,我们将需要用到Visual Studio 2015来为我们的自定义代码创建一个类库,然后我们将把数据工厂应用程序添加到该项目中,以便我们可以使用Visual Studio创建ADF(Azure Data Factory的简称)管道,从而在我们准备好.NET类后直接部署ADF管道。此外,我们也将用到一种批处理服务和计算环境,它们将在一组Azure虚拟机上运行自定义代码,而这些Azure 虚拟机是在我们安排管道时按需提供的。
本文将使用由一家斯堪的纳维亚的移动运营商所提供的FTP服务器。 该FTP服务器具有匿名访问权限,而我初会将其用于测试互联网连接的速度,这对于我们构建自定义.NET活动的目的来说绰绰有余。
请注意:Azure 数据工厂目前支持FTP数据源,而且我们可以使用Azure portal 和ADF向导来完成所有的步骤。
本文的重点旨在向读者介绍自定义.NET管道的灵活性,以及它们为使用Visual Studio来自动化ADF部署,而不会对代码引入不必要的复杂性所能提供的帮助。还需注意,通过使用Visual Studio来创建自定义.NET活动和ADF部署,我们可以在需要时创建一个公共存储库,并将其用于自动化并加快更大型团队中的管道部署过程。
本文假设读者已经创建了Azure订阅账户,并且熟悉如.NET、dll文件、FTP请求以及Azure 数据工厂这类的概念。
关于源文件
如上所述,源文件存储于其中一家电信公司的服务器之上:如图。 文件夹中存有一系列不同大小的文件,如下所示:
因此,在我们的自定义活动中,我们将让该类下载20MB的.zip文件,并将其存储在我们的blob存储中。
我们需要:
以下是我们对设置可用的自定义.NET活动所要完成的工作的高级概述:
1. 我们需要创建一个批处理帐户和批处理池。
2. Azure Batch是一种用于在云端运行应用程序的平台服务,其运行于接受托管的虚拟机群上。有关Azure Batch的介绍,请访问以下文档://docs.micr***/en-us/azure/batch/batch-technical-overview。 在本文中,我们将使用一台非常简单的Windows server虚拟机来创建一个批处理池,从而执行FTP下载任务。而在现实的用例中,批处理服务极其灵活,而且可以自动扩展虚拟机池。
3. 一个存储文件的Blob存储
4. 一个包含自定义代码的Visual Studio项目:该代码将被编译成DLL,然后会被压缩并存储在blob存储中;而ADF管道将通过blob存储访问该代码。
5. 一个数据工厂应用程序,这样我们就可以直接使用解决方案部署ADF了(这样一来,我们就不需要在每次更改C#代码后,手动压缩和复制DLL到blob存储中了)。
6. 可用于天气数据,并能发布管道的数据工厂。
7. 调试和记录管道活动。 我们将创建一个批处理应用程序来帮助我们在本地调试自定义的.NET活动。
创建批处理账户和批处理池
批处理帐户是一项免费服务,不过您需根据Azure定价来为基础资源(池、虚拟机和存储空间)支付费用。
要创建批处理帐户,您只需使用Azure portal,然后点击“新建”“计算”“批处理服务”即可。
您会看到以下选项卡:
请在必填栏目中输入所需的信息并创建该帐户。请确保您为批处理服务创建了一个相连的存储帐户,因为我们将在使用Visual Studio部署ADF管道时用到该账户。
现在,我们可以转至刚刚创建的批处理服务,并点击池选项卡来创建批处理池。 在池选项卡中,请点击“添加”,并填写必填字段。在本文中,我选择的是具有少可用资源的Windows 2008服务器。但在实际的生产环境中,您需认真衡量这些设置,因为您的选择会对结果产生影响。
请在创建池ID之后对其进行留意,因为我们会将其用于ADF管道。
创建Blob存储
在本文中,我们将在blob存储中使用一个名为ftpdata的文件夹,而该存储是在Azure订阅中创建的。有关如何创建blob存储的详细信息,请访问以下Azure文档:://docs.micr***/en-us/azure/storage/storage-create-storage-account
创建自定义活动代码
首先,我们需要打开Visual Studio(我在示例中使用的是VS2015),并创建一个名为FTPDownloader的类库新项目。请注意,框架的版本应该为4.5.2。
其次,我们需要通过在NuGet软件包管理器控制台中输入以下几行命令来安装NuGet依赖项(要打开控制台,请依次点击“工具”“NuGet软件包管理器”“软件包管理器控制台”):
当您运行了上述的命令后,您将看到该项目中加入了索引。
完成这步之后,我们就可以编写自定义代码了。
请注意,该类使用了IDotNetActivity的执行方法,它需要4个参数:输入列表、输出列表、用于扩展属性的字典以及记录器。它会返回一个字典。
上述代码只会为您简单显示如何实施接口、从JSON管道中获取扩展属性、如何从输出数据集中获取连接字符串、以及如何简单地调用FTP服务器,并将文件直接流式传输到我们的blob存储中。
设置Azure环境并运行自定义.NET活动的方法和步骤有很多,本文先列举以上一些方法和调试代码,你可以很方便的将文件从FTP下载到Azure环境内的blob存储中。