Nebula Graph-01-Nebula Graph简介和安装以及客户端连接

前言

NoSQL 数据库

图数据库并不是可以克服关系型数据库缺点的唯一替代方案。现在市面上还有很多非关系型数据库的产品,这些产品都可以叫做 NoSQL。NoSQL 一词最早于上世纪 90 年代末提出,可以解释为“非 SQL” 或“不仅是 SQL”,具体解释要根据语境判断。为便于理解,这里 NoSQL 可以解释成 “非关系型数据库”。不同于关系型数据库,NoSQL 数据库提供的数据存储、检索机制并不是基于表关系建模的。 NoSQL 数据库可以分为四类:

  • 键值存储(key-value stores)
  • 列式存储(column-family stores)
  • 文件存储(document stores)
  • 图数据库(graph databases)

下面将分别介绍这四类数据库。

  • 键值存储
    键值存储,顾名思义,就是使用键值对存储数据的数据库。不同于关系型数据库,键值存储是没有表和列的。如果一定要做类比,键值数据库本身就像一张有很多列(也就是键)的大表。在键值存储数据库中,数据(即键值对中的值)都是通过键来存储和查询的,通常用哈希列表来实现。这比传统的 SQL 数据库要简单得多,而且对于某些 web 应用来说,这就足够了。

    键值模型对于 IT 系统来说优势在于简单、易部署。多数情况下,这种存储方式对非关联的数据很适用。如是只是存储数据而无需查询的话,使用这种存储方法就没有问题。但是如果 DBA 只对部分值进行查询或更新的时候,键值模型就显得效率低下了。常见的键值存储数据库有:Redis、Voldemort、Oracle BDB。

  • 列式存储
    NoSQL 数据库的列式存储与 NoSQL 数据库的键值存储有许多相似之处,因为列式存储仍然在使用键进行存储和检索。区别在于列式存储数据库中,列是最小的存储单元,每一列均由键、值以及用于版本控制和冲突解决的时间戳组成。这在分布式扩展时特别有用,因为在数据库更新时,可以使用时间戳定位过期数据。由于列式存储良好的扩展性,因此适用于非常大的数据集。常见的列式存储数据库有:HBase、Cassandra、HadoopDB 等。

  • 文档存储
    准确来说,NoSQL 数据库文档存储实际上也是基于键值的数据库,只不过对功能做了增强。数据仍然以键值的形式存储,但是文档存储中的值是结构化的文档,而不仅仅是一个字符串或单个值。也就是说,由于信息结构的增加,文档存储能够执行更优化的查询,并且使数据检索更加容易。因此,文档存储特别适合存储、索引并管理面向文档的数据或者类似的半结构化数据。

    从技术上讲,作为一个半结构化的信息单元,文档存储中的文档可以是任何形式可用的文档,包括 XML、JOSN、YAML 等,这取决于数据库供应商的设计。 比如,JSON 就是一种常见的选择。虽然 JSON 不是结构化数据的最佳选择,但是 JSON 型的数据在前端和后端应用中都可以使用。常见的文档存储数据库有:MongoDB、CouchDB、Terrastore 等。

  • 图存储
    最后一类 NoSQL 数据库是图数据库。本书重点讨论的 NebulaGraph 也是一种图数据库。虽然同为 NoSQL 型数据库,但是图数据库与上述 NoSQL 数据库有本质上的差异。图数据库以点、边、属性的形式存储数据。其优点在于灵活性高,支持复杂的图形算法,可用于构建复杂的关系图谱。我们将在随后的章节中详细讨论图数据库。不过在本章中,你只要知道图数据库是一种 NoSQL 类型的数据库就可以了。常见的图数据库有:NebulaGraph、Neo4j、OrientDB 等。

为什么要有图数据库

虽然关系型数据库(MySQL)与 XML/JSON 等半结构类型的数据库,都可以用来描述图结构的数据模型。

