繁体   English   中英

如何在 Cosmos DB 中进行大批量操作

[英]How to perform large batch operation in cosmos DB

我们正在为我们的客户构建一个分析引擎。 我们选择了 Cosmos DB。 这样做的原因是存储非结构化数据。 目前,对于一个客户,我们有大约 300000 条记录。

样本分析项目

{
    "adjustments": [],
    "payments": [],
    "amountReceivable": 0,
    "amountReceivablePatient": 0,
    "amountReceivableInsurance": 0,
    "id": "1_10",
    "clientID": 1,
    "chargeID": "10",
    "encounterID": "29310660",
    "patientID": "232362",
    "provider": "eeee",
    "financialClass": "kkk",
    "insurancePrimary": "jjj",
    "dateOfServiceBegin": "2019-08-19T18:30:00Z",
    "location": "test location","chargeTotal": 272,
    "chargeInsurancePrimary": 272,
    "chargePatient": 0
}

为了在仪表板中显示累积详细信息,我们创建了另一个名为摘要的集合。 这将保存每月和每年的预计算数据。 这是我们将用于客户端应用程序的集合。

样本汇总收集项

{
    "id": "630b20678a4745c4881b4d5cf07bcf08",
    "clientId": 1,
    "location": "test location",
    "provider": "eee",
    "periodicity": "monthly",
    "date": "2019-10-01T00:00:00",
    "financialClass": "kkk",
    "carrier": "jjj",
    "totalChargeByDoE": 488,
    "totalChargeInsuranceByDoE": 488,
    "totalChargePatientByDoE": 0,
    "totalChargeByDoS": 488,
    "totalChargeInsuranceByDoS": 488,
    "totalChargePatientByDoS": 0,
    "totalAdjustmentByDoE": 407,
    "totalAdjustmentInsuranceByDoE": 407,
}

我们目前面临的问题是第一次计算累积记录。目前我们正在从分析集合中获取所有数据并从中填充一个列表。 然后计算每月和每年明智的,然后插入到汇总容器。 这非常慢并且消耗更多的 RU。 此问题仅针对现有数据。 我们已经实施了更改提要处理器来处理实时数据。 有什么方法可以减少此过程时间和 RU? 提前致谢。

根据您的描述,如果我没有误解,您想计算历史数据以实现按月或按年Group By功能并upsert到汇总集合中。

您可以使用.net sdk和js sdk支持的Group By以及sql查询中的SUM等聚合功能。无需加载所有数据并自行计算。但是,如果您的计算逻辑很复杂,似乎您不能躲开它。

另外,当您准备好汇总集合添加数据时,可以考虑使用效率更高的批量执行器 或者您可以保存数据并生成 json 文件,以便您可以使用迁移工具导入数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM