openGauss + Datakit

news2024/11/17 21:28:00

openGauss + Datakit

    • 1. 简介
      • 1.1 openGauss
      • 1.2 Datakit
    • 2. 环境准备
      • 2.1 支持系统
      • 2.2 安装包获取
      • 2.3 注意事项
      • 2.4 系统环境设置
    • 3. openGauss 安装
      • 3.1 创建用户和组
      • 3.2 创建工作目录
      • 3.3 关闭HISTORY记录/关闭交换内存
      • 3.4 解压安装包
      • 3.5 安装
      • 3.6 启动数据库
      • 3.7 连接数据库
      • 3.8 添加白名单
      • 3.9 修改数据库参数
      • 3.10 创建用户
    • 4. Datakit 安装
      • 4.1 解压Datakit
      • 4.2 修改配置文件
      • 4.3 创建密钥文件
      • 4.4 启动Datakit
    • 5. 界面管理

1. 简介

1.1 openGauss

opengauss官网

openGauss 是一款全面友好开放,携手伙伴共同打造的企业级开源关系型数据库。openGauss采用木兰宽松许可证v2发行,提供面向多核架构的极致性能、全链路的业务、数据安全、基于AI的调优和高效运维的能力。openGauss深度融合华为在数据库领域多年的研发经验,结合企业级场景需求,持续构建竞争力特性。同时,openGauss也是一个开源、免费的数据库平台,鼓励社区贡献、合作。

openGauss是单机系统,支持一主多备,最多支持八个备机。详情请参见openGauss 架构图
在这里插入图片描述模块信息:

  • OM:Operation Manager运维管理模块,提供集群日常运维、配置管理的管理接口、工具。
  • CM:Cluster Manager集群管理模块,管理和监控分布式系统种的各个功能单元和物力资源的运行情况,确保整个系统的稳定运行。
  • GTM:Global Transaction Management,全局事务控制器。负责生成和维护全局事务ID、事务快照、时间戳、sequence信息等全局唯一的信息。
  • CN:Coordinator Node 协调节点, 负责接收来自应用的访问请求,并向客户端返回执行结果,负责分解任务,并调度任务分片在各个DN上并行执行。
  • DN:Data Node 数据节点,负责存储业务数据(支持行存储、列存储、混合存储),执行数据查询任务以及向CN返回执行结果。

1.2 Datakit

Datakit 官网
Datakit 是运行在用户本地机器上的一种基础数据采集工具,主要用于采集系统运行的各种指标、日志等数据,将它们汇总给观测云,在观测云中,用户可以查看并分析自己的各种指标、日志等数据。

DataKit 是观测云中至关重要的一个数据采集组件,几乎所有观测云中的数据都是来源于 DataKit。

DataKit 基础网络模型
DataKit 网络模型主要分为三层,可以简单概括为用户环境、DataWay 以及观测云中心,如下图所示:
在这里插入图片描述DataKit 主要通过定期采集的方式,采集各种不同的指标,然后定时、定量通过 HTTP(s) 将数据发送给 DataWay。每个 DataKit 都会配置对应的 token,用于标识不同的用户

  • DataWay 收到数据后,转发给观测云,在发给观测云的数据中,带有 API 签名
  • 观测云收到合法的数据后,根据不同的数据类型,分别写入不同的存储中

DataKit目的是方便客户使用和管理openGauss可视化工具

2. 环境准备

2.1 支持系统

openEuler 20.3LTS(x86_x64,ARM)
centos7.x(x86_x64)

2.2 安装包获取

官网中包括openGaussDatakit的安装包
在这里插入图片描述在这里插入图片描述

可根据不同的系统架构自行选择下载

2.3 注意事项

  • 当前平台运行依赖于openJDK11
  • 平台使用的数据库,当前仅支持openGauss数据库,并且需要提前创建database。
  • 需要将部署服务器IP配置在平台使用的数据库openGauss的白名单列表中。
  • 如果安装企业版,还需要安装python3

2.4 系统环境设置

  • 主机名