但是,图(数据库)不仅可以描述图结构与存储数据本身,更着眼于处理数据之间的关联(拓扑)关系。具体来说,图(数据库)有这么几个优点:

  • 图是一种更直观、更符合人脑思考直觉的知识表示方式。这使得我们在抽象业务问题时,可以着眼于“业务问题本身”,而不是“如何将问题描述为数据库的某种特定结构(例如表格结构)”。
  • 图更容易展现数据的特征,例如转账的路径、近邻的社区。
  • 图查询语言是针对图结构访问设计的,可以更加直观。
  • 由于存储引擎和查询引擎可以针对图的结构专门设计,图的遍历(对应 SQL 中的 join)要高效得多。
  • 图数据库具有广泛的适用场景。例如数据集成(知识图谱)、个性化推荐、欺诈与威胁检测、风险分析与合规、身份(与控制权)验证、IT 基础设施管理、供应链与物流、社交网络研究等。
  • 根据文献的统计,使用图技术最多的领域,依次是:信息技术(IT)、学术界研究、金融、工业界实验室、政府、医疗健康、国防、制药业、零售与电子商务、交通运输、电信、保险。

  图数据库是基于图论实现的一种NoSQL数据库,其数据存储结构和数据查询方式都是以图论为基础的,
图数据库主要用于存储更多的连接数据.

  图论〔Graph Theory〕是数学的一个分支。它以图为研究对象图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。

分析市面上主流图数据库

https://blog.csdn.net/Castlehe/article/details/121602870

Nebula Graph 介绍

1:Nebula Graph 简介

官网:https://docs.nebula-graph.com.cn/3.6.0/
NebulaGraph 是一款开源的、分布式的、易扩展的原生图数据库,能够承载包含数千亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询。
NebulaGraph 的优势

  • 开源
  • 高性能
  • 易扩展
  • 易开发
  • 高可靠访问控制
  • 生态多样化
  • 兼容 openCypher 查询语言
  • 面向未来硬件,读写平衡
  • 灵活数据建模
  • 广受欢迎(我觉得就是因为开源-免费的)

适用场景

  • 欺诈检测
  • 实时推荐
  • 知识图谱
  • 社交网络
    在这里插入图片描述

2:Nebula Graph 数据类型

NebulaGraph 数据模型使用 6 种基本的数据模型:

图空间(Space)

图空间用于隔离不同团队或者项目的数据。不同图空间的数据是相互隔离的,可以指定不同的存储副本数、权限、分片等。

点(Vertex)

点用来保存实体对象,特点如下:

  • 点是用点标识符(VID)标识的。VID在同一图空间中唯一。VID 是一个 int64,或者 fixed_string(N)。
  • 点可以有 0 到多个 Tag。(ebulaGraph 2.x 及以下版本中的点必须包含至少一个 Tag。)

边(Edge)

边是用来连接点的,表示两个点之间的关系或行为,特点如下:

  • 两点之间可以有多条边。
  • 边是有方向的,不存在无向边。
  • 四元组 <起点 VID、Edge type、边排序值 (rank)、终点 VID> 用于唯一标识一条边。边没有 EID。
  • 一条边有且仅有一个 Edge type。
  • 一条边有且仅有一个 Rank,类型为 int64,默认值为 0。Rank 可以用来区分 Edge type、起始点、目的点都相同的边。该值完全由用户自己指定。

标签(Tag)

Tag 由一组事先预定义的属性构成。

边类型(Edge type)

Edge type 由一组事先预定义的属性构成。

属性(Property)

属性是指以键值对(Key-value pair)形式表示的信息。

3:路径

图论中一个非常重要的概念是路径,路径是指一个有限或无限的边序列,这些边连接着一系列的点。
既连接图论中点和边的任意连接方式
路径的类型分为三种:walk、trail、path

walk

walk类型的路径由有限或无限的边序列构成。遍历时点和边可以重复。

trail

trail类型的路径由有限的边序列构成。遍历时只有点可以重复,边不可以重复。

