azure表存储中未指定PartitionKey

azure表存储中未指定PartitionKey,azure,azure-storage,azure-storage-blobs,azure-table-storage,Azure,Azure Storage,Azure Storage Blobs,Azure Table Storage,我正在尝试通过azure storage explorer将数据从csv文件加载/导入到表存储中, 但是我得到了如下错误 打开文件“D//sample.csv”时出错。未指定所需的属性“Partitionkey”。 请澄清分区键和行键在azure表存储中的重要性 分区键和行键指定行的唯一索引;两者的结合必须是独一无二的。我建议多读一点,了解更多详细信息。Azure存储密钥已在此处讨论: 为了理解这一点,您需要知道分区是什么。每当您将某些内容上载到Azure存储时,都会将其分配给某个分区。这些分

我正在尝试通过azure storage explorer将数据从csv文件加载/导入到表存储中, 但是我得到了如下错误

打开文件“D//sample.csv”时出错。未指定所需的属性“Partitionkey”。


请澄清分区键和行键在azure表存储中的重要性

分区键和行键指定行的唯一索引;两者的结合必须是独一无二的。我建议多读一点,了解更多详细信息。

Azure存储密钥已在此处讨论:

为了理解这一点,您需要知道分区是什么。每当您将某些内容上载到Azure存储时,都会将其分配给某个分区。这些分区可以在同一台服务器上,也可以在不同的服务器上。分区也可以跨服务器移动。假设池中有5台服务器,其中一台服务器(服务器2)正在经历高负载。然后Azure存储将分区从服务器2移动到另一台服务器,以均匀地分配负载。它还将根据数据的大小做出这一决定

对于表存储,用户决定数据的位置。blob队列的情况并非如此

因此,在表存储中必须自己指定分区键

我建议您阅读以下链接,以便进一步了解本主题:

因此,在某种程度上,PartitionKey用于指定要在哪个分区上存储数据。它作为唯一标识符,构成主键的一部分(上半部分)RowKey是另一个用于构成主键后半部分的属性。它标识给定分区中的实体。因此,无论何时执行任何操作,都需要同时指定分区键和行键


PartitionKeyRowKey一起唯一地标识表中的每个实体

正如Isaac Abraham所提到的,每个实体都应该有分区键和行键属性,这两个属性的组合对于表实体是唯一的。这是强制性的。 如果我们尝试使用azure storage explorer工具为azure存储表添加实体,我们可以看到,更多详细信息请参阅屏幕截图。

因此,如果我们尝试导入.csv文件,文件的格式应该是名为PartitionKeyRowKey的列。并且名称区分大小写。下面是.csv文件演示

PartitionKey,RowKey,Column1,Column2
test,x,testdata,testdata
test,xx,testdata,testdata
test,xxx,testdata,testdata
test2,x,testdata,testdata

注意:在尝试导入数据时,我们还应该知道一些信息,更多详细信息请参阅azure文档

  • 表实体的最大大小为1 MB
  • 表实体中的最大属性数252

我建议您将Windows中的区域更改为英语(美国)。因此,您可以使用逗号而不是分号作为分隔符将电子表格另存为CSV文件


例如,如果您使用的是瑞士,您将得到一个以分号作为分隔符的CSV文件,azure将找不到Partitionkey。

这就是问题的答案!谢谢!