hostnamectl set-hostname node-138
  • IP地址解析
echo '192.168.17.138 node-138' >> /etc/hosts
  • 刷新主机名
[root@localhost ~]# su
[root@node-138 ~]# 
  • 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
  • 关闭selinux
setenforce 0

编辑/etc/sysconfig/selinux,将SELINUX=enforcing修改为SELINUX=disabled

sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

3. openGauss 安装

如果操作系统是openEuler 20.3LTS,则可以用联网方式安装

yum install opengauss -y

本文使用的操作系统是centos 7.9,所以需要用官网下载的安装包安装

3.1 创建用户和组

openGauss 不支持root操作,所以需要创建普通用户

groupadd dbgroup
useradd -g dbgroup omm
passwd omm
新密码:abcd@123456

3.2 创建工作目录

mkdir -p /opt/software/openGauss
chmod 755 -R /opt/software
chown -R omm /opt/software/openGauss

3.3 关闭HISTORY记录/关闭交换内存

vim /etc/profile
HISTSIZE=0
source /etc/profile

swapoff -a

官网提示关闭HISTORY比较安全,可忽略

3.4 解压安装包

在官网下载极简版的安装包,并上传到服务器

切换到普通用户omm进行解压

su - omm
tar -jxvf openGauss-5.0.1-CentOS-64bit.tar.bz2 -C software/openGauss/
[omm@node-138 opt]$ ll software/openGauss/
total 16
drwxr-xr-x. 2 omm dbgrp 4096 Dec 15 20:31 bin
drwxr-xr-x. 3 omm dbgrp   22 Dec 15 20:31 etc
drwxr-xr-x. 3 omm dbgrp   24 Dec 15 20:31 include
drwxr-xr-x. 4 omm dbgrp   95 Dec 15 20:31 jre
drwxr-xr-x. 5 omm dbgrp 4096 Dec 15 20:31 lib
drwxr-xr-x. 5 omm dbgrp   53 Dec 15 20:31 share
drwxr-xr-x. 2 omm dbgrp   78 Dec 15 20:31 simpleInstall
-rw-r--r--. 1 omm dbgrp   32 Dec 15 20:31 version.cfg

切换回root执行,我们提前设置

执行时,如果出现报错“the maximum number of SEMMNI is not correct, the current SEMMNI is xxx. Please check it.”,请使用有root权限的用户执行如下命令。
bash sysctl -w kernel.sem="250 85000 250 330"

3.5 安装

sh install.sh -w Gauss$123456 && source ~/.bashrc

报错如下:

...
/home/omm/.bashrc: line 16: ulimit: open files: cannot modify limit: Operation not permitted
...

是因为.bashrc中ulimit -n 1000000没有执行权限,所以我们切回root

[root@node-138 simpleInstall]# ulimit -n 100000
[root@node-138 simpleInstall]# ulimit -n
100000
[root@node-138 simpleInstall]# tail -3 /etc/security/limits.conf
*               hard    nofile          100000
*               soft    nofile          100000
# End of file

二次安装

