在没有 partitionkey 和 rowkey 的情况下查询 azure table

Querying azure table without partitionkey and rowkey

我有 Azure table 调用用户,其中几个字段与用户相关,我将 PartitionKey 作为 UserId,将 RowKey 作为 CompanyId,我想通过电子邮件字段查询 table,这不是一个PartionKey or RowKey,是否可以这样查询table?

如果是那么最好不用PartitionKey和RowKey进行查询

您可以在不使用 PartitionKeyRowKey 的情况下进行查询,并且 table 服务不会抛出任何错误,但是请记住,这将进行完整的 table 扫描从第一个 PartitionKey/RowKey 组合开始,直到找到匹配的实体。

如果您的 table 很小,这可能不是问题。但是,如果您的 table 变大,这将是一个问题。您可能不会取回任何数据,而只会取回延续令牌,您需要使用该延续令牌再次查询 table。

如果您想查询电子邮件字段,我强烈建议复制您的数据,以便电子邮件字段成为 PartitionKey

不确定您是否已经读过这篇文章,但我强烈建议您阅读 Azure Table Storage Design Guidehttps://azure.microsoft.com/en-in/documentation/articles/storage-table-design-guide/

可以,但是会进行全盘扫描,这是使用 table 存储的最坏情况。

你应该改变你的设计,你应该至少使用一个键。 您可以为您的公司创建存储 tables 并使您的电子邮件成为分区密钥的一部分。

注:图片由本article

拍摄