标签: azure-cosmosdb

Azure Cosmos DB是多模型的意思是什么?

看看新的Azure宇宙数据库,我对它的多模型性质有点困惑.具体来说,这是否意味着:

a)可以同时以多种方式查询相同的底层数据库/存储,这样我就可以对同一个集合使用gremlin图形查询和mongodb api.

  • 要么 -

b)是否意味着您可以在配置Cosmos DB时选择不同的模型(图形,键值,列,文档),以及从那时起数据的存储方式.

这本小册子听起来像a),但是使用Azure仪表板创建一个cosmos实例,它看起来像b)因为你必须在创建时选择一个模型类型.

此外,文献提到了柱状数据,但我没有在创建时看到它的选项.

azure nosql azure-cosmosdb

23
推荐指数
3
解决办法
6009
查看次数

在UpsertDocumentAsync()中,ResourceType文档是意外的

我是Azure DocumentDB的新手,我在尝试时遇到了问题.在第一次保存空集合时,我收到以下错误:

ResourceType文档是意外的.

ActivityId:29619975-e55a-4f31-a3d1-73d180ba3932

我的存储库代码(部分)如下:

public interface IEntity
{
    string Id { get; set; }
    DateTime DbCreatedAt { get; set; }
    DateTime DbLastUpdatedAt { get; set; }
}

public class Repository<T>: IRepository<T> where T: class, IEntity
{
    private DocumentClient _documentClient;
    private string _databaseName;
    private string _collectionName;

    // ....
    // ....