[omm@node-138 simpleInstall]$ sh install.sh -w Gauss$123456
[step 1]: check parameter
[step 2]: check install env and os setting
ERROR: the directory /opt/software/openGauss/data/single_node must be dir and empty
[omm@node-138 simpleInstall]$ rm -rf /opt/software/openGauss/data/single_node/*
[omm@node-138 simpleInstall]$ ll /opt/software/openGauss/data/single_node/
total 0
[omm@node-138 simpleInstall]$ sh install.sh -w Gauss$123456
...
[complete successfully]: You can start or stop the database server using:
    gs_ctl start|stop|restart -D $GAUSSHOME/data/single_node -Z single_node
[omm@node-138 simpleInstall]$ ps ux | grep gaussdb
omm       32191  5.9  9.3 5978380 745656 ?      Ssl  23:52   0:05 /opt/software/openGauss/bin/gaussdb -D /opt/software/openGauss/data/single_node

3.6 启动数据库

gs_ctl start -D /opt/software/openGauss/data/single_node -Z single_node

[omm@node-138 ~]$ gs_ctl status -D /opt/software/openGauss/data/single_node -Z single_node
[2024-01-05 18:25:44.154][6649][][gs_ctl]: gs_ctl status,datadir is /opt/software/openGauss/data/single_node
gs_ctl: server is running (PID: 6079)
/opt/software/openGauss/bin/gaussdb "-D" "/opt/software/openGauss/data/single_node"

执行gs_ctl命令,查看进程是否正常,如果没有找到 gs_ctl

  • 解决方式1:配置环境变量即可 export PATH=/opt/software/openGauss/bin:$PATH,如果缺失lib则配置LD_LIBRARY_PATH
  • 解决方式2:
cd /opt/software/openGauss/bin
ll
 
#先切换到【root】用户,再切换到【omm】用户,再执行如下命令
gs_ctl query -D /opt/software/openGauss/data/single_node【ok】
gs_ctl query -D /opt/software/openGauss/data/single_node -Z single_node【ok】
/opt/software/openGauss/bin/gs_ctl query -D /opt/software/openGauss/data/single_node【ok】
 
#启动
gs_ctl start -D /opt/software/openGauss/data/single_node -Z single_node
 
#停止
gs_ctl stop -D /opt/software/openGauss/data/single_node -Z single_node
 
#重启
gs_ctl restart -D /opt/software/openGauss/data/single_node -Z single_node

3.7 连接数据库

[omm@node-138 simpleInstall]$ gsql -d postgres -p 5432
gsql ((openGauss 5.0.1 build 33b035fd) compiled at 2023-12-15 20:19:06 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

openGauss=#
openGauss=# \l
                              List of databases
   Name    | Owner | Encoding |   Collate   |    Ctype    | Access privileges
-----------+-------+----------+-------------+-------------+-------------------
 finance   | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres  | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 school    | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/omm           +
           |       |          |             |             | omm=CTc/omm
 template1 | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/omm           +
           |       |          |             |             | omm=CTc/omm
(5 rows)

3.8 添加白名单

[omm@node-138 single_node]$ cat pg_hba.conf
...
host    all             all             0.0.0.0/0               md5

参数详解:

  • host:表示这个规则适用于TCP/IP连接。
  • all: 表示这个规则适用于所有数据库和所有用户。
  • 0.0.0.0/0: 是一个CIDR格式的IP地址范围,表示允许任何IP地址的客户端进行连接。
  • md5: 表示使用MD5加密方式对密码进行验证。

3.9 修改数据库参数

# 设置监听所有ip
[omm@node-138 single_node]$ sed -i "s/^#listen_addresses = .*/listen_addresses = '*'/" postgresql.conf
# 修改加密算法为0 = md5
[omm@node-138 single_node]$ sed -i "s/^#password_encryption_type = .*/password_encryption_type = 0/" postgresql.conf
# 修改最大连接数为1000
[omm@node-138 single_node]$ sed -i "s/^max_connections = .*/max_connections = 1000/" postgresql.conf

重启服务

3.10 创建用户

# 初次登录需要修改密码(sql命令)
openGauss=# alter role omm password 'Newm123@';
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
ALTER ROLE
# 创建用户(sql命令)
openGauss=# create user opengauss identified by 'Newm123@';
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
# 授权(sql命令)
openGauss=# alter user opengauss sysadmin;
ALTER ROLE
# 创建数据库(sql命令)
openGauss=# create database yurqdb;
CREATE DATABASE
openGauss=# \l
                              List of databases
   Name    | Owner | Encoding |   Collate   |    Ctype    | Access privileges
-----------+-------+----------+-------------+-------------+-------------------
 finance   | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres  | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 school    | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/omm           +
           |       |          |             |             | omm=CTc/omm
 template1 | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/omm           +
           |       |          |             |             | omm=CTc/omm
 yurqdb    | omm   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
(6 rows)

4. Datakit 安装

4.1 解压Datakit

