标签: azure-tablequery

如何查询windows azure表存储中的所有行?

我想获取我的azure表中所有实体的列表.

知道如何写这个查询吗?

我正在使用c#btw.谢谢.

c# azure nosql azure-table-storage azure-tablequery

43
推荐指数
3
解决办法
3万
查看次数

如何在Azure表存储中使用partitionkey加快查询速度

我们如何提高查询速度?

在执行以下查询的范围内,我们大约有100个消费者1-2 minutes。这些运行中的每个运行都代表一个消耗函数的运行。

        TableQuery<T> treanslationsQuery = new TableQuery<T>()
         .Where(
          TableQuery.CombineFilters(
            TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, sourceDestinationPartitionKey)
           , TableOperators.Or,
            TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, anySourceDestinationPartitionKey)
          )
         );
Run Code Online (Sandbox Code Playgroud)

该查询将产生大约5000个结果。

完整代码:

    public static async Task<IEnumerable<T>> ExecuteQueryAsync<T>(this CloudTable table, TableQuery<T> query) where T : ITableEntity, new()
    {
        var items = new List<T>();
        TableContinuationToken token = null;

        do
        {
            TableQuerySegment<T> seg = await table.ExecuteQuerySegmentedAsync(query, token);
            token = seg.ContinuationToken;
            items.AddRange(seg);
        } while (token != null);

        return items;
    }

    public static IEnumerable<Translation> Get<T>(string sourceParty, string destinationParty, string wildcardSourceParty, string …
Run Code Online (Sandbox Code Playgroud)

c# azure azure-table-storage azure-virtual-network azure-tablequery

10
推荐指数
2
解决办法
314
查看次数

可以使用StartsWith查询PartitionKey吗?

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

我知道我可以用RowKeys做到这一点但是可以用PartitionKeys做到吗?

后续问题是:即使它可行,是否可取?PartitionKey应该是完全匹配 - 比如,出于性能原因?

azure azure-table-storage azure-tablequery

8
推荐指数
2
解决办法
4080
查看次数

如何在 TableClient.QueryAsync() 中筛选分页查询结果 [Azure.Data.Tables]

我正在使用Azure.Data.Tables包和TableClient.QueryAsync()方法来获取查询结果。我希望结果将其用于分页我在https://learn.microsoft.com/en-us/dotnet/api/azure.data.tables.tableclient.queryasync?view=azure-dotnet中遇到了这段代码

Pageable<T> pageable = client.QueryAsync<T>(filter : value, maxPerPage : 10);
Run Code Online (Sandbox Code Playgroud)

我应该做出哪些改变?

提前致谢 !!:)

c# asp.net azure azure-table-storage azure-tablequery

8
推荐指数
2
解决办法
2万
查看次数

从 Azure 表存储中的多个分区键中进行选择

在Azure表存储中,我存储新闻更新,分区键是分配给新闻类别的关键字,例如“政治”、“体育”等。

当用户登录时,我希望能够根据用户的兴趣选择记录——这些记录保存在另一个数据库中。因此用户可能对“政治”和“体育”感兴趣。显然,我们可能有大量用户感兴趣的类别。可能有 20 多个类别。

如何查询我的表以便获取这些类别中的任何新闻更新?具体来说,问题是我可以在针对 Azure 表存储的 SELECT 语句中指定的条件数量限制。我认为我不能指定超过 15 个条件,例如partitionKey = x 或partitionKey = y 等。

通常,在 NoSQL 数据库中,解决方案是去规范化,但在这种情况下,这将是一个糟糕的替代方案。假设我使用用户的 ID 作为分区键。如果我有 100 万个用户,那么使用不同的分区键创建同一记录的 100 万个副本是没有意义的,这样每个用户都可以轻松获得自己的更新。

如何使用 Azure 表存储处理这种情况?

azure-table-storage azure-tablequery

6
推荐指数
1
解决办法
3332
查看次数

Azure 表查询中的最大 $filter 比较