在 trail 类型中,还有cycle和circuit两种特殊的路径类型,以下图为例对这两种特殊的路径类型进行介绍。
在这里插入图片描述

  • cycle
    cycle 是封闭的 trail 类型的路径,遍历时边不可以重复,起点和终点重复,并且没有其他点重复。在此示例图中,最长路径由三条边组成:A->B->C->A或C->D->E->C
  • circuit
    circuit 也是封闭的 trail 类型的路径,遍历时边不可以重复,除起点和终点重复外,可能存在其他点重复。在此示例图中,最长路径为:A->B->C->D->E->C->A。

path

path类型的路径由有限的边序列构成。遍历时点和边都不可以重复。

walk、trail、path 总结对比

在这里插入图片描述

NebulaGraph 服务架构

NebulaGraph 架构总览

NebulaGraph 由三种服务构成:Graph 服务、Meta 服务和 Storage 服务,是一种存储与计算分离的架构。

每个服务都有可执行的二进制文件和对应进程,用户可以使用这些二进制文件在一个或多个计算机上部署 NebulaGraph 集群。

下图展示了 NebulaGraph 集群的经典架构。
在这里插入图片描述
如果这个看着比较乱,可以看这个:
在这里插入图片描述
简单来说:

  • Meta 服务是由 nebula-metad 进程提供的,负责元数据管理,例如 Schema 操作、集群管理和用户权限管理等。默认启动端口为:9559
  • Graph 服务是由 nebula-graphd 进程提供,Graph 服务负责处理计算请求,既用户的query引擎,默认启动端口为:9669
  • Storage 服务是由 nebula-storaged 进程提供,Storage 服务负责存储数据,默认启动端口为:9779

Meta 服务架构:默认启动端口为:9559

官网介绍:https://docs.nebula-graph.com.cn/3.6.0/1.introduction/3.nebula-graph-architecture/2.meta-service/

Meta 服务是由 nebula-metad 进程提供的,用户可以根据场景配置 nebula-metad 进程数量,
所有 nebula-metad 进程构成了基于 Raft 协议的集群,其中一个进程是 leader,其他进程都是 follower,leader 是由多数派选举出来,只有 leader 能够对客户端或其他组件提供服务,其他 follower 作为候补,如果 leader 出现故障,会在所有 follower 中选举出新的 leader。

Meta 服务功能:

  • 管理用户账号
  • 管理分片
  • 管理图空间
  • 管理 Schema 信息
  • 管理 TTL 信息(服务存储 TTL(Time To Live))
  • 管理作业

Graph 服务:默认启动端口为:9669

官网介绍:https://docs.nebula-graph.com.cn/3.6.0/1.introduction/3.nebula-graph-architecture/3.graph-service/

Graph 服务主要负责处理查询请求,包括解析查询语句、校验语句、生成执行计划以及按照执行计划执行四个大步骤,
在这里插入图片描述
查询请求发送到 Graph 服务后,会由如下模块依次处理:

  • Parser:词法语法解析模块。
  • Validator:语义校验模块。
  • Planner:执行计划与优化器模块。
  • Executor:执行引擎模块。

注:不论是nebula 的客户端连接服务还是java等代码连接服务,都要连接9669端口

Storage 服务:默认启动端口为:9779

官网介绍:https://docs.nebula-graph.com.cn/3.6.0/1.introduction/3.nebula-graph-architecture/4.storage-service/

NebulaGraph 的存储包含两个部分,一个是 Meta 相关的存储,称为 Meta 服务,在前文已有介绍。
另一个是具体数据相关的存储,称为 Storage 服务。其运行在 nebula-storaged 进程中。
优势

  • 高性能(自研 KVStore)
  • 易水平扩展(Shared-nothing 架构,不依赖 NAS 等硬件设备)
  • 强一致性(Raft)
  • 高可用性(Raft)
  • 支持向第三方系统进行同步(例如全文索引)

