【问题标题】:PartitionKey was not specified in azure table storage未在 Azure 表存储中指定 PartitionKey
【发布时间】:2018-01-01 16:54:21
【问题描述】:

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

An error occurred while opening the file 'D//sample.csv'.the required property 'Partitionkey' was not specified.

请澄清 Partitionkey 和 Rowkey 在 Azure 表存储中的重要性?

【问题讨论】:

    标签: azure azure-storage azure-blob-storage azure-table-storage


    【解决方案1】:

    Azure 存储密钥已在此处讨论:Azure Table Storage Partition Key

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

    在表存储的情况下,用户决定数据的位置。 blobqueues 不是这种情况。

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

    我建议您阅读这些链接以进一步了解该主题:

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

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

    【讨论】:

      【解决方案2】:

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

      所以如果我们尝试导入 .csv 文件,文件的格式应该是具有名为 PartitionKeyRowKey 的列。名字是case sensitive。以下是.csv文件demo

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

      注意:还有一些Azure storage table limitation在尝试导入数据时我们应该知道,更多细节请参考azure文档。

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

      【讨论】:

      • 这就是问题的答案!非常感谢!
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        Partition Key 和 Row Key 指定行的唯一索引;两者的组合必须是唯一的。我建议阅读更多 here 以了解更多详细信息。

        【讨论】:

          猜你喜欢
          • 2021-10-16
          • 2016-06-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-11
          • 2020-03-01
          • 1970-01-01
          相关资源
          最近更新 更多