Azure 数据湖:如何获取已处理的文件

Posted

技术标签:

【中文标题】Azure 数据湖:如何获取已处理的文件【英文标题】:Azure Data Lake: How to get Processed files 【发布时间】:2018-05-02 04:41:44 【问题描述】:

我刚刚开始使用 Data Lake,目前正在尝试找出真正的工作流程步骤以及如何自动化整个流程。 假设我有一些文件作为输入,我想处理它们并下载输出文件,以便推送到我的数据仓库或/和 SSAS。

我找到了非常可爱的API,这一切都很好,但我无法找到一种方法来获取目录中的所有文件名以进一步下载它们。

请纠正我对工作流程的看法。是否有另一种更优雅的方式来自动将所有处理过的数据(输出)放入存储(如传统的 SQL Server、SSAS、数据仓库等)?

如果您有基于 Data Lake 的有效解决方案,请用几句话描述工作流程(从“原始”文件到最终用户的报告)。

这是我的 NET Core 应用示例

using Microsoft.Azure.DataLake.Store;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Microsoft.Rest.Azure.Authentication;

            var creds = new ClientCredential(ApplicationId, Secret);
            var clientCreds = ApplicationTokenProvider.LoginSilentAsync(Tenant, creds).GetAwaiter().GetResult();
            var client = AdlsClient.CreateClient("myfirstdatalakeservice.azuredatalakestore.net", clientCreds);
            var result = client.GetDirectoryEntry("/mynewfolder", UserGroupRepresentation.ObjectID);

【问题讨论】:

【参考方案1】:

假设我有一些文件作为输入,我想处理它们并下载输出文件,以便推送到我的数据仓库或/和 SSAS。

如果您想将 azure datalake 中的文件夹中的文件下载到本地路径,可以使用以下代码来执行此操作。

client.BulkDownload("/mynewfolder", @"D:\Tom\xx"); //local path

但根据我的理解,您可以使用 azure datafactory 将数据从数据湖存储推送到 azure 存储 blob 或 azure 文件存储。

【讨论】:

谢谢!关于datafactory的好点,我一定会看看它的方向。公平地说,我希望看到一些步骤(也许不是微不足道的)将数据从 DataLake 获取到 Azure 的一些存储。只是想知道现有的解决方案是什么。问题是我不能一次将整个系统移动到云上。所以,我必须把存储和其他东西放在外面一段时间。 据我所知,它还支持将数据从数据湖移动到文件系统。

以上是关于Azure 数据湖:如何获取已处理的文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 databricks 将一个 azure 数据湖容器中的所有内容传输到另一个容器?

如何将 Azure 数据湖存储连接到 Azure ML?

通过scala获取存储在azure数据湖中的文件名列表

如何将数据从数据库中的所有表传输到azure数据湖目的地?

如何从 Azure 文件共享中获取文件元数据?

如何从 azure ADF 管道运行 Azure CLI 命令?