Nebula Graph 本地化安装部署

官方说明:https://docs.nebula-graph.com.cn/3.6.0/2.quick-start/3.quick-start-on-premise/2.install-nebula-graph/

部署Nebula Graph 的方法有太多种,目前只在此演示本地部署安装。其他Docker Desktop或者Docker Compose的方式,请大家参考官网基于 Docker 快速部署

1:安装 NebulaGraph

RPM 和 DEB 是 Linux 系统下常见的两种安装包格式;

1:利用weget下载安装包

当前仅支持在 Linux 系统下安装 NebulaGraph,且仅支持 CentOS 7.x、CentOS 8.x、Ubuntu 16.04、Ubuntu 18.04、Ubuntu 20.04 操作系统。
URL 格式如下:

//Centos 7
https://oss-cdn.nebula-graph.com.cn/package/<release_version>/nebula-graph-<release_version>.el7.x86_64.rpm//Centos 8
https://oss-cdn.nebula-graph.com.cn/package/<release_version>/nebula-graph-<release_version>.el8.x86_64.rpm//Ubuntu 1604
https://oss-cdn.nebula-graph.com.cn/package/<release_version>/nebula-graph-<release_version>.ubuntu1604.amd64.deb//Ubuntu 1804
https://oss-cdn.nebula-graph.com.cn/package/<release_version>/nebula-graph-<release_version>.ubuntu1804.amd64.deb//Ubuntu 2004
https://oss-cdn.nebula-graph.com.cn/package/<release_version>/nebula-graph-<release_version>.ubuntu2004.amd64.deb

例如要下载适用于Centos 7.5的3.6.0安装包:

wget https://oss-cdn.nebula-graph.com.cn/package/3.6.0/nebula-graph-3.6.0.el7.x86_64.rpm

wget https://oss-cdn.nebula-graph.com.cn/package/3.6.0/nebula-graph-3.6.0.el7.x86_64.rpm.sha256sum.txt

下载适用于ubuntu 1804的3.6.0安装包:

wget https://oss-cdn.nebula-graph.com.cn/package/3.6.0/nebula-graph-3.6.0.ubuntu1804.amd64.deb

wget https://oss-cdn.nebula-graph.com.cn/package/3.6.0/nebula-graph-3.6.0.ubuntu1804.amd64.deb.sha256sum.txt

我这里下载Centos 7.5的3.6.0安装包
在这里插入图片描述

2:安装 NebulaGraph

安装 RPM 包

$ sudo rpm -ivh --prefix=<installation_path> <package_name>
–prefix为可选项,用于指定安装路径。如不设置,系统会将 NebulaGraph 安装到默认路径/usr/local/nebula/。

例如,要在默认路径下安装3.6.0版本的 RPM 包,运行如下命令:
sudo rpm -ivh nebula-graph-3.6.0.el7.x86_64.rpm

安装 DEB 包

$ sudo dpkg -i <package_name>
使用 DEB 包安装 NebulaGraph 时不支持自定义安装路径。默认安装路径为/usr/local/nebula/。
例如安装3.6.0版本的 DEB 包:
sudo dpkg -i nebula-graph-3.6.0.ubuntu1804.amd64.deb

2:启动 NebulaGraph 服务

使用脚本nebula.service管理服务,包括启动、停止、重启、中止和查看。

$ sudo /usr/local/nebula/scripts/nebula.service
[-v] [-c <config_file_path>]
<start | stop | restart | kill | status>
<metad | graphd | storaged | all>
在这里插入图片描述
例如:

* 启动服务:

sudo /usr/local/nebula/scripts/nebula.service start all

* 停止服务:

sudo /usr/local/nebula/scripts/nebula.service stop all

* 查看服务:

sudo /usr/local/nebula/scripts/nebula.service status all

如果返回类似如下结果,表示 NebulaGraph 服务异常,可以根据异常服务信息进一步排查

