Cosmos DB学习
1、什么是结构化数据、非结构化数据与半结构化数据
结构化数据: 数据以固定格式存在,一行一个实体,每行数据属性相同
非结构化: 如 Json,有结构,不方便模式化,一类实体可以有不同属性
非结构化数据: 没有预定义好的组织方式,声音、图像文件等
2、什么是关系型数据库,什么是非关系型数据库Nosql
关系型数据库:
多张表+各表之间的关系
优点:事物一致性
举例: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 帐户(可通过支持请求上调)。
一致性级别
一致性级别越弱,可用性吞吐量越高,时延越低
Cosmos DB 的分区(逻辑分区与物理分区)与分区键
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
欢迎关注我的博客,与我一起学习,我将持续分享我的学习过程,我是 热爱学习的小翁同学~