将更多数据追加到序列化的 json blob



我正在尝试定期从 rest 终结点查询员工数据,并使用 ADF 复制活动将其保存到我的 SQL Server DB。当天查询的所有员工数据都将添加到 Azure Blob 中,其文件名对应于该天。在我的 Azure 函数中,我使用JsonConvert.SerializeObject(employee)序列化我的对象并将其存储为fileName_currentDate.txt之后数据如下所示:

[
{
name: "abc",
address: "pqr"
},
{
name:"efg",
address: "efg"
}
]

问题:我想继续将更多员工附加到具有匹配日期部分的文件中。

约束:我不想使用类似blob.DownloadToStream(stream)的东西将现有 blob 下载到服务器,对其进行反序列化,将额外的数据添加到我的对象,然后将其保存回 blob 容器。当我需要追加的次数很大并且 blob 大小不适合内存时,这将是一项昂贵的操作。

我在这里有什么选择?

我看到支持追加 Blob 存储,这是我计划在我的应用程序中使用的,但我无法理解如何向我的 json blob 添加更多数据。

此链接指示可以在复制活动中配置 LastModifiedDate 属性,以生成具有增量复制新文件和更改文件功能的管道。

但是,不断将数据添加到单个文件中确实是不合适的,这可能会导致加载非常慢和难以查看数据。根据您的业务需求,我建议您在单位时间内(例如每天)递增数据,并将新数据存储到由时间戳命名的单独文件中。

如果这样做,我认为 Azure 流分析可能是更适合你的选择。

ASA 支持 Azure Blob Storage 输入和 Azure SQL DB 作为输出。但它具有以下功能供您参考。

流分析不支持向现有 Blob 添加内容 文件。流分析将仅查看每个文件一次,以及任何更改 在作业读取数据后在文件中发生的不是 处理。最佳做法是将 Blob 文件的所有数据上传到 一次,然后将其他较新的事件添加到不同的新 Blob 文件。

最新更新