Azure 数据工厂 - 如何从 blob 存储中只读取新文件
Azure Data Factory - How to read only new files from blob storage
我的 Application Insights 中有一个 "Continuous Export" 进程可以根据我的新 Insights 创建新文件。
除此之外,我还有一个进程,使用 Azure 数据工厂,用 Blob 存储数据加载一个 SQL Table。
问题:
我无法从 A.D.F. 中读取,只能从 Blob 存储中读取新文件,而且我一直在处理相同的数据。此时此刻,我忽略了 SQL 存储过程中加载过程后的重复数据,但我想通过仅从 blob 存储中读取新数据来提高此过程的效率,我可以从 A.D.F 中执行此操作吗.?
谁能帮我?有哪些替代方案可以实现这一目标?
此致,
瑞费尔南德斯
Which are the alternatives to achieve this?
如果 WebJob 可以接受,我们可以使用 WebJob blob 触发器轻松实现。我们可以从 Azure official document.
获取有关 WebJob 触发器的更多信息
以下是演示代码:
public static void ProcessBlobTrigger([BlobTrigger("containername/{name}")] TextReader input, TextWriter log)
{
// your logic to process data
}
我建议您通过将旧 blob 重命名为 "Archive/oldBlobName" 以编程方式(自定义管道)归档它们!执行此操作后,下次在代码中迭代分段的 blob 结果(包含在数据集中指定的容器中的 blob 列表)时,只需转义名称以 "Archive" 开头的那些。
foreach (IListBlobItem listBlobItem in blobList.Results)
{
CloudBlockBlob inputBlob = listBlobItem as CloudBlockBlob;
// Take all blobs from container that are not in "Archive"
if ((inputBlob == null) || string.IsNullOrEmpty(inputBlob.Name)
|| inputBlob.Name.ToLower().StartsWith("Archive"))
{
continue;
}
...
我的 Application Insights 中有一个 "Continuous Export" 进程可以根据我的新 Insights 创建新文件。
除此之外,我还有一个进程,使用 Azure 数据工厂,用 Blob 存储数据加载一个 SQL Table。
问题: 我无法从 A.D.F. 中读取,只能从 Blob 存储中读取新文件,而且我一直在处理相同的数据。此时此刻,我忽略了 SQL 存储过程中加载过程后的重复数据,但我想通过仅从 blob 存储中读取新数据来提高此过程的效率,我可以从 A.D.F 中执行此操作吗.? 谁能帮我?有哪些替代方案可以实现这一目标?
此致, 瑞费尔南德斯
Which are the alternatives to achieve this?
如果 WebJob 可以接受,我们可以使用 WebJob blob 触发器轻松实现。我们可以从 Azure official document.
获取有关 WebJob 触发器的更多信息以下是演示代码:
public static void ProcessBlobTrigger([BlobTrigger("containername/{name}")] TextReader input, TextWriter log)
{
// your logic to process data
}
我建议您通过将旧 blob 重命名为 "Archive/oldBlobName" 以编程方式(自定义管道)归档它们!执行此操作后,下次在代码中迭代分段的 blob 结果(包含在数据集中指定的容器中的 blob 列表)时,只需转义名称以 "Archive" 开头的那些。
foreach (IListBlobItem listBlobItem in blobList.Results)
{
CloudBlockBlob inputBlob = listBlobItem as CloudBlockBlob;
// Take all blobs from container that are not in "Archive"
if ((inputBlob == null) || string.IsNullOrEmpty(inputBlob.Name)
|| inputBlob.Name.ToLower().StartsWith("Archive"))
{
continue;
}
...