将大型数组对象从c#序列化到CosmoDB的最佳方法

时间:2018-04-07 09:27:09

标签: c# visual-studio .net-core azure-cosmosdb

所以我有一个大的c#对象,一个数据集合。我最初只是将它写入documentdb doc,但意识到它会超过单个文档的大小。所以不确定最好的方法是什么,我可以:

1)将其写成单独的文件,但随后会有10,000个小文件,我怀疑使用它会非常昂贵

2)找到一种更好的序列化方法但是我仍然会达到极限

3)找到一种方法将其分解为数据页

4)序列化为二进制并使用表存储或类似的

5)序列化为二进制并使用附件功能。

我不知道最好的方法是什么,我只是找到了CosmoDB的脚 - 所以任何指针都会非常有用。

有一个论点说这个数据应该是SQL样式的行和列数据库,但是现在我甚至都不知道这是否是一种现代方法......

欢呼声 保罗

2 个答案:

答案 0 :(得分:1)

您可以按照选项#1中的说明拆分文档,也可以将文档存储为remote个附件。我提到了远程,因为DocumentDB的内置附件存储仅限于2 GB。

要使用远程存储,您需要先存储文件然后获取链接并在DocumentDB中创建附件,然后使用Attachment的MediaLink属性来设置二进制文件所在的位置。

以下是MediaLink的{​​{3}}外观。

答案 1 :(得分:0)

详细了解。

我认为在documentdb和表存储之间分割我的数据更有意义 - 一些数据更适合表概念,可以使用documentdb中的核心数据结构分页和读入数十万行。 / p> 唯一美中不足的是,没有用于Cosmo Table服务和点网核心的NuGet库......无法相信。

所以我在亚马逊上看着DynamoDB看似是一个桌子/文件商店...

感谢 保罗