[INFO] nebula-metad: Running as 25600, Listening on 9559
[INFO] nebula-graphd: Exited
[INFO] nebula-storaged: Running as 25646, Listening on 9779

我这里进行查看,发现:
在这里插入图片描述
这是因为:
从 3.0.0 版本开始,在配置文件中添加的 Storage 主机无法直接读写,配置文件的作用仅仅是将 Storage 主机注册至 Meta 服务中。必须使用ADD HOSTS命令后,才能正常读写 Storage 主机。而我这里是最新的3.6.0,这个问题放在第4步【4:注册 Storage 服务】解决

3:连接 NebulaGraph 服务-原生命令行客户端 NebulaGraph Console 连接

本文介绍如何使用原生命令行客户端 NebulaGraph Console 连接 NebulaGraph 。
因为:首次连接到 NebulaGraph 后,必须先注册 Storage 服务,才能正常查询数据。

NebulaGraph 支持多种类型的客户端,包括命令行客户端、可视化界面客户端和流行编程语言客户端。

  • NebulaGraph Console:原生 CLI 客户端
  • NebulaGraph CPP:C++ 客户端
  • NebulaGraph Java:Java 客户端
  • NebulaGraph Python:Python 客户端
  • NebulaGraph Go:Go 客户端
    前提条件
  • NebulaGraph 服务已启动。
  • 运行 Nebula Console 的机器和运行 NebulaGraph 的服务器网络互通。
  • Nebula Console 的版本兼容 NebulaGraph 的版本。

1:在 Nebula Console 下载页面,确认需要的版本,单击 Assets。【建议选择最新版本】
在这里插入图片描述
2:(可选)为方便使用,重命名文件为nebula-console。【在 Windows 系统中,请重命名为nebula-console.exe。】

3:在运行 Nebula Console 的机器上执行如下命令,为用户授予 nebula-console 文件的执行权限。【Windows 系统请跳过此步骤。】

chmod 111 nebula-console

4:在命令行界面中,切换工作目录至 nebula-console 文件所在目录。
5:执行如下命令连接 NebulaGraph。

#Linux 或 macOS
./nebula-console -addr -port -u -p
[-t 120] [-e “nGQL_statement” | -f filename.nGQL]

#Windows
nebula-console.exe -addr -port -u -p
[-t 120] [-e “nGQL_statement” | -f filename.nGQL]

示例:

nebula-console.exe -addr 192.168.13.10 -port 9669 -u root -p 12345

连接成功的标识:

在这里插入图片描述

4:注册 Storage 服务

首次连接到 NebulaGraph 后,需要先添加 Storage 主机,并确认主机都处于在线状态。

前提条件
已连接 NebulaGraph 服务。

1:添加 Storage 主机。

执行如下命令添加主机:ADD HOSTS : [,: …];

示例:
ADD HOSTS 127.0.0.1:9779;
在这里插入图片描述

2:检查主机状态,确认全部在线。

SHOW HOSTS;
在这里插入图片描述

3:检查Nebula Graph 都已经启动了

在这里插入图片描述

NebulaGraph Studio-可视化web工具安装

1:什么是 NebulaGraph Studio

NebulaGraph Studio(简称 Studio)是一款可以通过 Web 访问的开源图数据库可视化工具,搭配 NebulaGraph 内核使用,提供构图、数据导入、编写 nGQL 查询等一站式服务。

产品功能¶
Studio 可以方便管理 NebulaGraph 数据,具备以下功能:

  • 使用 Schema 管理功能,用户可以使用图形界面完成图空间、Tag(标签)、Edge Type(边类型)、索引的创建,查看图空间的统计数据,快速上手 NebulaGraph 。
  • 使用导入功能,通过简单的配置,用户即能批量导入点和边数据,并能实时查看数据导入日志。
  • 使用控制台功能,用户可以使用 nGQL 语句创建 Schema,并对数据执行增删改查操作。