[root@node-138 opt]# mkdir -p /ops/server/openGauss-visualtool/logs /ops/server/openGauss-visualtool/config /ops/ssl /ops/files
[root@node-138 opt]# tar xf Datakit-5.0.0.tar.gz -C /ops/server/openGauss-visualtool/
[root@node-138 server]# cd /ops/server/openGauss-visualtool/
[root@node-138 openGauss-visualtool]# mkdir visualtool-plugin
[root@node-138 openGauss-visualtool]# mv *.jar visualtool-plugin/
[root@node-138 openGauss-visualtool]# mv visualtool-plugin/visualtool-main.jar .
[root@node-138 openGauss-visualtool]# ll
total 92088
-rw-r--r-- 1 root root      865 Mar 28  2023 application-temp.yml
-rw-r--r-- 1 root root     6746 Mar 28  2023 base-ops-README.md
drwxr-xr-x 2 root root        6 Jan  5 18:54 config
-rw-r--r-- 1 root root     3752 Mar 28  2023 data-migration-README.md
-rw-r--r-- 1 root root    48121 Mar 28  2023 data-studio-readme.md
drwxr-xr-x 2 root root        6 Jan  5 18:54 logs
-rw-r--r-- 1 root root    17164 Mar 28  2023 observability-instance-README.md
-rw-r--r-- 1 root root     8172 Mar 28  2023 observability-log-search-README.md
-rw-r--r-- 1 root root     8629 Mar 28  2023 observability-sql-diagnosis-README.md
-rw-r--r-- 1 root root 94180819 Mar 28  2023 visualtool-main.jar
drwxr-xr-x 2 root root      281 Jan  5 18:55 visualtool-plugin
-rw-r--r-- 1 root root     7245 Mar 28  2023 visualtool-README.md

4.2 修改配置文件

[root@node-138 openGauss-visualtool]# cp application-temp.yml application-temp.yml.bak
[root@node-138 openGauss-visualtool]# cat application-temp.yml
system:
  # File storage path
  defaultStoragePath: /ops/files
  # Whitelist control switch
  whitelist:
    enabled: false
server:
  port: 9494
  ssl:
    key-store: /ops/ssl/keystore.p12
    key-store-password: 123456
    key-store-type: PKCS12
    enabled: true
  servlet:
    context-path: /
logging:
  file:
    path: /ops/server/openGauss-visualtool/logs/
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: org.opengauss.Driver
    url: jdbc:opengauss://192.168.17.138:5432/yurqdb?currentSchema=public
    username: opengauss
    password: Newm123@
    druid:
      test-while-idle: false
      test-on-borrow: true
      validation-query: "select 1"
      validation-query-timeout: 10000
      connection-error-retry-attempts: 0
      break-after-acquire-failure: true
      max-wait: 3000
management:
  server:
    port: 9494

修改spring.datasource.url的ip,port,database、dbuser、dbpassword

4.3 创建密钥文件

这里使用keytool工具生成密钥,需要注意的是keytool -genkey命令用于创建SSL文件(包括密钥对和证书),并且它与 JDK (Java Development Kit)是有关系的。keytool 是JDK提供的一个工具,用于管理密钥库和证书,用于加密和身份验证等安全通信。而我们前面提到该平台依赖JDK11环境,所以这里使用JDK11来创建密钥文件。

请提前安装号JDK11

生成ssl文件示例(生成ssl的java必须跟运行DataKit是一个java版本):

keytool -genkey -noprompt \
    -dname "CN=opengauss, OU=opengauss, O=opengauss, L=Shenyang, S=Shenyang, C=CN"\
    -alias opengauss\
    -storetype PKCS12 \
    -keyalg RSA \
    -keysize 2048 \
    -keystore /ops/ssl/keystore.p12 \
    -validity 3650 \
    -storepass 123456

执行完成后,会在/ops/ssl/下生成密钥文件keystore.p12

注意:

  • storepass与配置文件application-temp.yml中的key-store-password保持一致
  • keystore路径与配置文件application-temp.yml中的key-store路径保持一致

