我们的Cosmos DB数据已经混合在一起,其中旧的具有PascalCase属性名称,而新的具有CamelCase:
"RowVersionGUID": "5f86bca2-544b-49a3-a158-3f04aebeb802",
"Results": {
"Type": "POI",
"Id": "US/POI/p0/6214706",
"Score": 99.81322378417969,
"Dist": 86.74439569019203,
"Info": "search:ta:840319000246138-US"
}
和新数据
"rowVersionGUID": "bf97ad6b-a79f-458e-aacc-3191e726a1c9",
"results": {
"type": "POI",
"id": "g6JpZK84NAAzMjkwMDA0ODk1MjChY6NVU0GhdqdVbmlmaWVk",
"score": 99.93961783544922,
"dist": 70.31082467871605,
"distKM": 0.07028082477871604,
"info": "search:ta:840229000489420-US"
我们认为问题出在从NewtonSoft到System.Text.Json的转换中,但是我们对验尸不感兴趣,而对仅修复旧数据更感兴趣。它是Prod数据,但尚未上线,否则系统运行正常。
关于如何将所有旧项目从PascalCase转换为CamelCase的任何建议?特别是缺少编写程序以读取,转换和写回项目的任何内容。
Azure Data Factory专为此操作而设计。如果需要从一个CosmosDb实例(其设置在创建后无法更改)转移到不同的Db,则可以创建它的替代品,然后使用Azure Data Factory迁移数据。