【问题标题】:Append more data to serialized json blobs将更多数据附加到序列化的 json blob
【发布时间】:2019-10-28 14:43:31
【问题描述】:

我正在尝试定期从休息端点查询员工数据,并使用 ADF 复制活动将其保存到我的 SQL Server 数据库中。当天查询的所有员工数据都将添加到一个 azure 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 添加更多数据。

【问题讨论】:

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


    【解决方案1】:

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

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

    如果你这样做,也许azure stream analytics 是我认为更适合你的选择。

    ASA 支持Azure Blob Storage inputAzure SQL DB as output。但它下面有features 供您参考。

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

    【讨论】:

      猜你喜欢
      • 2012-04-04
      • 2016-05-06
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 2017-09-22
      • 2017-05-19
      • 2016-08-14
      • 2010-12-12
      相关资源
      最近更新 更多