4.4 启动Datakit

切换到omm用户,进入/ops/server/openGauss-visualtool目录,执行启动命令(必须要进入到这个目录启动,否则会报错)

[root@node-138 openGauss-visualtool]# mkdir -p /ops/server/openGauss-visualtool/logs/
[root@node-138 openGauss-visualtool]# touch /ops/server/openGauss-visualtool/logs/visualtool-main.out
[root@node-138 openGauss-visualtool]# chown -R omm /ops/server/openGauss-visualtool/
[root@node-138 openGauss-visualtool]# ll /ops/server/openGauss-visualtool/logs/visualtool-main.out
-rw-r--r-- 1 omm root 0 Jan  5 21:17 /ops/server/openGauss-visualtool/logs/visualtool-main.out
[omm@node-138 ~]$ nohup java -Xms2048m -Xmx4096m -jar /ops/server/openGauss-visualtool/visualtool-main.jar --spring.profiles.active=temp >/ops/server/openGauss-visualtool/logs/visualtool-main.out 2>&1 &

注:第一次启动会显示插件初始化异常,加载完毕后kill掉这个进程然后再重新启动一遍就一切正常了。

5. 界面管理

访问URL https://192.168.17.138:9494就可以来到登录界面了
在这里插入图片描述登录账号:admin 密码:admin123

登录后,具体如何使用,请自行摸索吧!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Go语言的HTTP客户端库进行API调用

随着微服务架构和RESTful API的普及,API调用成为了日常开发中的常见任务。Go语言提供了多种工具和库来帮助开发者轻松地与API进行交互。本文将介绍如何使用Go语言的HTTP客户端库进行API调用。 在Go语言中,标准库中的net/http包提供了基本的HTTP客户端功…

Nginx(十五) proxy_pass和proxy_redirect指令的组合测试

Nginx反向代理配置文件参数详解请参考 Nginx(十三) 配置文件详解 - 反向代理(超详细) 测试1:proxy_redirect http://127.0.0.1:8080/three/ http://www.read*******l.cn:8688/four/; http {server {listen 8688;server_name www.read****…

汇编 8259 中断实验

汇编 8259 中断实验 一、实验目的 (1)掌握微机中断处理系统的基本原理。 (2)掌握8259中断控制器的工作原理,学会编写中断服务程序。 (3)掌握8259级联方式的使用方法。 二、实验设备 &#x…

企业级实践为“燃料”,大模型助推Kyligence产品力向上

回顾2023年,最火热的科技话题无疑是生成式AI。 从ChatGPT横空出世,到“千模大战”如火如荼,AIGC正式破圈,成为企业数字化转型的新关键词。 在红杉中国《2023企业数字化年度指南》中,通过调研235家企业可知&#xff0…

Eclipse先关的一些配置

启动配置设置 配置项详细说明: -Xms:初始堆内存大小,设定程序启动时占用内存大小,默认物理内存1/64 -Xms -XX:InitialHeapSiz-Xmx:最大堆内存,设定程序运行期间最大可占用的内存大小。如果程序运行需要…

软件测试|SQL中的null值,该如何理解?

深入理解SQL中的Null值:处理缺失数据的重要概念 简介 Null值在SQL中是用于表示缺失或未知数据的特殊值。本文将深入探讨Null值的概念、处理方法和注意事项,以帮助读者更好地理解和处理SQL中的缺失数据。 在SQL数据库中,Null值是一种特殊的…

BEV+Transformer感知架构共识下,传感器「火药味」再升级

高阶智能驾驶战火愈演愈烈,正带动感知方案卷入新一轮军备竞赛。 根据高工智能汽车研究院最新发布数据显示,2023年1-9月,中国市场(不含进出口)乘用车前装标配(软硬件)NOA交付新车37.73万辆&…

Linux下NUMA 内存管理初步理解

