无法在 Azure Cosmos 数据库模拟器的门户上设置分层分区键

问题描述 投票:0回答:1

有人能够在 Azure cosmos db 模拟器上设置分层分区键吗?我尝试关注 Microsoft 的这篇文章 -

https://learn.microsoft.com/en-us/azure/cosmos-db/hierarchical-partition-keys?tabs=net-v3%2Cbicep

这就是我到目前为止所做的 -

  1. 卸载并安装最新版本的模拟器。
  2. 从安装目录启动模拟器并在 powershell 中运行此命令 - .\CosmosDB.Emulator.exe /EnablePreview

我没有找到设置分层分区键的选项。

新容器创建屏幕的屏幕截图 -

azure-cosmosdb azure-cosmosdb-emulator
1个回答
0
投票

我刚刚下载了最新版本的模拟器并使用

/EnablePreview
标志启动它。

不幸的是,根据 发行说明,捆绑的数据浏览器的最后一次更新是在 2022 年 5 月 - 这早于将此功能添加到 数据浏览器代码库

但后端的东西似乎工作正常。

如果您连接到它并以编程方式执行此操作,则使用分层分区键创建集合可以正常工作。

例如根据文档中的示例使用以下代码确实有效

using Microsoft.Azure.Cosmos; //well known Emulator connection string using CosmosClient client = new( "https://localhost:8081", "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="); ; await client.CreateDatabaseIfNotExistsAsync("soquestion"); var database = client.GetDatabase("soquestion"); List<string> subpartitionKeyPaths = new List<string> { "/TenantId", "/UserId", "/SessionId" }; // Create a container properties object ContainerProperties containerProperties = new ContainerProperties( id: "hierPKTest", partitionKeyPaths: subpartitionKeyPaths ); // Create a container that's subpartitioned by TenantId > UserId > SessionId Container container = await database.CreateContainerIfNotExistsAsync(containerProperties, throughput: 400); var item = new { id = "f7da01b0-090b-41d2-8416-dacae09fbb4a", TenantId = "Microsoft", UserId = "8411f20f-be3e-416a-a3e7-dcd5a3c1f28b", SessionId = "0000-11-0000-1111" }; // Specify the full partition key path when creating the item PartitionKey partitionKey = new PartitionKeyBuilder() .Add(item.TenantId) .Add(item.UserId) .Add(item.SessionId) .Build(); // Create the item in the container var createResponse = await container.CreateItemAsync(item, partitionKey); Console.WriteLine("Done");
尽管我想您可以取消通过数据浏览器与这些文档交互的任何前景,直到更新为止。

也许可以克隆 cosmos-explorer 存储库并在本地构建它以连接到模拟器端点以访问最新和最好的功能,但这不是我探索做的事情。

© www.soinside.com 2019 - 2024. All rights reserved.