1

我们正在为我们的客户构建一个分析引擎。我们选择了 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
}

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

样本汇总收集项

{
    "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。此问题仅针对现有数据。我们已经实现了更改馈送处理器来处理实时数据。有什么办法可以减少这个处理时间和 RUs?提前致谢。

4

1 回答 1

0

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

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

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

于 2020-03-23T10:03:38.543 回答