LINUX 系统在多核下,以及NUMA架构技术下 如何管理物理内存? 经过初步了解 发现系统对内存有以下工作 1 映射 2 内存碎片 3 内存回收 4 内存池 5 冷热页 6 水位线和保留内存 7 支持内存条热插拔 8 大页管理 这些功能给人感觉,尤其是DBA感觉是重新实现了数据缓存池的功…

机器学习(三) -- 特征工程(1)

系列文章目录 机器学习(一) -- 概述 机器学习(二) -- 数据预处理(1-3) 机器学习(三) -- 特征工程(1-2) 未完待续…… 目录 系列文章目录 前言 一、特征…

大数据开发的专业术语

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列专栏目录 [Java项…

画中画视频剪辑:创意与技术的完美结合,批量制作视频不再难

随着科技的飞速发展,视频制作已成为信息时代的一种重要表达方式。其中画中画视频剪辑技术更是以其独特的创意性和技术性,为观众的视觉体验带来了全新的冲击。它不仅为创作者提供了更广阔的创意空间,同时也降低了视频制作的门槛。现在一起来看…

VSCode Jupyter print 函数输出在错误的单元格(cell)

问题描述 最近在复现一个开源项目时,发现执行过该项目中的代码单元格后,其余单元格的print函数输出也会续在该单元格后。而正常情况下print函数输出应该位于其所属的单元格。下图中,我将出现问题的单元格执行后清空了输出,但是在…

深度解析 Compose 的 Modifier 原理 -- Modifier.composed()、ComposedModifier

众所周知:原理性分析的文章,真的很难讲的通俗易懂,讲的简单了就没必要写了,讲的繁琐难懂往往大家也不乐意看,所以只能尽量找个好的角度(比如从 Demo 代码示例出发)慢慢带着大家去钻源码&#xf…

书生·浦语大模型全链路开源开放体系

书生浦语大模型全链路开源体系_哔哩哔哩_bilibili 大模型全链路开源开放体系等你来探索~ https://github.com/internLM/tutorial 书生浦语全链条开源开放体系 1)数据: 书生万卷 2TB数据,并行训练,极致优化涵盖多种模态与任务 预训练: I…

聚道云软件连接器助力某动漫行业公司实现财务自动化

客户介绍 某动漫行业公司是一家专注于文化创意领域,致力于为人们提供独特、有趣的文化产品。公司拥有一支充满活力和创造力的团队,他们以卓越的创意和精湛的技术,创造出了一系列令人惊叹的作品。未来,该公司将继续秉承这一理念&a…

低代码开发平台支持复杂的业务逻辑和API对接吗

当今数字化时代,企业和组织面临着日益复杂的业务需求。为了应对这些挑战,低代码开发平台应运而生。白码低代码开发平台是一种高效、灵活且可扩展的开发工具,能够支持复杂的业务逻辑和第三方API对接,为企业带来更快速、更灵活的解决…

Rust 字符串 初步了解

rust 的字符串 。字符串不是复合类型, String 和 &str : String 具有所有权,是存储在堆上的。&str 没有所有权,是对 String 的引用。字符串字面量也是 &str 类型,存储在栈上。 切片(slice&a…

线性代数 --- 为什么LU分解中L矩阵的行列式一定等于(+-)1?

以下是关于下三角矩阵L的行列式一定等于-1的一些说明 证明:在LU分解中,下三角矩阵L的行列式一定是. 在证明之前,我这里先补充几条关于行列式的性质: 性质1:对于三角矩阵而言,不论是上三角矩阵还是下三角矩…

Qt6学习笔记:对象树

使用QObject及其子类创建的对象是以对象树的形式来组织的。创建一个QObject对象时若设置一个父对象,它就会被添加到父对象的子对象列表里,一个父对象被删除时,其全部的子对象都会自动删除。QObject类的构造函数里有一个参数用于设置对象的父对…

PyTorch基础操作

一、Tensor 在 PyTorch 中,张量(Tensor)是一个核心概念,它是一个用于存储和操作数据的多维数组,类似于 NumPy 的 ndarray,但与此同时,它也支持 GPU 加速,这使得在大规模数据上进行科…