轻松上手 —— 通过 RPM 包快速部署 NebulaGraph
前言
在当今大数据时代,处理复杂关系数据的需求与日俱增,图数据库应运而生并逐渐崭露头角。NebulaGraph 作为一款高性能、分布式且易扩展的图数据库,专为应对大规模图数据处理而精心打造。它不仅具备丰富的查询语言,还拥有强大高效的图计算能力,在社交网络分析、推荐系统、知识图谱构建等众多领域都有着广泛的应用,成为众多开发者和企业的首选技术方案。
在实际应用中,快速、稳定地部署 NebulaGraph 是充分发挥其优势的第一步。RPM 和 DEB 作为 Linux 系统下常见的安装包格式,为我们安装 NebulaGraph 提供了便捷途径。今天,我小支就将带领大家详细了解如何使用 RPM 包在 Linux 系统上高效安装 NebulaGraph,同时分享一些实用的优化建议以及常见问题的解决方案,助力大家轻松开启 NebulaGraph 的应用之旅。
一、环境准备:为 NebulaGraph 搭建稳固基石
(一)操作系统要求
NebulaGraph 目前仅支持在 Linux 系统下安装,且对操作系统版本有所限定,仅支持 CentOS 7.x、CentOS 8.x、Ubuntu 16.04、Ubuntu 18.04、Ubuntu 20.04 操作系统。为了让 NebulaGraph 发挥最佳性能,强烈推荐使用 64 位操作系统。例如,通过以下命令查看当前系统版本:
[root@instance2 ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@instance2 ~]#
如果用户使用的是国产化的 Linux 操作系统,需要安装企业版 NebulaGraph ,以确保兼容性和稳定性。
(二)硬件要求
- CPU:为保证系统的流畅运行,建议使用至少 2 核心的 CPU,若数据处理任务较为繁重,4 核心或以上的 CPU 将是更好的选择。
- 内存:内存方面,至少需要 8GB RAM,并且要根据实际数据量的大小适当增加,以避免因内存不足导致性能瓶颈。
- 磁盘空间:充足的磁盘空间是存储数据和日志文件的基础,务必提前规划好足够的空间。
通过以下命令可以查看当前系统的硬件信息:
[root@instance2 ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c8 Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz
[root@instance2 ~]# free -htotal used free shared buff/cache available
Mem: 31G 14G 6.3G 676K 10G 16G
Swap: 0B 0B 0B
[root@instance2 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos_caip122-root ext4 42G 27G 13G 68% /
devtmpfs devtmpfs 16G 0 16G 0% /dev
tmpfs tmpfs 16G 0 16G 0% /dev/shm
tmpfs tmpfs 16G 676K 16G 1% /run
tmpfs tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/sda2 ext4 190M 93M 83M 53% /boot
/dev/sdc1 xfs 100G 103M 100G 1% /redo
/dev/sdb1 xfs 100G 41G 60G 41% /data
(三)访问官方文档
在正式开始安装之前,强烈建议大家访问 NebulaGraph 的官方文档网站:使用 RPM/DEB 包安装 - NebulaGraph Database 手册Documentation for NebulaGraph Databasehttps://docs.nebula-graph.com.cn/3.8.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb/
官方文档是我们学习和使用 NebulaGraph 的重要指南,其中包含了详细的安装说明、操作指南以及各种技术细节,能够为我们在安装和后续使用过程中提供有力支持。
(四)软件依赖
在安装 NebulaGraph 之前,需要确认已安装一些必要的软件包。执行以下命令安装相关依赖:
[root@instance2 ~]# yum install -y epel-release
Loaded plugins: fastestmirror
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#7 - "Failed to connect to 2600:1f16:c1:5e01:4180:6610:5482:c1c0: Network is unreachable"
base | 3.6 kB 00:00:00
epel/x86_64/metalink | 4.7 kB 00:00:00
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras&infra=stock error was
14: curl#7 - "Failed to connect to 2600:1f16:c1:5e01:4180:6610:5482:c1c0: Network is unreachable"
extras | 2.9 kB 00:00:00
mysql-connectors-community | 2.6 kB 00:00:00
mysql-tools-community | 2.6 kB 00:00:00
mysql57-community | 2.6 kB 00:00:00
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock error was
14: curl#7 - "Failed to connect to 2600:1f16:c1:5e01:4180:6610:5482:c1c0: Network is unreachable"
updates | 2.9 kB 00:00:00
Determining fastest mirrors* base: mirrors.bupt.edu.cn* epel: repo.jing.rocks* extras: mirrors.bupt.edu.cn* updates: mirrors.bupt.edu.cn
Package epel-release-7-14.noarch already installed and latest version
Nothing to do
[root@instance2 ~]# [root@instance2 ~]# yum install -y wget curl tar gcc make cmake openssl-devel python3-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.bupt.edu.cn* epel: repo.jing.rocks* extras: mirrors.bupt.edu.cn* updates: mirrors.bupt.edu.cn
Package wget-1.14-18.el7_6.1.x86_64 already installed and latest version
Package gcc-4.8.5-44.el7.x86_64 already installed and latest version
Package 1:openssl-devel-1.0.2k-26.el7_9.x86_64 already installed and latest version
Resolving Dependencies
这些软件包是 NebulaGraph 正常安装和运行的基础,安装过程中需确保网络连接稳定,以便顺利下载相关软件包。
(五)下载安装包
- 阿里云 OSS 下载 release 版本
NebulaGraph 的安装包可以从阿里云 OSS 下载,URL 格式如下//Centos 7 https://oss-cdn.nebula-graph.com.cn/package/<release_version>/nebula-graph-<release_version>.el7.x86_64.rpm
- 使用 wget 命令进行下载,示例如下:
wget https://oss-cdn.nebula-graph.com.cn/package/3.8.0/nebula-graph-3.8.0.el7.x86_64.rpm
wget https://oss-cdn.nebula-graph.com.cn/package/3.8.0/nebula-graph-3.8.0.el7.x86_64.rpm.sha256sum.txt
执行上述命令后,系统会从指定链接下载对应的安装包及校验文件,下载过程中会显示下载进度和速度等信息:
[root@instance2 soft]# wget https://oss-cdn.nebula-graph.com.cn/package/3.8.0/nebula-graph-3.8.0.el7.x86_64.rpm
--2025-01-07 14:07:36-- https://oss-cdn.nebula-graph.com.cn/package/3.8.0/nebula-graph-3.8.0.el7.x86_64.rpm
Resolving oss-cdn.nebula-graph.com.cn (oss-cdn.nebula-graph.com.cn)... 220.181.166.204
Connecting to oss-cdn.nebula-graph.com.cn (oss-cdn.nebula-graph.com.cn)|220.181.166.204|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 64791652 (62M) [application/x-redhat-package-manager]
Saving to: ‘nebula-graph-3.8.0.el7.x86_64.rpm’100%[======================================================================================>] 64,791,652 7.54MB/s in 10s 2025-01-07 14:07:46 (6.12 MB/s) - ‘nebula-graph-3.8.0.el7.x86_64.rpm’ saved [64791652/64791652][root@instance2 soft]# wget https://oss-cdn.nebula-graph.com.cn/package/3.8.0/nebula-graph-3.8.0.el7.x86_64.rpm.sha256sum.txt
--2025-01-07 14:08:06-- https://oss-cdn.nebula-graph.com.cn/package/3.8.0/nebula-graph-3.8.0.el7.x86_64.rpm.sha256sum.txt
Resolving oss-cdn.nebula-graph.com.cn (oss-cdn.nebula-graph.com.cn)... 220.181.166.204
Connecting to oss-cdn.nebula-graph.com.cn (oss-cdn.nebula-graph.com.cn)|220.181.166.204|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 125 [text/plain]
Saving to: ‘nebula-graph-3.8.0.el7.x86_64.rpm.sha256sum.txt’100%[======================================================================================>] 125 --.-K/s in 0s 2025-01-07 14:08:06 (923 KB/s) - ‘nebula-graph-3.8.0.el7.x86_64.rpm.sha256sum.txt’ saved [125/125][root@instance2 soft]#
下载完成后,即可进行下一步的安装操作。
二、安装 NebulaGraph:步步为营,搭建数据基石
(一)创建指定安装目录
为了便于管理,我们先创建一个指定的安装目录。执行以下命令:
[root@instance2 opt]# mkdir -p app/nebula-graph
[root@instance2 opt]# cd app/nebula-graph/
[root@instance2 nebula-graph]# pwd
/opt/app/nebula-graph
[root@instance2 nebula-graph]#
上述命令创建了一个 /opt/app/nebula-graph 目录,并进入该目录,后续将在此目录下安装 NebulaGraph。
(二)安装 RPM 包
使用 rpm 命令安装下载的 RPM 包。如果要安装到 /opt/app/nebula-graph 目录,可以执行以下命令:
[root@instance2 soft]# ls
nebula-graph-3.8.0.el7.x86_64.rpm nebula-graph-3.8.0.el7.x86_64.rpm.sha256sum.txt openssh-rpms
[root@instance2 soft]# rpm -ivh --prefix=/opt/app/nebula-graph nebula-graph-3.8.0.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...1:nebula-graph-3.8.0-1 ################################# [100%]
[root@instance2 soft]#
其中,--prefix 为可选项,用于指定安装路径。若不设置该选项,系统会将 NebulaGraph 安装到默认路径 /usr/local/nebula/。例如,要在默认路径下安装 3.8.0 版本的 RPM 包,可运行如下命令:
sudo rpm -ivh nebula-graph-3.8.0.el7.x86_64.rpm
安装过程中,系统会显示安装进度和相关信息,安装完成后,NebulaGraph 的相关文件和目录结构就会按照指定路径或默认路径生成。
(三)配置 NebulaGraph
安装完成后,默认情况下 NebulaGraph 的配置文件位于 /etc/nebula/ 目录下(若安装到自定义路径,配置文件位置会相应改变)。我们可以根据实际需求编辑这些配置文件来调整服务参数,比如修改监听端口、设置集群模式等。以编辑 /opt/app/nebula-graph/etc 目录下的 nebula-graphd.conf 文件为例:
[root@instance2 opt]# cd app/nebula-graph/
[root@instance2 nebula-graph]# ls
bin etc scripts share
[root@instance2 nebula-graph]# cd etc/
[root@instance2 etc]# ls
nebula-graphd.conf nebula-metad.conf.default nebula-storaged.conf.production
nebula-graphd.conf.default nebula-metad.conf.production nebula-storaged-listener.conf.production
nebula-graphd.conf.production nebula-storaged.conf
nebula-metad.conf nebula-storaged.conf.default
[root@instance2 etc]# vim nebula-graphd.conf
在配置文件中,我们可以根据官方文档的指导,对各项参数进行合理设置,以满足不同的业务场景和性能需求。配置完成后,保存并退出编辑器,即可完成配置文件的修改。
三、启动 NebulaGraph 服务:让数据引擎运转起来
(一)使用脚本管理服务
NebulaGraph 提供了脚本 nebula.service 来方便地管理服务,包括启动、停止、重启、中止和查看等操作。nebula.service 的默认路径是 /usr/local/nebula/scripts,如果之前修改过安装路径,请使用实际路径。该脚本的语法参数及说明如下:
参数 | 说明 |
---|---|
-v | 显示详细调试信息 |
-c | 指定配置文件路径,默认路径为 /usr/local/nebula/etc/ |
start | 启动服务 |
stop | 停止服务 |
restart | 重启服务 |
kill | 中止服务 |
status | 查看服务状态 |
metad | 管理 Meta 服务 |
graphd | 管理 Graph 服务 |
storaged | 管理 Storage 服务 |
all | 管理所有服务 |
(二)查询服务状态
在启动服务之前,我们可以先查询 NebulaGraph 服务的当前状态。执行以下命令:
[root@instance2 etc]# /opt/app/nebula-graph/scripts/nebula.service status all
[INFO] nebula-metad(7458486): Exited
[INFO] nebula-graphd(7458486): Exited
[INFO] nebula-storaged(7458486): Exited
[root@instance2 etc]#
从上述结果可以看出,当前服务处于未启动状态。如果安装在默认路径下,查询命令为:
sudo /usr/local/nebula/scripts/nebula.service status all
(三)启动 NebulaGraph 服务
使用如下命令启动所有 NebulaGraph 进程:
[root@instance2 etc]# /opt/app/nebula-graph/scripts/nebula.service start all
[INFO] Starting nebula-metad...
[INFO] Done
[INFO] Starting nebula-graphd...
[INFO] Done
[INFO] Starting nebula-storaged...
[INFO] Done
[root@instance2 etc]#
执行该命令后,脚本会依次启动 Meta 服务、Graph 服务和 Storage 服务,并在每一步完成时输出相应的 “Done” 信息,表明服务启动成功。若启动过程中出现错误,需根据错误提示排查原因,比如检查配置文件是否正确、依赖服务是否正常运行等。
(四)停止 NebulaGraph 服务
停止 NebulaGraph 服务时,务必不要使用 kill -9
命令强制终止进程,因为这可能在极小概率下导致数据丢失。正确的做法是执行如下命令:
[root@instance2 nebula - graph]# /opt/app/nebula - graph/scripts/nebula.service stop all
[INFO] Stopping nebula - metad...
[INFO] Done
[INFO] Stopping nebula - graphd...
[INFO] Done
[INFO] Stopping nebula - storaged...
[INFO] Done
[root@instance2 nebula - graph]#
该命令会按照顺序安全地停止各个服务,确保数据的完整性和一致性。
(五)查看 NebulaGraph 服务
执行如下命令可查看 NebulaGraph 服务状态:
[root@instance2 etc]# /opt/app/nebula - graph/scripts/nebula.service status all
如果返回如下结果,则表示 NebulaGraph 服务正常运行:
[INFO] nebula - metad(33fd35e): Running as 29020, Listening on 9559
[INFO] nebula - graphd(33fd35e): Running as 29095, Listening on 9669
[WARN] nebula - storaged after v3.0.0 will not start service until it is added to cluster.
[WARN] See Manage Storage hosts:ADD HOSTS in https://docs.nebula - graph.io/
[INFO] nebula - storaged(33fd35e): Running as 29147, Listening on 9779
需要注意的是,正常启动 NebulaGraph 后,nebula - storaged 进程的端口显示红色属于正常现象。这是因为 nebula - storaged 在启动流程中会等待 nebula - metad 添加当前 Storage 服务,当前 Storage 服务收到 Ready 信号后才会正式启动服务。从 3.0.0 版本开始,在配置文件中添加的 Storage 节点无法直接读写,配置文件的作用仅仅是将 Storage 节点注册至 Meta 服务中。必须使用 ADD HOSTS
命令后,才能正常读写 Storage 节点。更多信息,可参见管理 Storage 主机相关文档。
(六)启动报错及解决办法
- 启动时报错 Storage hosts: 服务异常
如果返回类似如下结果,表示 NebulaGraph 服务异常:
[root@instance2 etc]# /opt/app/nebula - graph/scripts/nebula.service status all
[INFO] nebula - metad(7458486): Running as 26056, Listening on 9559
[INFO] nebula - graphd(7458486): Running as 26079, Listening on 9669
[WARN] nebula - storaged after v3.0.0 will not start service until it is added to cluster.
[WARN] See Manage Storage hosts:ADD HOSTS in https://docs.nebula - graph.io/
[INFO] nebula - storaged(7458486): Running as 26101, Listening on 9779
[root@instance2 etc]#
此时,可以根据异常服务信息进一步排查,或者在 NebulaGraph 社区寻求帮助。
2. 参考官方文档解决
可查阅官方文档;管理 Storage 主机 - NebulaGraph Database 手册Documentation for NebulaGraph Databasehttps://docs.nebula-graph.com.cn/3.8.0/4.deployment-and-installation/manage-storage-host/
获取解决方案。例如,当查询状态出现 “OFFLINE” 节点失败时:
(root@nebula) [(none)]> SHOW HOSTS STORAGE;
+----------------+------+-----------+-----------+--------------+---------+
| Host | Port | Status | Role | Git Info Sha | Version |
+----------------+------+-----------+-----------+--------------+---------+
| "127.0.0.1" | 9779 | "OFFLINE" | "STORAGE" | "" | |
+----------------+------+-----------+-----------+--------------+---------+
Got 2 rows (time spent 1.722ms/2.445398ms)Tue, 07 Jan 2025 15:16:46 CST
(root@nebula) [(none)]>
- 向集群中增加 Storage 主机
可以通过执行以下命令向集群中增加 Storage 主机: -
(root@nebula) [(none)]> ADD HOSTS 127.0.0.1:9779; Execution succeeded (time spent 1.593ms/2.152096ms)Tue, 07 Jan 2025 15:16:40 CST(root@nebula) [(none)]>
- 再次检查状态
再次查看服务状态:
[root@instance2 nebula - graph]# /opt/app/nebula - graph/scripts/nebula.service status all
[INFO] nebula - metad(7458486): Running as 43288, Listening on 9559
[INFO] nebula - graphd(7458486): Running as 43320, Listening on 9669
[INFO] nebula - storaged(7458486): Running as 43408, Listening on 9779
[root@instance2 nebula - graph]#
同时在客户端查询:
(root@nebula) [(none)]> SHOW HOSTS STORAGE;
+-------------+------+----------+-----------+--------------+---------+
| Host | Port | Status | Role | Git Info Sha | Version |
+-------------+------+----------+-----------+--------------+---------+
| "127.0.0.1" | 9779 | "ONLINE" | "STORAGE" | "7458486" | "3.8.0" |
+-------------+------+----------+-----------+--------------+---------+
Got 1 rows (time spent 1.198ms/1.961314ms)Tue, 07 Jan 2025 15:21:41 CST(root@nebula) [(none)]>
可以看到 Storage 主机状态变为 “ONLINE”,表明问题已解决。NebulaGraph 服务由 Meta 服务、Graph 服务和 Storage 服务共同提供,这三种服务的配置文件都保存在安装目录的 etc 目录内,默认路径为 /usr/local/nebula/etc/,用户可以检查相应的配置文件排查问题。
四、安装图形化工具 nebula - console:便捷操作 NebulaGraph
NebulaGraph 支持多种类型的客户端,包括命令行客户端、可视化界面客户端和流行编程语言客户端。详情可参见客户端列表。这里我们重点介绍原生命令行客户端 nebula - console 的安装和使用。
(一)下载 nebula - console
nebula - console 是 NebulaGraph 的命令行客户端工具。我们可以从 GitHub 的发布页面下载对应版本的二进制执行包。版本相同的 NebulaGraph Console 和 NebulaGraph 兼容程度最高,版本不同的 NebulaGraph Console 连接 NebulaGraph 时,可能会有兼容问题,或者无法连接并报错 “incompatible version between client and server”。在 Assets 区域找到机器运行所需的二进制文件,下载文件到机器上。
(二)重命名 nebula - console
为了方便使用,可以重命名下载的文件为 nebula - console。操作如下:
[root@instance2 nebula - graph]# ls
bin data etc logs pids scripts share
[root@instance2 nebula - graph]# ls
bin data etc logs nebula - console - linux - amd64 - v3.8.0 pids scripts share
[root@instance2 nebula - graph]# mv nebula - console - linux - amd64 - v3.8.0 nebula - console
[root@instance2 nebula - graph]# ls
bin data etc logs nebula - console pids scripts share
[root@instance2 nebula - graph]#
(三)授予 nebula - console 权限
在运行 NebulaGraph Console 的机器上执行如下命令,为用户授予 nebula - console 文件的执行权限:
[root@instance2 nebula - graph]# ls
bin data etc logs nebula - console pids scripts share
[root@instance2 nebula - graph]# chmod +x nebula - console
[root@instance2 nebula - graph]# ls
bin data etc logs nebula - console pids scripts share
[root@instance2 nebula - graph]#
或者执行 $ chmod 111 nebula - console
也可达到相同效果。在命令行界面中,切换工作目录至 nebula - console 文件所在目录,以便后续执行连接操作。
五、连接 NebulaGraph:开启数据探索之旅
(一)执行如下命令连接 NebulaGraph
使用以下命令连接 NebulaGraph:
[root@instance2 nebula - graph]# ls
bin cluster.id data etc logs nebula - console pids scripts share
[root@instance2 nebula - graph]# ./nebula - console --addr 127.0.0.1 --port 9669 -u root -p nebulaWelcome!(root@nebula) [(none)]>
上述命令中的参数说明如下:
参数 | 说明 |
---|---|
-h/-help | 显示帮助菜单 |
-addr/-address | 设置要连接的 Graph 服务的 IP 或主机名。默认地址为 127.0.0.1 |
-P/-port | 设置要连接的 Graph 服务的端口。默认端口为 9669 |
-u/-user | 设置 NebulaGraph 账号的用户名。未启用身份认证时,可以使用任意已存在的用户名(默认为 root) |
-p/-password | 设置用户名对应的密码。未启用身份认证时,密码可以填写任意字符 |
-t/-timeout | 设置整数类型的连接超时时间。单位为毫秒,默认值为 120 |
-e/-eval | 设置字符串类型的 nGQL 语句。连接成功后会执行一次该语句并返回结果,然后自动断开连接 |
-f/-file | 设置存储 nGQL 语句的文件的路径。连接成功后会执行该文件内的 nGQL 语句并返回结果,执行完毕后自动断开连接 |
-enable_ssl | 连接 NebulaGraph 时使用 SSL 加密 |
-ssl_root_ca_path | 指定 CA 证书的存储路径 |
-ssl_cert_path | 指定 CRT 证书的存储路径 |
-ssl_private_key_path | 指定私钥文件的存储路径 |
(二)验证安装
为了验证 NebulaGraph 是否成功安装并正常工作,可以尝试连接到图数据库并执行简单的查询。这里我们使用官方提供的命令行工具 nebula - console:
[root@instance2 nebula - graph]# ./nebula - console --addr 127.0.0.1 --port 9669 -u root -p nebulaWelcome!(root@nebula) [(none)]> SHOW HOSTS;
+-------------+------+----------+--------------+----------------------+------------------------+---------+
| Host | Port | Status | Leader count | Leader distribution | Partition distribution | Version |
+-------------+------+----------+--------------+----------------------+------------------------+---------+
| "127.0.0.1" | 9779 | "ONLINE" | 0 | "No valid partition" | "No valid partition" | "3.8.0" |
+-------------+------+----------+--------------+----------------------+------------------------+---------+
Got 1 rows (time spent 1.732ms/2.91408ms)Wed, 08 Jan 2025 11:18:14 CST(root@nebula) [(none)]>
如果能够顺利创建空间、定义标签并插入节点,则说明安装成功。例如,创建空间的命令如下:
(root@nebula) [(none)]> CREATE SPACE IF NOT EXISTS my_space (vid_type = FIXED_STRING(30));
Execution succeeded (time spent 1.542ms/2.076204ms)
(root@nebula) [(none)]>
定义标签和插入节点的命令可参考官方文档中的 nGQL 语法进行操作。若都能正常执行且返回预期结果,那么恭喜你,NebulaGraph 已成功安装并可正常使用。
六、安装 NebulaGraph Studio:可视化数据洞察
NebulaGraph Studio 是 NebulaGraph 的可视化工具,它为用户提供了直观便捷的数据管理和查询界面。我们可以从官方 CDN 地址下载 RPM 包并安装。
(一)下载 NebulaGraph Studio
使用 wget 命令下载:
wget https://oss - cdn.nebula - graph.com.cn/nebula - graph - studio/3.8.0/nebula - graph - studio - 3.8.0.x86_64.rpm
下载完成后,执行安装命令:
rpm -ivh --prefix=/opt/app/nebula - graph - studio nebula - graph - studio - 3.8.0.x86_64.rpm
下载过程示例如下:
[root@instance2 soft]# wget https://oss - cdn.nebula - graph.com.cn/nebula - graph - studio/3.8.0/nebula - graph - studio - 3.8.0.x86_64.rpm
--2025-01-08 10:13:04-- https://oss - cdn.nebula - graph.com.cn/nebula - graph - studio/3.8.0/nebula - graph - studio - 3.8.0.x86_64.rpm
Resolving oss - cdn.nebula - graph.com.cn (oss - cdn.nebula - graph.com.cn)... 220.181.167.219
Connecting to oss - cdn.nebula - graph.com.cn (oss - cdn.nebula - graph.com.cn)|220.181.167.219|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 27310960 (26M) [application/x - rpm]
Saving to: ‘nebula - graph - studio - 3.8.0.x86_64.rpm’100%[======================================================================================>] 27,310,960 15.0MB/s in 1.7s 2025-01-08 10:13:07 (15.0 MB/s) - ‘nebula - graph - studio - 3.8.0.x86_64.rpm’ saved [27310960/27310960][root@instance2 soft]#
(二)安装 NebulaGraph Studio
执行安装命令后,系统会自动进行安装:
[root@instance2 soft]# rpm -ivh --prefix=/opt/app/nebula - graph - studio nebula - graph - studio - 3.8.0.x86_64.rpm
Preparing... ################################# [100%]
Start installing NebulaGraph Studio now...
Updating / installing...1:nebula - graph - studio - 3.8.0-1 ################################# [100%]
NebulaGraph Studio has been installed.
Created symlink from /etc/systemd/system/multi - user.target.wants/nebula - graph - studio.service to /usr/lib/systemd/system/nebula - graph - studio.service.
NebulaGraph Studio started automatically.
[root@instance2 soft]#
如果希望安装在默认路径下,可执行:
sudo rpm -ivh nebula - graph - studio - 3.8.0.x86_64.rpm
(三)浏览器中访问登录
在浏览器地址栏输入http://127.0.0.1:7001/login
,若页面成功加载出 NebulaGraph Studio 的登录界面,意味着部署和启动顺利完成。首次登录时,需根据系统提示设置用户名和密码。登录成功后,将进入 NebulaGraph Studio 的主界面,在这里可以直观地管理图空间、执行查询语句、可视化展示图数据结构等操作。
(四)报错及解决办法
- 安装报错
安装过程中可能会遇到报错情况,例如:
[root@instance2 soft]# rpm -ivh --prefix=/opt/app/nebula - graph - studio nebula - graph - studio - 3.8.0.x86_64.rpm
Preparing... ################################# [100%]
/var/tmp/rpm - tmp.w5nIeb: line 2: type: lsof: not found
Install failed for the reason: the command lsof required
error: %pre(nebula - graph - studio - 3.8.0 - 1.x86_64) scriptlet failed, exit status 1
error: nebula - graph - studio - 3.8.0 - 1.x86_64: install failed
[root@instance2 soft]#
上述报错提示缺少lsof
命令。
2. 报错缺少 lsof,安装 lsof
为解决此问题,可通过包管理器安装lsof
。在 CentOS 系统上,执行以下命令:
[root@instance2 soft]# yum install lsof
安装过程中,系统会自动解析依赖关系并下载安装lsof
及其相关依赖包。安装完成后,即可解决因缺少lsof
导致的安装失败问题。
3. 重新尝试安装 nebula - graph - studio
安装好lsof
后,再次执行 NebulaGraph Studio 的安装命令:
[root@instance2 soft]# rpm -ivh --prefix=/opt/app/nebula - graph - studio nebula - graph - studio - 3.8.0.x86_64.rpm
此时,安装过程将顺利进行,NebulaGraph Studio 将成功安装到指定路径或默认路径下。
性能优化建议
- 调优 JVM 参数:NebulaGraph 的 Graph 服务基于 Java 开发,合理调整 JVM 的堆大小和其他相关参数对性能提升效果显著。例如,通过修改
JAVA_OPT
环境变量来调整堆内存大小,可参考以下命令: - 上述命令将 JVM 的初始堆内存和最大堆内存均设置为 4GB,具体数值应根据服务器实际内存资源和业务负载进行调整。若业务数据量较大且查询复杂,适当增大堆内存可减少 GC(垃圾回收)次数,提升服务响应速度。
- 合理规划分区与副本:根据业务特点和数据分布情况精心设计分区策略和副本因子。对于读多写少的业务场景,可适当增加副本数量以提高读性能;对于写操作频繁的场景,则需平衡分区数量和副本数量,避免因过多副本同步导致写性能下降。例如,在创建图空间时可指定分区数量和副本因子:
-
CREATE SPACE my_space (vid_type = FIXED_STRING(30), partition_num = 16, replica_factor = 3);
- 上述命令创建了一个名为
my_space
的图空间,设置了 16 个分区和 3 个副本,可根据实际业务需求灵活调整这些参数。 - 监控与报警:部署监控系统实时跟踪 NebulaGraph 的运行状态至关重要。可使用 NebulaGraph 自带的监控指标,也可集成第三方监控工具如 Prometheus 和 Grafana。通过监控 CPU 使用率、内存使用率、磁盘 I/O、网络流量、查询响应时间等关键指标,及时发现潜在问题。同时,设置合理的报警阈值,当指标超出阈值时,通过邮件、短信等方式及时通知运维人员,以便快速响应和处理问题,保障系统的稳定性和可用性。
常见问题及解决方案
- 无法启动服务
- 检查日志文件:NebulaGraph 的日志文件位于
/var/log/nebula/
目录下(安装路径自定义时,日志路径可能不同)。通过查看nebula - metad.log
、nebula - graphd.log
和nebula - storaged.log
文件中的错误信息,能够定位服务启动失败的原因。例如,若nebula - graphd.log
中出现 “Failed to bind to port 9669: Address already in use”,则表明 9669 端口已被其他进程占用,需要停止占用该端口的进程或修改 NebulaGraph 的 Graph 服务端口配置。 - 确认防火墙规则:确保防火墙允许 NebulaGraph 所需的端口通信。NebulaGraph 默认使用 9559 端口用于 Meta 服务、9669 端口用于 Graph 服务、9779 端口用于 Storage 服务。在 CentOS 系统上,可通过以下命令开放端口:
- 检查日志文件:NebulaGraph 的日志文件位于
firewall - cmd --zone=public --add - port=9559/tcp --permanent
firewall - cmd --zone=public --add - port=9669/tcp --permanent
firewall - cmd --zone=public --add - port=9779/tcp --permanent
firewall - cmd --reload
- 连接超时
- 检查白名单设置:确保客户端 IP 地址已被正确添加到 NebulaGraph 的白名单中。若未启用身份认证,可通过修改
nebula - graphd.conf
配置文件中的--whitelist
参数来添加允许连接的 IP 地址段。例如:
- 检查白名单设置:确保客户端 IP 地址已被正确添加到 NebulaGraph 的白名单中。若未启用身份认证,可通过修改
--whitelist="192.168.1.0/24,10.0.0.0/8"
上述配置允许192.168.1.0
网段和10.0.0.0
网段的 IP 地址连接到 Graph 服务。
- 优化查询复杂度或分批提交请求:如果查询语句过于复杂,可能导致连接超时。尝试简化查询逻辑,或者将大查询拆分成多个小查询分批提交。例如,对于一个涉及大量数据扫描和复杂关联的查询,可通过增加索引、减少不必要的过滤条件等方式优化查询性能;对于批量插入数据操作,可采用分批提交的方式,避免一次性提交过多数据导致连接超时。
- 性能瓶颈
- 分析慢查询日志:NebulaGraph 的 Graph 服务会记录慢查询日志,通过分析
slow_query.log
文件,识别出执行时间较长的查询语句。针对这些慢查询,可通过优化查询语句、添加合适的索引、调整查询执行计划等方式进行优化。例如,若查询语句频繁进行全表扫描,可根据查询条件为相关字段添加索引,以加快查询速度。 - 增加硬件资源或调整配置参数:若系统资源(如 CPU、内存、磁盘 I/O)已接近饱和,可考虑增加硬件资源,如升级 CPU、增加内存或更换高速磁盘。同时,也可通过调整 NebulaGraph 的配置参数来优化性能。例如,适当增加
nebula - storaged.conf
中的--rocksdb_max_background_jobs
参数值,可提高 Storage 服务的 I/O 并发处理能力,但需根据实际硬件资源情况谨慎调整,避免过度消耗资源导致系统不稳定。
- 分析慢查询日志:NebulaGraph 的 Graph 服务会记录慢查询日志,通过分析
总结
本篇博客小支同学详细介绍了如何使用 RPM 包在 CentOS 系统上安装 NebulaGraph,并简要介绍了其配置、启动、连接以及相关工具(nebula - console 和 NebulaGraph Studio)的安装使用方法,同时分享了性能优化建议和常见问题解决方案。NebulaGraph 作为一款开源、分布式图数据库,具备高性能、高可用性和可扩展性等优势,能够出色地处理超大规模数据集和复杂数据关系。通过本文的介绍,相信读者已经掌握了在 CentOS 系统上安装和使用 NebulaGraph 的基本技能,为进一步深入学习和应用打下了坚实基础。希望这篇文章能够帮助大家更好地理解和掌握 NebulaGraph 的安装过程。随着实践经验的积累,相信友友们会发现更多有趣的功能和技术细节,从而进一步挖掘图数据库的巨大潜力。
- 安装流程:先介绍 NebulaGraph 优势及安装意义,接着阐述安装前准备工作,如确认系统版本、安装依赖软件包、从阿里云 OSS 下载安装包。随后详细说明创建安装目录、使用 rpm 命令安装、编辑配置文件的操作步骤。
- 服务管理:利用 nebula.service 脚本管理服务,可进行启动、停止、查看状态等操作,还介绍了启动报错时的解决办法,如参考官方文档、添加 Storage 主机等。
- 工具使用:介绍命令行客户端 nebula-console 和可视化工具 NebulaGraph Studio 的安装、配置及使用方法,包括下载、重命名、授权以及连接 NebulaGraph 的操作,还提及安装 NebulaGraph Studio 时可能遇到的问题及解决办法。
- 优化与问题解决:分享性能优化建议,如调优 JVM 参数、规划分区与副本、部署监控系统等。针对常见问题,如无法启动服务、连接超时、性能瓶颈等,给出检查日志文件、确认防火墙规则、优化查询等解决方案。
注:在实际应用过程中,若遇到更多具体的问题或需要进一步的帮助,请友友们随时查阅官方文档或在 NebulaGraph 社区寻求支持~
相关文章:
轻松上手 —— 通过 RPM 包快速部署 NebulaGraph
前言 在当今大数据时代,处理复杂关系数据的需求与日俱增,图数据库应运而生并逐渐崭露头角。NebulaGraph 作为一款高性能、分布式且易扩展的图数据库,专为应对大规模图数据处理而精心打造。它不仅具备丰富的查询语言,还拥有强大高效…...
nginx作为下载服务器配置
一、Nginx 作为下载服务器配置笔记 基本配置指令 server块配置: 在 Nginx 的配置文件(通常是/etc/nginx/nginx.conf或在/etc/nginx/conf.d/目录下的特定配置文件)中,首先需要定义一个server块来监听特定的端口并处理下载请求。例如…...
第六课:数据存储三剑客:CSV/JSON/MySQL
在Python的数据存储与处理领域,CSV、JSON和MySQL被广大开发者誉为“数据存储三剑客”。它们各自在不同的场景下发挥着重要作用,无论是简单的数据交换、轻量级的数据存储,还是复杂的关系型数据库管理,都能找到它们的身影。本文将详…...
Dify 开源大语言模型应用开发平台使用(一)
文章目录 一、创建锂电池专业知识解答应用1.1 应用初始化二、核心功能模块详解2.1 知识库构建2.2 工作流与节点编排节点类型说明工作流设计示例:锂电池选型咨询2.3 变量管理三、测试与调试3.1 单元测试3.2 压力测试3.3 安全验证四、部署与优化建议4.1 部署配置4.2 持续优化结论…...
PyQt高亮代码
PyQt高亮代码 安装 Pygments支持的格式支持的样式详解参考 Qt中使用 安装 Pygments Pygments 是Python中的一个高亮代码的包,挺好用的 pip install Pygments支持的格式 支持的格式比较多,不列出来了 # coding:utf-8 from pygments.lexers import get_all…...
小白学Agent技术[1]
文章目录 课程地址Agent介绍原理架构任务规划记忆工具使用程序开发范式的变化Agent开发注意事项 课程地址 Agent课程地址 Agent介绍 AI Agent(人工智能代理、AI智能体),一种模拟人类智能行为的人工智能系统,以大模型语言&#…...
以商业思维框架为帆,驭创业浪潮前行
创业者踏入商海,如同航海家奔赴未知海域,需有清晰的思维罗盘指引方向。图中“为什么—用什么—怎么做—何人做—投入产出”的商业框架,正是创业者破解商业谜题的密钥,从需求洞察到落地执行,为创业之路铺就逻辑基石。 …...
开源宝藏 Tigshop,开启电商新征程
在电商竞争愈发激烈的当下,一个强大且适配的商城系统是商家制胜的法宝。 Tigshop官网:Tigshop官网 - 开源商城系统Tigshop开源商城系统,支持b2b2c、多商户、多店铺、商家入驻、分销系统、跨境电商、连锁商城等解决方案,免费下载&…...
java多线程实现方式
目录 1. 继承 Thread 类 2. 实现 Runnable 接口 3. 实现 Callable 接口 4. 使用线程池 5. 使用 CompletableFuture(Java 8) 6. 使用 ForkJoinPool(Java 7) 7. 使用 Timer 和 TimerTask 8. 使用 ScheduledExecutorService …...
windows:curl: (60) schannel: SEC_E_UNTRUSTED_ROOT (0x80090325)
目录 1. git update-git-for-windows 报错2. 解决方案2.1. 更新 CA 证书库2.2. 使用 SSH 连接(推荐)2.3 禁用 SSL 验证(不推荐) 1. git update-git-for-windows 报错 LenovoLAPTOP-EQKBL89E MINGW64 /d/YHProjects/omni-channel-…...
python:pymunk + pygame 模拟六边形内小球弹跳运动
向 chat.deepseek.com 提问:编写 python 程序,用 pymunk, 有一个正六边形,围绕中心点缓慢旋转,六边形内有一个小球,六边形的6条边作为墙壁,小球受重力和摩擦力、弹力影响,模拟小球弹跳运动&…...
vulnhub靶场之【digitalworld.local系列】的vengeance靶机
前言 靶机:digitalworld.local-vengeance,IP地址为192.168.10.10 攻击:kali,IP地址为192.168.10.6 kali采用VMware虚拟机,靶机选择使用VMware打开文件,都选择桥接网络 这里官方给的有两种方式ÿ…...
shiro550-cve-2016-4437复现
shiro550-cve-2016-4437 复现环境:docker desktop idea远程调试jdk版本必须与容器里的jdk1.8.0_102 匹配上,下载资源翻我CC1链那篇文章 注意burpsuite的proxy listeners端口改一下别跟docker容器的重了。 ysoserial工具:https://github.c…...
【DeepSeek】Ubuntu快速部署DeepSeek(Ollama方式)
文章目录 人人都该学习的DeepSeekDeepSeek不同版本功能差异DeepSeek与硬件直接的关系DeepSeek系统兼容性部署方式选择部署步骤(Ollama方式)1.选定适合的deepseek版本2.环境准备3.安装Ollama4.部署deepseek5.测试使用 人人都该学习的DeepSeek DeepSeek 作…...
Windows 版本Nmap使用报错“无法打开device eth0”
背景 使用nmap在win10上进行扫描工作正常,换到win server 2012 r2以后,扫描报错“无法打开device eth0” 使用了重装、重启大法,未彻底解决 PS:这台服务器之前完装过wireshark,实际已经安装了npcap 解决步骤 查询了…...
java字符串
字符串构造 1.使用常量串构造 String h1 "hello";System.out.println(h1); 2.new对象 String h2 new String("hello");System.out.println(h2); 3.使用字符数组构造 char[] array {h,e,l,l,o};String h3 new String(array);System.out.println(h3);…...
Uniapp 页面返回不刷新?两种方法防止 onShow 触发多次请求!
目录 前言1. 变量(不生效)2. 延迟(生效) 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 在 Uniapp 中,使用 onShow() 钩子来监听页面显示࿰…...
鸿蒙生态日日新,夸克、顺丰速运、驾校一点通等多款应用功能更新
3月5日鸿蒙生态日日新PLOG:吉事办、健康甘肃等政务服务App上架原生鸿蒙应用市场;夸克、顺丰速运、驾校一点通等多款应用功能更新。...
库制作与原理
什么是库 库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入…...
《量子Java:从超导芯片到光子计算的编程革命》——解析Google量子AI中心的混合架构,揭秘如何用Java控制量子比特!
标题:《量子Java:从超导芯片到光子计算的编程革命》——解析Google量子AI中心的混合架构,揭秘如何用Java控制量子比特! 引言:当Java代码撞上量子叠加态——Google量子AI中心的0.003秒奇迹 Google量子AI中心首次实现Java程序对1200量子比特光量子芯片的实时控制,仅耗时3毫…...
音频3A测试--AGC(自动增益)和NS(降噪)测试
一、测试前期准备 一台电脑:用于作为控制播放和录制数据; 一台音频处理器(调音台):控制每个通道播放的数据,如噪声、人工头、模拟设备B输入的数据、收集标准麦克风,设备A处理完成的数据; 四个高保真音响&…...
点云数据处理--splat转3dtiles
文章目录 处理流程简介核心功能实现数据读取与格式转换数据读取splat转gltf 点云数据分割定义四叉树递归生成3dtiles瓦片 生成tileset.json递归生成tileset.json计算box 主函数调用渲染 下一步工作性能优化渲染效果调优其他 源码地址: github 处理流程简介 基本流…...
deepseek使用记录18——艺术的追问
一 好的,基于前面学习结果,再写一篇有艺术美的文章 《美的起义》 凌晨四点的茶摊在电子支付二维码下苏醒,蒸腾的水汽中浮动着八百年前建盏的釉色。老板娘把栀子花插在共享单车车筐里,花瓣的弧度与北宋汝窑青瓷的冰裂纹暗合&…...
ArcGIS操作:13 生成最小外接矩阵
应用情景:筛选出屋面是否能放下12*60m的长方形,作为起降场候选点(一个不规则的形状内,判断是否能放下指定长宽的长方形) 1、面积初步筛选 Area ≥ 720 ㎡ 面积计算见 2、打开 ArcToolbox → Data Management Tools …...
Manus AI Agent 技术解读:架构、机制与竞品对比
目录 1. Manus 是什么? 1.1 研发背景 1.2 技术特点 1.3 工具调用能力 1.4 主要应用场景 2. Manus 一夜爆火的原因何在? 2.1 技术突破带来的震撼 2.2 完整交付的产品体验 2.3 生态与开源策略 3. Manus 与其他 AI Agent 的对比分析 3.1 技术架构…...
npm 执行安装报错
Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. 原因 主要的原因是 npm7 以上的版本,新增了一个对等依赖的特性,在以…...
Django 模型的逆向工程
模型的逆向工程:通过 inspectdb 命令从数据库表创建 Django 模型 在Django开发中,模型(Model)是定义数据库结构的关键组件。通常,我们根据业务需求先设计模型,然后通过Django的迁移系统创建相应的数据库表…...
启动wsl里的Ubuntu24报错:当前计算机配置不支持 WSL2,HCS_E_HYPERV_NOT_INSTALLED
问题:启动wsl里的Ubuntu24报错 报错信息: 当前计算机配置不支持 WSL2。 请启用“虚拟机平台”可选组件,并确保在 BIOS 中启用虚拟化。 通过运行以下命令启用“虚拟机平台”: wsl.exe --install --no-distribution 有关信息,请访…...
Electron:点击右键保存图片到本地
前期插件 前端请求后台的一种方法 npm install got -S用于获取ArrayBuffer文件类型 npm install image-type -S生成随机数 npm install randomstring -D增加右击事件 点击右击事件的时候加载菜单 const imageRightSave require("./ImageRightSave") // 创建右…...
C语言中0UL和1UL
0UL 表示 无符号长整型 0 1UL 表示 无符号长整型 1 如果不写UL后缀,系统默认为:int, 即,有符号整数。 数值常数分为:整型常数和浮点常数; 数值常数后缀不区分字母大小写; 1.整型常数的后缀:…...
6. 机器人实现远程遥控(具身智能机器人套件)
1. 启动控制脚本 远程作到 Raspberry Pi 中,并运行以下脚本: conda activate lerobotpython lerobot/scripts/control_robot.py \--robot.typelekiwi \--control.typeremote_robot登录笔记本电脑上,同时运行以下脚本: conda ac…...
C++ 学生成绩管理系统
一、项目背景与核心需求 成绩管理系统是高校教学管理的重要工具,本系统采用C++面向对象编程实现,主要功能模块包括: 学生信息管理(学号/姓名/3门课程成绩) 成绩增删改查(CRUD)操作 数据持久化存储 统计分析与报表生成 用户友好交互界面 二、系统架构设计 1. 类结构设计 …...
网络安全配置截图 网络安全i
网络安全概念及规范 1.网络安全定义 网络安全的概述和发展历史 网络安全 广义的网络安全:Cyber Security(网络空间安全) 网络空间有独立且相互依存的信息基础设施和网络组成,包括互联网、电信网、计算机系统、嵌入式处理器和控…...
Facebook营销自动化—— Python脚本 + 代理IP实现内容高效分发
目录 1. 引言:内容分发与Facebook营销的现状与痛点 2. 环境搭建与前期准备 2.1 开发环境与工具选择 2.2 获取代理IP 2.3 Facebook账号与开发者平台配置 3. Facebook内容分发的基本流程与策略 3.1 内容规划与策略制定 3.2 内容分发方式选择 3.3 风控与风险防…...
Centos的ElasticSearch安装教程
由于我们是用于校园学习,所以最好是关闭防火墙 systemctl stop firewalld systemctl disable firewalld 个人喜欢安装在opt临时目录,大家可以随意 在opt目录下创建一个es-standonely-docker目录 mkdir es-standonely-docker 进入目录编辑yml文件 se…...
香港地区上线独立多用户电商平台系统需要注意哪些问题
在香港地区上线独立多用户电商平台系统时,需结合本地化需求、技术架构、法律合规及用户体验等多方面因素,以下是需要注意的关键问题及建议: 一、技术架构与服务器部署 服务器配置与带宽选择 根据业务规模选择合适的香港服务器配置࿰…...
元宇宙展厅应用场景有哪些?
元宇宙展厅作为元宇宙技术的重要应用场景之一,正在彻底改变人们的展示、学习与交流方式。其应用场景主要包括以下几个方面: 一、企业展览与营销 产品展示:企业可以利用元宇宙展厅搭建虚拟展示空间,通过高精度的3D建模和虚拟现实技…...
XGBoost常见面试题(五)——模型对比
XGBoost与GBDT的区别 机器学习算法中 GBDT 和 XGBOOST 的区别有哪些? - 知乎 基分类器:传统GBDT以CART树作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题&#…...
如何在WPS中接入DeepSeek并使用OfficeAI助手(超细!成功版本)
目录 第一步:下载并安装OfficeAI助手 第二步:申请API Key 第三步:两种方式导入WPS 第一种:本地大模型Ollama 第二种APIKey接入 第四步:探索OfficeAI的创作功能 工作进展汇报 PPT大纲设计 第五步:我的使用体验(体验建议) …...
重学 Android 自定义 View 系列(十一):文字跑马灯剖析
前言 一个可以横向滚动和纵向滚动的自定义文字跑马灯View,支持水平和垂直滚动、多段文本展示、点击事件回调等功能。 该View 由 ScrollTextView,改版而来,效果如下: 1. 功能介绍 ScrollTextView 是基于 SurfaceView 的自定义视…...
Android硬件加速原理解析
Android硬件加速原理解析 一、核心思想 GPU与CPU分工 硬件加速的本质是将图形渲染任务从CPU转移到GPU,利用GPU的并行计算能力处理像素填充、矩阵变换等密集型图形操作12。CPU负责逻辑计算,GPU专注于图形处理,避免单一资源瓶颈57。 图形计算优化 GPU通过专…...
Oracle SQL优化实战要点解析(11)——索引、相关子查询及NL操作(1)
11.1. 充分利用索引有序特性,避免发生大表上的FTS,以及对中间大数据集的排序。 11.1.1. 适用场景 从一个或多个大表(例如:亿行级或TB级数据量)中过滤出全列大数据集(例如:数百万或千万行数据),对该大数据集按其中某列进行排序,最终,只取最前面的少部分数据(例如:…...
题解:AT_past202109_h 最短経路
思路 这一眼就是最短路的题目啊。 为什么不用 Dijkstra 用 死了的 SPFA。因为好写 。 这一题的数据比较小。可以暴力枚举最短路的起点,跑 SPFA,找到符合的直接输出,结束程序。随机数据下 SPFA 平均的时间复杂度为 O ( k n ) O(kn) O(kn)…...
JavaScript基础-算数运算符
在JavaScript编程中,算术运算符是构建程序逻辑的基础工具之一,它们用于执行基本的数学运算,如加法、减法、乘法和除法等。掌握这些运算符不仅有助于进行数值计算,也是编写复杂逻辑的前提条件。本文将详细介绍JavaScript中的各种算…...
Doris vs ClickHouse 企业级实时分析引擎怎么选?
Apache Doris 与 ClickHouse 同作为OLAP领域的佼佼者,在企业级实时分析引擎该如何选择呢。本文将详细介绍 Doris 的优势,并通过直观对比展示两者的关键差异,同时分享一个企业成功用 Doris 替换 ClickHouse 的实践案例,帮助您做出明…...
flask学习3-深入
flask学习-深入 flask学习-深入1. 应用程序结构和生命周期 — Flask 文档 (3.1.x)2.应用程序上下文 — Flask 文档 (3.1.x)3. 请求上下文 — Flask 文档 (3.1.x)上下文的生命周期手动推送上下文关于代理的注意事项4.使用蓝图的模块化应用程序 — Flask 文档 (3.1.x)5.扩…...
任务10:三层交换机配置
CSDN 原创主页:不羁https://blog.csdn.net/2303_76492156?typeblog三层交换机是指在OSI(开放系统互连)模型中的第三层网络层提供路由功能的交换机。它不仅具备二层交换机的交换功能,还能实现路由功能,提供更为灵活的网…...
XSD 对 XML 数据格式验证 java
xsd文件,文件名bean.xsd,放在当前java文件目录下 <?xml version"1.0" encoding"UTF-8"?> <xs:schema xmlns:xs"http://www.w3.org/2001/XMLSchema"><xs:element name"bean"><xs:comple…...
深度学习笔记——神经网络
本文为在拓尔思智能举办的训练营中学习内容的总结,部分内容摘自百度百科 个人在这里推荐一个好用的软件,Trae,主要是免费。 人工神经元是人工神经网络的基本单元。模拟生物神经元,人工神经元有1个或者多个输入(模拟多…...
大语言模型学习--向量数据库
向量数据库 向量 向量是多维数据空间中的一个坐标点。 向量类型 图像向量 文本向量 语音向量 Embedding 非结构化数据转换为向量过程 通过深度学习训练,将真实世界离散数据,投影到高维数据空间上,通过数据在空间中间的距离体现真实世界…...