适用场景¶
如果有以下任一需求,都可以使用 Studio:

  • 已经安装部署了 NebulaGraph,想使用 GUI 工具创建 Schema、导入数据、执行 nGQL 语句查询。
  • 刚开始学习 nGQL(NebulaGraph Query Language),但是不习惯用命令行工具,更希望使用 GUI 工具查看语句输出的结果。

版本兼容性
Studio 版本发布节奏独立于 NebulaGraph 内核,其命名方式也不参照内核命名规则,两者兼容对应关系如下表。
在这里插入图片描述

2:部署 Studio

官网说明:https://docs.nebula-graph.com.cn/3.6.0/nebula-studio/deploy-connect/st-ug-deploy/
1:前提条件¶
在部署 RPM 版 Studio 之前,用户需要确认以下信息:

  • NebulaGraph 服务已经部署并启动。详细信息,参考 NebulaGraph 安装部署。
  • 使用的 Linux 发行版为 CentOS ,已安装 lsof。
  • 确保以下端口未被占用。

端口号 说明
7001 Studio 提供 web 服务使用。

Studio 下载链接:https://oss-cdn.nebula-graph.com.cn/nebula-graph-studio/3.8.0/nebula-graph-studio-3.8.0.x86_64.rpm?_gl=1ihkswg_gaODA1MTU2MTYzLjE3MTA4NDc5OTY._ga_BGGB2REDGM*MTcxMDg1NTcyNy4yLjEuMTcxMDg2MTQ1MC40NC4wLjA.

2:使用sudo rpm -i <rpm_name>命令安装 RPM 包。
例如,安装 Studio 3.8.0 版本需要运行以下命令,默认安装路径为/usr/local/nebula-graph-studio

$ sudo rpm -i nebula-graph-studio-3.8.0.x86_64.rpm

也可以使用以下命令安装到指定路径:

$ sudo rpm -i nebula-graph-studio-3.8.0.x86_64.rpm --prefix=

当屏幕返回以下信息时,表示 PRM 版 Studio 已经成功启动。
在这里插入图片描述

3:启动成功后,在浏览器地址栏输入 http://:7001。

如果在浏览器窗口中能看到以下登录界面,表示已经成功部署并启动 Studio。
在这里插入图片描述

卸载¶
用户可以使用以下的命令卸载 Studio。

$ sudo rpm -e nebula-graph-studio-3.8.0.x86_64

当屏幕返回以下信息时,表示 PRM 版 Studio 已经卸载。

NebulaGraph Studio removed, bye~

注:如果启动服务时遇到报错 ERROR: bind EADDRINUSE 0.0.0.0:7001,用户可以通过以下命令查看端口 7001 是否被占用。

$ lsof -i:7001
如果端口被占用,且无法结束该端口上进程,用户可以修改 studio 配置内的启动端口,并重新启动服务。

//修改 studio 服务配置。配置文件默认路径为/usr/local/nebula-graph-studio
$ vi etc/studio-api.yaml
//修改端口号,改成任意一个当前可用的即可。
Port: 7001
//重启服务
$ systemctl restart nebula-graph-studio.service

4:Studio 连接数据库

在成功启动 Studio 后,用户需要配置连接 NebulaGraph 。

前提条件¶
在连接 NebulaGraph 数据库前,用户需要确认以下信息:

  • Studio 已经启动。详细信息参考部署 Studio。
  • NebulaGraph 的 Graph 服务本机 IP 地址以及服务所用端口。默认端口为 9669。
  • NebulaGraph 登录账号信息,包括用户名和密码。

