标签: azure-cosmosdb-sqlapi

Cosmos DB:网关无法直接提供跨分区查询服务

知道为什么当我使用 REST API 在 Cosmos DB 中执行下面的查询时出现下面的错误吗?没有 order by 的相同查询工作正常......

我在这两种情况下都设置了标头"x-ms-documentdb-query-enablecrosspartition: True",并且使用 PHP 来发出请求。

有效的多分区查询:

从 c 中选择 c.id、c.name、c.age,其中 c.age = 30

多分区查询有错误:

SELECT c.id, c.name, c.age FROM c where c.age = 30 order by c.age asc

错误:

客户端错误:POST https://yeapp-cosmosdb.documents.azure.com//dbs/-JJZAA==/colls/-JJZAL+WPKw=/docs

导致400 BadRequest响应:{“code”:“BadRequest”,“message”:“网关无法直接提供所提供的跨分区查询。这是一个(截断的...)

azure-cosmosdb azure-cosmosdb-sqlapi

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

CosmosDB + 分组依据

我需要在Azure 数据资源管理器上使用“ GROUP BY ”子句,但我认为它不受支持

有人有解决或避免分组的想法吗?

此致,

azure azure-cosmosdb azure-cosmosdb-sqlapi

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

如何在 Cosmos DB 中查找重复文档

我已经看到在特定日期从流分析作业向 Cosmos DB 写入大量数据。它不应该在一天内写出大量的文件。我必须检查那天是否有重复的文件。

是否有任何查询/任何方法可以在 Cosmos DB 中查找重复记录?

azure azure-stream-analytics stream-analytics azure-cosmosdb azure-cosmosdb-sqlapi

3
推荐指数
2
解决办法
3548
查看次数

为什么 Azure Cosmos DB (SQL API) 通过 ARM 模板部署需要这么长时间?

为什么 Azure Cosmos DB 部署需要这么长时间?当我尝试通过 ARM 模板部署 Azure Cosmos DB (SQL API) 时,大约需要 20 分钟才能完成部署。这是为什么?

azure-resource-manager azure-cosmosdb azure-cosmosdb-sqlapi

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

如何在 CosmosDB 中使用 HAVING

我正在尝试使用以下查询来查看数据库中是否有重复项

SELECT c.VariantNo, count(1) AS jongel FROM c where c.brand = 'XXXX' AND c.Consumer = 'XXX_V2' GROUP BY c.VariantNo HAVING jongel > 1
Run Code Online (Sandbox Code Playgroud)

但我收到接近 HAVING 的语法错误

如果我有多个具有相同 VariantNo 的文档,我如何才能找到?

azure-cosmosdb azure-cosmosdb-sqlapi

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

Microsoft.Azure.Cosmos.Client:响应状态代码不表示成功:ServiceUnavailable (503)

我正在尝试使用本地设置将新项目添加到 cosmos 数据库中。

这是我的批量插入代码:

private async Task AddSubscription(EnableOrDisableSubscriptionCommand command, SubscriptionAction subscriptionAction, IList<int> notificationCategoryTypes)
        {
            List<Task> bulkOperations = new List<Task>();
            foreach (var notificationCategory in notificationCategoryTypes)
            {
                var notificationTypes = Utility.GetNotificationTypes((NotificationCategoryType)notificationCategory);

                foreach (var notificationType in notificationTypes)
                {
                    foreach (var payerAccountSubscriptions in command.Subscriptions)
                    {
                        if (payerAccountSubscriptions.AccountNumbers?.Any() ?? false)
                        {
                            foreach (var accountNumber in payerAccountSubscriptions.AccountNumbers.Where(a => !string.IsNullOrEmpty(a)))
                            {
                                bulkOperations.Add(_repository.Create(subscriptionAction, notificationType,
                                      payerAccountSubscriptions.ColCoId, payerAccountSubscriptions.PayerNumber, accountNumber, command.UserRole,
                                      command.UserId));
                            }
                        }
                        else
                        {
                            bulkOperations.Add(_repository.Create(subscriptionAction, notificationType,
                                payerAccountSubscriptions.ColCoId, payerAccountSubscriptions.PayerNumber, null, command.UserRole,
                                command.UserId));

                        }
                    }
                }
            }
            await Task.WhenAll(bulkOperations);
        }

 public …
Run Code Online (Sandbox Code Playgroud)

azure-cosmosdb azure-cosmosdb-sqlapi

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

宇宙数据库 SQL;Feed 选项上的分区键与分区键上的查询?

在 .net core sdk FeedOptions 中提供分区键与将其作为查询条件有什么区别?例如,如果您想列出给定分区键中的所有项目。您应该在条件中使用提要选项还是分区键?

标准中的分区键

SELECT * FROM c where c.PartitionKey = "some partition key"
Run Code Online (Sandbox Code Playgroud)

.net core 与 feedoptions

var allDocs = await (from d in client.CreateDocumentQuery<Document>(UriFactory.CreateDocumentCollectionUri(databaseId, "TestCollection"), 
                     new FeedOptions { PartitionKey = new PartitionKey("some partition key") })
                     select d)
                    .AsDocumentQuery<Document>().ExecuteNextAsync<Document>();
Run Code Online (Sandbox Code Playgroud)

当我创建自定义索引策略(其中分区键被排除在索引之外)时,出现了问题。因此,在查看 RU/s 成本时,它似乎在排除时进行扫描,而不是在使用默认索引策略时进行索引查找。

这是否意味着如果您需要跨分区查询,您需要索引分区键,如果您只需要在给定分区键内查询,您可以排除它 - 假设您在 FeedOptions 中给出分区键?

azure-cosmosdb azure-cosmosdb-sqlapi

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

Cosmos DB 中的更改数据捕获

我希望通过 azure 函数或其他方式使用计划作业捕获 Cosmos DB(JSON 文档)中更改的数据,而不影响数据库的在线性能,因为 Web 应用程序/移动应用程序正在使用 API 调用将数据读取和写入到 Cosmos DB 中。我想要用于离线 ETL 和分析目的的数据,就像 Oracle 提供离线重做日志文件的方式一样。

azure-cosmosdb azure-cosmosdb-sqlapi

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

如何在 Azure cosmosDB 中执行事务批量操作

最近,微软在 Azure CosmosDB 产品中引入了事务批量操作功能。在所有示例和每个文档中,似乎批次内的所有操作都需要位于同一分区中。想知道是否有办法实现跨分区的事务批处理操作。

我的用例是创建数千个文档,分区键是文档 ID。在每个操作中,我创建 2 个位于同一分区中的文档(具有相同的 id),并且我需要将它们作为事务的一部分来执行。我需要批处理数千个这样的操作。

azure azure-cosmosdb azure-cosmosdb-sqlapi

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

查询以获取另一个引用的所有 Cosmos DB 文档

假设我有以下 Cosmos DB 容器,其中包含可能的文档类型分区:

{
  "id": <string>,
  "partitionKey": <string>, // Always "item"
  "name": <string>
}
Run Code Online (Sandbox Code Playgroud)
{
  "id": <string>,
  "partitionKey": <string>, // Always "group"
  "items": <array[string]>  // Always an array of ids for items in the "item" partition
}
Run Code Online (Sandbox Code Playgroud)

我有一个“组”文档的 ID,但我没有该文档本身。我想做的是执行一个查询,为我提供“组”文档引用的所有“项目”文档。

我知道我可以执行两个查询:1)检索“group”文档,2)在“item”分区上使用 IN 子句执行查询。

由于除了获取 id 列表之外,我不关心“组”文档,因此是否可以构造一个查询来仅使用“组”文档 id 来获取我想要的所有“项目”文档?

azure azure-cosmosdb azure-cosmosdb-sqlapi

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