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

时间:2019-06-14 00:36:34

标签: json serialization azure-storage-blobs azure-data-factory azure-data-factory-2

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

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

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

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

我在这里有什么选择?

我看到有对 Append Blob Storage 的支持,这是我计划在应用程序中使用的功能,但是我不明白如何将更多数据添加到json blob。

1 个答案:

答案 0 :(得分:0)

quick start for android page表示您可以在复制活动中配置LastModifiedDate属性,以构建具有增量复制新文件和更改文件功能的管道。

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

如果您这样做,我想也许link是更合适的选择。

ASA支持azure stream analyticsAzure Blob Storage input。但是在Azure SQL DB as output下面供您参考。

  

Stream Analytics不支持将内容添加到现有Blob   文件。流分析将仅查看每个文件一次,并且进行任何更改   作业读取数据后在文件中发生的错误   处理。最佳做法是在以下位置上传blob文件的所有数据:   一次,然后将其他新事件添加到其他新Blob中   文件。