1:在 Studio 的 配置数据库 页面上,输入以下信息:

  • Graphd IP 地址:填写 NebulaGraph 的 Graph 服务本机 IP 地址。例如192.168.10.100
    即使 NebulaGraph 与 Studio 部署在同一台机器上,用户也必须填写这台机器的本机 IP 地址,而不是 127.0.0.1 或者 localhost。
  • Port:Graphd 服务的端口。默认为9669
  • 用户名 和 密码:根据 NebulaGraph 的身份验证设置填写登录账号和密码。
    如果未启用身份验证,可以填写默认用户名 root 和任意密码。
    如果已启用身份验证,但是未创建账号信息,用户只能以 GOD 角色登录,必须填写 root 及对应的密码 nebula。
    如果已启用身份验证,同时又创建了不同的用户并分配了角色,不同角色的用户使用自己的账号和密码登录。

3:点击连接
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/279623.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥练习题总结(一)字母图形、完美的代价、01串、序列求和

目录 一、字母图形 二、完美的代价 三、01字串 四、序列求和 一、字母图形 问题描述 利用字母可以组成一些美丽的图形&#xff0c;下面给出了一个例子&#xff1a; ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形&#xff0c;请找出这个图形的规律&#xff…

本地gitlab-runner的创建与注册

引言 之前通过一些方式在本地创建runner&#xff0c;时而会出现一些未知的坑&#xff0c;所以写下本文记录runner可以无坑创建的方式。 以下注册runner到相应仓库的前提是已经在本地安装了gitlab-runner 具体安装方式见官网 本地gitlab-runner安装常用的指令 查看gitlab r…

SQLiteC/C++接口详细介绍之sqlite3类(十八)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十七&#xff09; 下一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;一&#xff09; ​ 56.sqlite3_update_hook 函数功能&am…

Vue.js前端开发零基础教学(二)

目录 前言 2.1 单文件组件 2.2 数据绑定 2.2.2 响应式数据绑定 2.3 指令 2.3.1 内容渲染指令 2.3.2 属性绑定指令 ​编辑 2.3.3 事件绑定指令 2.3.4 双向数据绑定指令 2.3.5 条件渲染指令 2.3.6 列表渲染指令 2.4 事件对象 2.5 事件修饰符 学习目标&am…

【CKA模拟题】学会JSONPath,精准定位Pod信息!

题干 For this question, please set this context (In exam, diff cluster name) kubectl config use-context kubernetes-adminkubernetesyou have a script named pod-filter.sh . Update this script to include a command that filters and displays the label with the…

STM32-DMA数据转运

DMA进行转运的条件 1&#xff1a;开关控制&#xff0c;DMA_CMD必须使能2&#xff1a;传输计数器必须大于03&#xff1a;触发源必须有触发的信号

【c++】c++背景(c++的前世今生)

主页&#xff1a;醋溜马桶圈-CSDN博客 专栏&#xff1a;c_醋溜马桶圈的博客-CSDN博客 gitee&#xff1a;mnxcc (mnxcc) - Gitee.com 目录 1. 什么是C 2. C发展史 3. C的重要性 3.1 语言的使用广泛度 3.2在工作邻域 1. 操作系统以及大型系统软件开发 2. 服务器端开发 3. …

OSPF路由汇总

OSPF只要是环回接口&#xff08;默认P2P网络类型&#xff09;&#xff0c;默认都是32位的叶子信息。手动修改&#xff0c;[R1-LoopBack0]ospf network-type broadcast&#xff1b;修改网络类型。 OSPF不支持自动汇总&#xff0c;需要手动汇总。 一、OSPF路由汇总 使用CIDR技术…

java数据结构与算法刷题-----LeetCode135. 分发糖果

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 左右遍历2. 进阶&#xff1a;常数空间遍历&#xff0c;升序降…

【四 (6)数据可视化之 Grafana安装、页面介绍、图表配置】

目录 文章导航一、Grafana介绍[✨ 特性]二、安装和配置1、安装2、权限配置&#xff08;账户/团队/用户&#xff09;①用户管理②团队管理③账户管理④看板权限 3、首选项配置4、插件管理①数据源插件②图表插件③应用插件④插件安装方式一⑤安装方式二 三、数据源管理1、添加数…

内表-ABAP开发从入门到精通笔记