此页面(https://docs.microsoft.com/en-us/rest/api/storageservices/querying-tables-and-entities)说:

请注意,$filter 字符串中不允许进行超过 15 次的离散比较。

然而,在我的实验中,我达到了这个限制并且没有任何副作用。例如,这是来自 Azure 存储资源管理器:

storageacct/table 的统计信息(“PartitionKey eq '1' or PartitionKey eq '2' or PartitionKey eq '3' or PartitionKey eq '4' or PartitionKey eq '5' or PartitionKey eq '6' or PartitionKey eq '7' or PartitionKey eq '8' 或 PartitionKey eq '9' 或 PartitionKey eq '10' 或 PartitionKey eq '11' 或 PartitionKey eq '12' 或 PartitionKey eq '13' 或 PartitionKey eq '14' 或 PartitionKey eq '15' 或 PartitionKey eq ' 16' 或 PartitionKey eq '17' 或 …

azure-table-storage azure-tablequery

6
推荐指数
2
解决办法
1220
查看次数

创建具有数组或列表属性的TableEntity?

我已经在Azure表中存储了一些这样的枚举

pk   rk |    en     fr     de   ...

foo  1  |  'Eune' 'Fune' 'Dune' ...
foo  2  |  'Edoe' 'Fdoe' 'Ddoe' ...

bar  1  |  'Unee' 'Unef' 'Trid' ...
bar  2  |  'Diee' 'Dief' 'Died' ...
bar  3  |  'Trie' 'Tref' 'Trid' ...
Run Code Online (Sandbox Code Playgroud)

enfrde等...是语言代码,并分别在表中的列名。

TableEntity应该创建哪种类型才能正确加载它

public class FooEntity : TableEntity
{
    public Dictionary<string, string> Descriptions {get; set} // ?
}
Run Code Online (Sandbox Code Playgroud)

然后像myFoo["fr"]... 那样使用它们吗?

说我有英文GUI,我需要显示一个Foo带有Eune/ Edoe作为选择值的选择。

azure-table-storage azure-tablequery

6
推荐指数
2
解决办法
2364
查看次数

在 Azure 存储表中批量插入

我是使用 azure 存储表的新手。我试图批量插入我的实体,但我发现您无法执行具有不同分区键的批量操作。

有什么方法可以让我想在表格中插入大约 10,000 - 20,000 个文件详细信息。

这是我迄今为止尝试过的:

public class Manifest:TableEntity
{
    private string name;
    private string extension;
    private string filePath;
    private string relativePath;
    private string mD5HashCode;
    private string lastModifiedDate;

    public void AssignRowKey()
    {
        this.RowKey = relativePath.ToString();
    }
    public void AssignPartitionKey()
    {
        this.PartitionKey = mD5HashCode;
    }
    public string Name { get { return name; } set { name = value; } }
    public string Extension { get { return extension; } set { extension = value; } }
    public …
Run Code Online (Sandbox Code Playgroud)

c# azure azure-storage azure-table-storage azure-tablequery

4
推荐指数
1
解决办法
7379
查看次数

提高 Azure 表存储查询性能的建议

我们在 Azure 表存储中有一个表,自新实施以来目前有 50,000 个项目。

PartitionKey:字符串形式的日期时间值
RowKey:字符串形式的数值

我们用来TableQuery生成过滤条件。PartitionKey 过滤器类似于:PartitionKey ge '201801240000000000' && "PartitionKey lt '201806220000000000'"

不幸的是,我们无法使用 RowKey 过滤器,因为我们需要两个日期之间的数据。

要获取大约一个月的数据,大约需要 5 秒。而要取3个月左右的时间,则需要更多的时间。

尽管我们有适当的缓存策略,但第一次获取数据需要很长时间。就像数据上的过滤器在日期发生变化时需要很长时间一样。

任何提高性能的建议将不胜感激。

azure-storage azure-table-storage azure-tablequery

3
推荐指数
1
解决办法
4330
查看次数

查询没有partitionkey和rowkey的azure表

我有一个名为users的Azure表,其中有几个与用户相关的字段,我有PartitionKey作为UserId,RowKey作为CompanyId,我想通过Email字段查询表,而不是PartionKey或RowKey,是否可以像这样查询表?

如果是,那么在没有PartitionKey和RowKey的情况下进行查询是很好的

c# azure azure-storage azure-table-storage azure-tablequery

2
推荐指数
1
解决办法
2708
查看次数