Cosmos DB学习 - 在门户网站创建Azure Function(Node.js)连接 Cosmos DB查询数据

发布于:2023-02-01 ⋅ 阅读:(609) ⋅ 点赞:(0)

1、什么是结构化数据、非结构化数据与半结构化数据

结构化数据: 数据以固定格式存在,一行一个实体,每行数据属性相同
非结构化: 如 Json,有结构,不方便模式化,一类实体可以有不同属性
非结构化数据: 没有预定义好的组织方式,声音、图像文件等

2、什么是关系型数据库,什么是非关系型数据库Nosql

Sql Or NoSql,看完这一篇你就懂了 - 五月的仓颉 - 博客园 (cnblogs.com)

关系型数据库:

多张表+各表之间的关系

优点:事物一致性

举例:SQL、Oracle、SQL Server

非关系型数据库 Nosql (Not only sql) :
是关系型数据库的一种补充,读取效率高

存储类型:key-value、列、文档、图

举例:Redis、MongoDB

3、MongoDB

参考链接:深度好文:全面认识MongoDB (baidu.com)

Mongodb:是一个nosql的数据库的一种数据库,他是介于关系型数据库与非关系型数据库之间的一种数据库,也可以理解为它是介于Redis与Mysql之间的一种数据库。

4、在Azure中使用MongoDB的途径

Azure中没有提供MongoDB服务,如果要使用的话,推荐以下两种方案

(1)虚拟机自建MongoDB

(2)使用Azure的Cosmos DB,做MongoDB到Cosmos DB的迁移

5、Azure 的 Cosmos DB概述

Cosmos DB是一个多区域 分布式 多模型数据库服务(Paas 服务)

官方文档:

Azure Cosmos DB 简介 | Microsoft Docs

提供的API: SQL API、Mongo DB API、Table API、Gremlin API、Cassandra API

如果将Cosmos DB创建为Mongo DB的API的话,可以使用常规的Mongo DB的方式来操作Cosmos DB

多模型:Key-value、Column-family、Document、Graph

多区域:国际上有超过30个区域,在中国有5个区域

主要 次要
中国北部(北京) 中国东部 (上海)
中国北部 2(北京) 中国东部2(上海)
中国北部 3 中国东部3 *

优势

在全球 99.999% 的读写可用性。

中国境内保证99%时间内的低延迟(读取低于10ms)

计费单位 RU

容器可以提供几乎无限的预配吞吐量 (RU/s) 和存储

在一个 Azure 订阅下可创建 50 个 Azure Cosmos 帐户(可通过支持请求上调)。

一致性级别

一致性级别越弱,可用性吞吐量越高,时延越低

Image showing data consistency as a spectrum

Cosmos DB 的分区(逻辑分区与物理分区)与分区键

总结 - Learn | Microsoft Docs

在这里插入图片描述

6、在门户网站创建Node.js Function连接CosmosDB

前情提要:Cosmos 数据库已经创建好,以下步骤没有描述创建数据库的操作

首先先创建一个函数应用,语言选择Node.js
在这里插入图片描述
创建完成后,我们转到资源
在这里插入图片描述
在左侧导航栏选择 函数 ,然后点击 创建
在这里插入图片描述

开发环境 选择 在门户中开发;模板选择 HTTP trigger ; 身份验证级别 选择 Anonymous ,最后点击 创建
在这里插入图片描述

点击左侧导航栏的 集成,选择 添加输入
在这里插入图片描述

选择 创建输入

绑定类型选择 Azure Cosmos DB;选择Cosmos DB 帐户连接;

数据库名称集合名称 分别输入自己创建的Cosmos DB的数据库名称和容器名称

SQL查询 填入 :

SELECT * from c where c.id = {id}

在这里插入图片描述

在左侧导航栏选择 代码+测试
在这里插入图片描述

修改index.js代码:

module.exports = async function (context, req,inputid) {

​    context.res = {

​        status: 200, 

​        body: JSON.stringify(inputid)

​    };

}

点击 测试/运行,添加参数,名称为 id,值为 1 ,点击运行
在这里插入图片描述
查询结果如下:
在这里插入图片描述
点击获取URL链接,并复制链接
在这里插入图片描述

在URL地址中传参,同样可以查询到想要的数据
在这里插入图片描述

参考链接:
[1] 实验5:使用HTTP(S)查询Cosmos DB

欢迎关注我的博客,与我一起学习,我将持续分享我的学习过程,我是 热爱学习的小翁同学~