内表 概念 内表是在程序内部定义的表。是定义在内存中&#xff0c;所以运行速度会比磁盘中是实体表快很多。 内表的定义&#xff0c;可以通过type来定义&#xff0c;也可以通过变量来定义。 例如&#xff1a;先定义一个结构体&#xff0c;然后再通过结构体定义内表 先顶一个结…

合合信息扫描全能王亮相静安区3·15活动,AI扫描带来绿色消费新体验

保护消费者的合法权益&#xff0c;是全社会的共同责任。为优化消费环境、促进品质消费高地建设&#xff0c;打造安全优质和谐的消费环境&#xff0c;上海静安区消保委于3月15日举办静安区2024年“315”国际消费者权益日活动。 “激发消费活力&#xff0c;绿色低碳同行”是本次3…

蓝桥杯每日一题——棋盘

问题描述 小蓝拥有 n xn 大小的棋盘&#xff0c;一开始棋盘上全都是白子。小蓝进行了 m 次操作&#xff0c;每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色&#xff0c;黑色棋子变为白色)请输出所有操作做完后棋盘上每个棋子的颜色。输入格式 输入的…

智能合约语言(eDSL)—— 使用rust实现eDSL的原理

为理解rust变成eDSL的实现原理&#xff0c;我们需要简单了解元编程与宏的概念,元编程被描述成一种计算机程序可以将代码看待成数据的能力&#xff0c;使用元编程技术编写的程序能够像普通程序在运行时更新、替换变量那样操作更新、替换代码。宏在 Rust 语言中是一种功能&#x…

3.19作业

1、思维导图 2、模拟面试题 1&#xff09;TCP通信中的三次握手和四次挥手 答&#xff1a;三次握手 客户端向服务器发送连接请求 服务器向客户端回复应答并向客户端发送连接请求 客户端回复服务端&#xff0c;并建立联系 四次挥手 进程a向进程b发送断开连接请求…

Linux 磁盘的一生

注意&#xff1a;实验环境都是使用VMware模拟 ​ 磁盘接口类型这里vm中是SCSI&#xff0c;扩展sata,ide(有时间可以看看或者磁盘的历史) ​ 总结&#xff1a;磁盘从有到无—类似于建房子到可以住 ————————————————————————————————————…

【linux】环境变量(进程二)

这里写目录标题 命令行参数&#xff1a;环境变量&#xff1a; 命令行参数&#xff1a; 不谈命令行参数就谈环境变量就是耍流氓。 相信我们在C语言阶段都在main函数里见过参数。 例如int main(int argc, char* argv[]) 这是什么东西呢&#xff1f; 话不多说我们直接打印一下看…

OSPF特殊区域(stub\nssa)

stub区域——只有1类、2类、3类&#xff1b;完全stub区域——只有1类、2类 NSSA区域&#xff1a;本区域将自己引入的外部路由发布给其他区域&#xff0c;但不需要接收其他区域的路由 在NSSA区域的路由器上&#xff0c;引入外部路由时&#xff0c;不会转换成5类LSA&#xff0c…

物资管理系统建设方案

二、 项目概述 2.1 项目背景 2.2 现状分析 2.2.1 业务现状 2.2.2 系统现状 三、 总体需求 3.1 系统范围 3.2 系统功能 3.3 用户分析 3.4 假设与依赖关系 四、 功能需求 五、 非功能性需求 5.1 用户界面需求 5.2 软硬件环境需求 5.3 产品质量需求 5.4 接口需求 …

第二门课:改善深层神经网络<超参数调试、正则化及优化>-超参数调试、Batch正则化和程序框架

文章目录 1 调试处理2 为超参数选择合适的范围3 超参数调试的实践4 归一化网络的激活函数5 将Batch Norm拟合进神经网络6 Batch Norm为什么会奏效&#xff1f;7 测试时的Batch Norm8 SoftMax回归9 训练一个SoftMax分类器10 深度学习框架11 TensorFlow 1 调试处理 需要调试的参…