问题标签 [azure-tablequery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
52798 浏览

c# - 如何在 C# 中获取 Azure 表存储中的所有行?

我正在尝试获取 azure 表中所有实体的列表。

知道我将如何编写此查询吗?

0 投票
1 回答
174 浏览

odata - 按实体类型限制 Azure TableQuery

我在 Azure 表存储中有一个表(实际上是在模拟器中),其中包含多个实体类型,其中两个是 AzureRuleInfo 和 AzureCostCodeInfo。我想从同一个分区中提取一系列 AzureRuleInfo 和 AzureCostCodeInfo 实体。

我从两个表查询开始,每种类型一个,假设new TableQuery<T>()只返回 T 类型的实体 - 但它似乎撤回了与分区键匹配的所有内容。

我的问题是:

  • API 是否提供按实体类型查询的方法?(最好不必添加像“MyEntityType”这样的自定义实体属性)。
  • 还是我最好将所有内容都撤回并将结果过滤到两个单独的集合中?

这是一个个人应用程序,我第一次涉足 Azure 表存储,所以我没有任何特定的设计驱动程序,例如性能。

0 投票
1 回答
704 浏览

c# - 进行大量 Azure 表查询的最佳方法?

我有一个包含超过一百万个条目的 Azure 表,我试图以编程方式执行大约 300,000 个查询C#,以便将一些数据传输到另一个系统。目前,当我阅读具有分区和行键的文件时,我正在执行以下操作:

这需要很长时间才能完成(5 个多小时)。从我所见,查询平均需要大约 200 毫秒。我对 Azure 有点陌生,所以我认为我做错了什么。我该如何改进它?

0 投票
2 回答
1536 浏览

c# - 使用 azure 表存储进行分页(升序)

这可以很好地以最多 1000 个项目的步长对数据进行分页:

我真正想做的是先从最旧的项目开始。换句话说,翻阅按 entity.Timestamp 升序排列的项目。此查询不起作用:

由于不支持 OrderBy。我能做些什么来实现这一目标吗?谢谢。

PS:

可能会有所帮助。但是它首先检索最新的项目,而我想首先检索最旧的项目。

0 投票
2 回答
94 浏览

azure - 关于 Azure 表设计

我是一名自由职业者,现在正在开发我的一款游戏,并尝试使用 Azure 表服务将我的用户移动记录在 Azure 表中。游戏以卡牌为基础。

流程是这样的:

许多用户(UserId)将在一张桌子(TableId)上玩。桌上的每个游戏都有一个唯一的 GameId。在每个游戏中,可能有多个具有唯一 DealId 的交易。同一张桌子上可以有多个具有相同 gameId 的交易。此外,每个用户在单个游戏中都将拥有相同的 DealId。

获胜者是在玩家多次机会后决定的。

问题:

我可以将 TableId 设为 PartitionKey,但我不确定为 RowKey 选择什么,因为 TableId 和 RowKey (GameId/UserId/DealId) 的组合在表中应该是唯一的。我可以有这样的条目:

TableId GameId DealId UserId 时间戳 1 201 300 12345 1 201 300 12567

可能我可以做的是创建 4 个 Azure 表,如下所示,但我做了很多重复;我也不能像这里提到的那样触发点查询https://azure.microsoft.com/en-us/documentation/articles/storage-table-design-guide/#guidelines-for-table-design

GameLogsByTableId -- 这将有 TableId 作为 PartitionKey 和 GUID 作为 RowKey GameLogsByGameId -- 这将有 GameId 作为 PartitionKey 和 GUID 作为 RowKey GameLogsByUserId -- 这将有 UserId 作为 PartitionKey 和 GUID 作为 RowKey GameLogsByDealId -- 这将有 DealId 作为 PartitionKey 和 GUID作为 RowKey

请问有什么想法吗?

TableId、GameId、DealId、UserId的格式很长。

我想查询这样的数据

  1. 从 TableId 中获取所有日志。
  2. 从 TableId 和特定游戏中获取所有日志(GameId)
  3. 在这个游戏(GameId)中获取用户(userid)的所有日志
  4. 获取交易中用户的所有日志(dealId)
  5. 给我一个日期表中的所有日志;同样对于用户、游戏和交易
0 投票
1 回答
758 浏览

azure-table-storage - 仅使用分区键从 Azure 表存储中检索 n 个随机实体。

我有一个名为 Article 的表,其中包含 6 个不同的分区键值,每个分区键下有 100 个实体,但在每个分区键下我只想从表中检索 n 个实体。那么,我想查询它只使用分区键返回“n”个随机实体吗?

0 投票
1 回答
1900 浏览

c# - 在 Azure 表存储中查询大于的行键

我使用此链接和引用的白皮书来允许我对插入到表存储中的数据进行排序。存储的“实体”具有这个简化的“模式”:

我可以轻松地获得按行键升序排序的“页面”(最大页面大小 1000),如下所示:

我有这个用例,我想选择行键大于长的任何实体(行键只是记号 - 长表示为字符串)。所以我尝试了这个:

但我得到一个 404。有什么想法吗?

0 投票
1 回答
1229 浏览

c# - 使用 TableContinuationToken 作为书签

这里获取的这个查询非常简单:

一旦返回 null,while 循环就会结束。是否可以存储最后一个 TableContinuationToken,然后在最后一个 TableContinuationToken 之后检查是否有更多的鞋类输入。要创建“订单”,我使用这种方法

PS:

我希望以下内容提供更多背景信息。我目前存储此类的实例:

在 Azure 表存储中。要创建这样的行键,我可以像这样对实体进行排序:

我不时想检查是否有新实体。我认为我不能为此使用 rowkey(另请参见此处)。所以目前我在消耗表存储的进程中存储了最后一个实体的最新 Ticks。我可以使用此查询来获取新实体:

简而言之 - 这就是我想要实现的目标:

(1) 翻阅所有实体,直到 token = null。(2) '拉'表存储。如果有新实体循环,直到 token = null。(3) 重复 (2)

我追求最简单,最强大的方法。目前我正在使用上述的 Ticks 方法。但是,这感觉不对,因为相同的信息已经作为字符串存储在行键中。我希望这是有道理的。

0 投票
3 回答
7426 浏览

azure - 可以用 StartsWith 查询 PartitionKey 吗?

在 Azure 表存储中,是否可以使用 StartsWith 或其他一些运算符(例如包含等)查询 PartitionKey。

我知道我可以使用 RowKeys 来做到这一点,但是否可以使用 PartitionKeys 来做到这一点?

一个后续问题是:即使可行,是否可取?PartitionKey 是否应该始终完全匹配——比如说,出于性能原因?

0 投票
1 回答
387 浏览

azure-table-storage - 运行没有 PartitionKey 的 Azure 表存储查询

是否可以在不使用 PartitionKey 的情况下对 Azure 表存储表运行查询。例如,我会说,RowKey 以但不使用 PartitionKey 开头

两个问题:

  1. 是否有可能做到这一点?
  2. 这样做是个好主意吗?我担心即使有可能,它也可能会带来性能损失。