    public Task SaveAsync(T entity)
    {
        var documentUri = UriFactory.CreateDocumentUri(_databaseName, _collectionName, entity.Id);
        return _documentClient.UpsertDocumentAsync(documentUri, entity);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是第一次将任何内容写入此数据库/集合.难道我做错了什么?

c# .net-core azure-cosmosdb

22
推荐指数
1
解决办法
4966
查看次数

DocumentDB中每个集合的单个或多个实体

文档DB中每个集合应该有一个实体吗?

考虑我在下图中有外键关系: 在此输入图像描述

我应该为员工创建两个集合,为公司创建其他集合.或者我应该将它们存储在一个集合中?

在这里读到,在documentdb中,存储过程触发器等的范围都在一个集合中.因此,通过将不同的实体拆分为单独的集合,我开箱即用.

因此,将这两个类转储为单个实体并不是更好:

{
  "Id": 1001,
  "Industry": "Software",
  "Employees": [
    {
      "Id": 10011,
      "Name": "John Doe",
      "CompanyId": 1001
    },
    {
      "Id": 10012,
      "Name": "Jane Doe",
      "CompanyId": 1001
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

在DocumentDB中实现相关实体的标准做法是什么?

c# azure azure-cosmosdb

21
推荐指数
2
解决办法
8777
查看次数

.NET - c# - 需要跨分区查询,但在DocumentDB数据访问时禁用了麻烦

我编写了以下代码来从DocumentDB中获取记录

private static void QueryDocuments1(DocumentClient client)
{

    IQueryable<SearchInput> queryable =
client.CreateDocumentQuery<SearchInput>(UriFactory.CreateDocumentCollectionUri(DocumentDBName, DocumentDBCollectionName))
        .Where(x => x.Receiver == "8907180");
    List<SearchInput> posts = queryable.ToList();
}
Run Code Online (Sandbox Code Playgroud)

并且它在代码行上显示以下错误 List<SearchInput> posts = queryable.ToList();

{"需要交叉分区查询但已禁用.请将x-ms-documentdb-query-enablecrosspartition设置为true,指定x-ms-documentdb-partitionkey,或修改查询以避免此异常.\ r \nActivityId:xxxxxx-xxxx -xxx-XXX-XXXXXXX"}

请帮帮我...

c# asp.net azure-cosmosdb

20
推荐指数
1
解决办法
1万
查看次数

Azure 函数的 Azure Cosmos DB 输入绑定不起作用

我正在学习微软的演练,学习如何使用 CosmosDb 为 azure 函数添加输入绑定,但是在调用该函数时,它不断返回内部服务器错误(500 http 代码)。

function.json 中 azure 函数的配置是:

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "methods": [
        "get",
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    },
    {
      "name": "bookmark",
      "direction": "in",
      "type": "cosmosDB",
      "databaseName": "func-io-learn-db",
      "collectionName": "Bookmarks",
      "connectionStringSetting": "learn_DOCUMENTDB",
      "id": "{id}",
      "partitionKey": "{id}",
      "sqlQuery": ""
    }
  ]
}

Run Code Online (Sandbox Code Playgroud)

应用程序服务中有一个learn_DOCUMENTDB配置设置,它具有到 cosmos db 实例的有效连接字符串(自动创建)。

错误日志条目说:

无法将 CosmosDB 绑定到类型“System.String”。可能的原因:1) 尝试绑定到 'Microsoft.Azure.Documents.Client.DocumentClient, Microsoft.Azure.DocumentDB.Core, Version=2.9.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 但用户类型程序集是 …

azure-functions azure-cosmosdb

20
推荐指数
3
解决办法
5018
查看次数

在拉大量记录时,DocumentDB比SQL慢吗?

我正在做一些基准测试,所以我有一个包含2500条记录的SQL数据库.我将这些记录插入到DocumentDB中.

我编写了两行代码,一行使用实体框架将所有2500插入到C#中的数组中.将所有2500从DocuementDB中拉入数组的下一行.

使用的代码:

var test= await Task<Test>.Run(() =>
              client.CreateDocumentQuery<Test>(collection.DocumentsLink)
              .ToList());
Run Code Online (Sandbox Code Playgroud)

DocumentDB示例耗时超过20秒.SQL Server系列几乎是即时的.对象是具有5个属性的简单DTO,我通过Internet进行SQL查询.

我误用了DocumentDB吗?我认为这是为了将你的所有记录都记录到内存然后加入linq.

c# azure azure-cosmosdb

19
推荐指数
1
解决办法
6924
查看次数

如何在本地运行Microsoft Azure DocumentDB?

我使用的是Mac,主要使用Node.js项目.我想尝试使用DocumentDB将它与MongoDB进行比较.无论如何都要运行Azure DocumentDB的本地实例而不必通过设置真实帐户的麻烦?

谢谢!

azure azure-cosmosdb

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

Azure DocumentDB上的性能降低

我目前面临来自Azure DocumentDB的响应时间非常慢(第一次尝试).

集合中有31个对象,我将要获取并返回给调用者.我使用的代码是这样的:

public async Task<List<dynamic>> Get(string collectionName = null)
{
    // Lookup from Dictionary, takes literally no time
    var collection = await GetCollectionAsync(collectionName);

    var sw = Stopwatch.StartNew();

    var query = await
        _client.CreateDocumentQuery(collection.DocumentsLink, 
            new FeedOptions { MaxItemCount = 1000 })
            .AsDocumentQuery()
            .ExecuteNextAsync();

    Trace.WriteLine($"Get documents: {sw.ElapsedMilliseconds} ms");

    return query.ToList();
}
Run Code Online (Sandbox Code Playgroud)

要实例化客户端,我使用以下代码:

_client = new DocumentClient(new Uri(endpoint), authKey, new ConnectionPolicy
{
    ConnectionMode = ConnectionMode.Direct,
    ConnectionProtocol = Protocol.Tcp
});
Run Code Online (Sandbox Code Playgroud)

我从中获取的响应时间Stopwatch在360ms到1200ms之间,以返回31个对象.对我来说,这慢.没有自定义ConnectionPolicy ,平均响应时间约为950毫秒.

我在这里做错了吗?有可能以某种方式加快这些要求吗?

以下是Trace的输出,打印出秒表的经过时间:

Get documents: 1984 ms
Get …
Run Code Online (Sandbox Code Playgroud)

.net c# azure azure-cosmosdb

19
推荐指数
1
解决办法
9385
查看次数

将最多100,000条记录插入DocumentDB的最快方法

正如标题所示,我需要以编程方式将100,000多条记录插入到DocumentDb集合中.这些数据将在稍后用于创建报告.我正在使用Azure Documents SDK和用于批量插入文档的存储过程(请参阅使用存储过程查询Azure documentdb批量插入).

以下控制台应用程序显示了我如何插入文档.

InsertDocuments生成500个测试文档以传递给存储过程.main函数调用InsertDocuments 10次,整体插入5,000个文档.运行此应用程序会导致每隔几秒钟插入500个文档.如果我增加每次通话的文件数量,我就会开始收到错误并丢失文件.

任何人都可以推荐更快的方式来插入文件?

static void Main(string[] args)
{
    Console.WriteLine("Starting...");

    MainAsync().Wait();
}

static async Task MainAsync()
{
    int campaignId = 1001,
        count = 500;

    for (int i = 0; i < 10; i++)
    {
        await InsertDocuments(campaignId, (count * i) + 1, (count * i) + count);
    }
}

static async Task InsertDocuments(int campaignId, int startId, int endId)
{
    using (DocumentClient client = new DocumentClient(new Uri(documentDbUrl), documentDbKey))
    {
        List<dynamic> items = new List<dynamic>(); …
Run Code Online (Sandbox Code Playgroud)

c# azure azure-cosmosdb

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

CosmoDB和DocumentDB之间有什么区别

据我所知,CosmoDB能够使用Gremlin查询语言进行Graph查询.除此之外,定价,营销等都看起来都一样.他们提出了一个新产品来添加Gremlin似乎很奇怪,因为他们没有这样做来添加MongoDB支持.这两种产品之间有什么可辨别的差异?

azure-cosmosdb

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

标签 统计

azure-cosmosdb ×10

azure ×6

c# ×6

.net ×1

.net-core ×1

asp.net ×1

azure-functions ×1

nosql ×1