在Azure表存储中插入140亿条记录

在Azure表存储中插入140亿条记录,azure,azure-table-storage,Azure,Azure Table Storage,在我的一个项目中,我在每个月中收到了客户订单的详细信息,这是一个大约140亿行的文件。我需要上传到我的系统(每记录1行)在1周内,然后用户可以查询 基于价格和性能考虑,我决定使用表存储进行存储。但我发现表存储的性能是“每个分区每秒2000个实体”和“每个帐户每秒20000个实体” 这意味着,如果我使用1个存储帐户,我需要大约1个月来上传它们,这是不可接受的 有什么解决方案可以加快速度,在一周内完成上传任务吗?简单的答案是使用多个存储帐户。如果对数据进行分区并将其分条到多个存储帐户,则可以从中获得

在我的一个项目中,我在每个月中收到了客户订单的详细信息,这是一个大约140亿行的文件。我需要上传到我的系统(每记录1行)在1周内,然后用户可以查询

基于价格和性能考虑,我决定使用表存储进行存储。但我发现表存储的性能是“每个分区每秒2000个实体”和“每个帐户每秒20000个实体”

这意味着,如果我使用1个存储帐户,我需要大约1个月来上传它们,这是不可接受的


有什么解决方案可以加快速度,在一周内完成上传任务吗?

简单的答案是使用多个存储帐户。如果对数据进行分区并将其分条到多个存储帐户,则可以从中获得所需的性能。您只需要另一层来聚合之后的数据

在后台创建一个大型主表的过程可能会较慢


您可能已经发现了这一点,但将大型数据集导入Azure表有一个非常好的方法

您可能希望查看DynamoDB而不是Azure2问题:1)1条记录的大小(1KB、2KB等)有多大?2) 用户将如何查询这些数据?这是简单的Id订单查询吗?@DoomStone我的应用程序是在azure上构建的,所以我必须使用它。@GauravMantri 1)我想不到1KB。2) 每个记录都包含客户id和订单详细信息。用户将根据其客户id进行查询。所以我所做的是使用客户id作为分区键,并为每一行分配一个GUID作为行键。@ShaunXu为什么?你可以在Azure上托管使用Dynamo DB的应用程序,Amazon也有很好的C#实现。是的,使用多个存储帐户是候选解决方案,但可能需要将一个客户的数据拆分为多个帐户。由于我使用客户id作为分区键,用户将根据客户id进行查询,这可能会降低查询性能。