《一文讲透》第4期:KWDB 数据库运维(7)—— 集群规划

KWDB 数据库可高效处理海量且连续的数据流,但对于运维人员来说,根据业务需求进行硬件规划是确保系统稳定、高效运行的基础。本文将深入探讨 KWDB 集群规划,帮助运维人员从容应对数据增长和性能挑战,我们将从以下几个方面进行介绍:

  1. 拓扑结构:介绍 KWDB 数据库在延迟、弹性方面的考量。
  2. 硬件资源:介绍 KWDB 数据库在业务规模和性能角度,对 CPU、内存、存储和网络要求。
  3. 安全性:从安全方面,介绍 KWDB 集群规划时应该注意的事项。

拓扑结构

在计划部署时,应选择最能满足延迟和弹性要求的拓扑模式:

  • 为了提高可用性和降低数据丢失的风险,建议在一台服务器上只运行一个节点。由于 KWDB 跨节点复制,如果一台计算机运行多个节点,当计算机发生故障会增加数据丢失的可能性。
  • KWDB 集群模式下的数据副本数为3,为确保集群的稳定运行,需要保证集群中正常运行的节点数大于集群的副本数。
  • 为保证 KWDB 集群正常运行,需要保证每个数据库节点都可以互相访问。
  • KWDB 在面临节点故障时会自动进行数据迁移和补足,需要保证节点之间有足够的网络带宽。

综上,KWDB 建议每个节点都使用独立的服务器,在集群模式下至少有三个节点,各节点可以对等高速访问。

硬件资源

每个节点需要配备必要的 CPU、内存、网络和存储等资源。在部署集群前需要检查各个硬件设备。

下面列出了 KWDB 安装部署所需的硬件规格要求。在实际部署时,用户需要根据实际的业务规模和性能要求,进行硬件资源的规划。

CPU 和内存

单节点配置建议不低于4核8G。越高的 CPU 和内存意味着越好的数据读写、复杂工作负载、高并发和高性能场景表现。
同时,CPU 和内存应检查以下内容:

禁用 CPU 节能模式

在 X86 架构上,部分系统会模式使用 CPU 节能模式。为发挥最佳性能,需要配置为高性能模式来始终保持 CPU 在最高频率上工作。

检查系统 CPU 模式

cpupower frequency-info --policy

如果输出为The governor "powersave"则说明当前是节能模式,需要调整为性能模式 performance。

sudo nano /etc/systemd/system/cpupower.service

添加以下内容

[Unit]
Description=Set CPU performance governor
After=network.target[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower frequency-set --governor performance
ExecStartPost=/bin/sleep 1
ExecStartPost=/usr/bin/cpupower frequency-set --governor performance
RemainAfterExit=yes[Install]
WantedBy=multi-user.target

启用服务

sudo systemctl daemon-reload
sudo systemctl enable cpupower.service
sudo systemctl start cpupower.service

使用 64K PAGE_SIZE 内核

在 ARM 架构上,因为其 TLB 较小,在高性能计算和数据库场景中,应当使用 page size 为 64K 的 Linux 内核,从而获得更好的性能。

getconf PAGE_SIZE

如果您的系统使用小于64K的内核,应进行内核切换,可以参考>>
Choosing between the arm64 and arm64+largemem installer options | Ubuntu

绑定 CPU

在部分国产 CPU 上,往往 Non-Uniform Memory Access (NUMA) 之间带宽是 CPU 的主要瓶颈,需要主动绑定 CPU 来发挥全部性能。

除此之外,如果 KWDB 和应用部署在同一个服务器上,为避免发生 CPU 争抢引发性能衰退,也需要进行绑定 CPU 来优化性能。

建议使用 numactl 来查看 NUMA 信息和绑定 CPU。numactl 是一个用于管理 NUMA 系统的工具。它可以用于查看 NUMA 配置,并将进程绑定到特定的 NUMA 节点或 CPU 上,从而优化性能。

  • 查看 NUMA 节点的信息:
    使用 numactl --hardware 或 lscpu 命令查看系统中的 NUMA 节点及其关联的 CPU 和内存信息:
numactl --hardware

或者:

lscpu

这将输出类似以下的信息:

available: 2 nodes (0-1)     node 0 cpus: 0 1 2 3 4 5 6 7     node 0 size: 16384 MB     node 0 free: 12000 MB     node 1 cpus: 8 9 10 11 12 13 14 15     node 1 size: 16384 MB  node 1 free: 12000 MB    

这里显示了可用的 NUMA 节点,以及每个节点包含的 CPU 核心和内存信息。

  • 绑定进程到特定的 NUMA 节点:
    如果想将 KWDB 进程绑定到 NUMA 节点 0,可以使用以下命令:
numactl --cpunodebind=0 --membind=0 kwbase  <args>   
  • 绑定进程到特定的 CPU:
    如果想将 KWDB 进程绑定到特定的 CPU 核心(例如 CPU 0 和 CPU 1),可以使用以下命令:
numactl --physcpubind=0,1 kwbase <args> 

存储

建议使用 Ext4 文件系统。同时,存储应检查以下内容:

检测并关闭系统 swap

关闭 swap 可以提升 KWDB 的性能,但可能会损失部分稳定性。

swapon --show

如果没有输出,表示没有启用的 swap。如果存在 swap,可以通过以下方式永久禁用:
编辑 /etc/fstab 文件,注释掉包含 swap 的行:

/swapfile none swap sw 0 0

重启系统永久生效。

调整I/O调度器为 noop

内核的 I/O 调度会导致性能损失,调整调度器为 noop 后,可以将 I/O 直接下发给硬件,从而获得更好的性能。

cat /sys/block/sdX/queue/scheduler

将 sdX 修改为您的磁盘(如 sda、sdb 等),如果为 deadline,则需要调整。

  1. 创建一个新的 udev 规则文件,例如 /etc/udev/rules.d/60-io-scheduler.rules:
sudo nano /etc/udev/rules.d/60-io-scheduler.rules
  1. 添加规则:
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="noop"

这里,sd[a-z] 表示所有以 sd 开头的磁盘设备(如 sda、sdb 等)。您可以根据需要调整设备匹配模式。
3. 重新加载 udev 规则:

sudo udevadm control --reload-rules
  1. 应用新规则:
sudo udevadm trigger

磁盘容量

KWDB 推荐使用 SSD 或者 NVME 设备,尽量避免使用共享存储,确保至少 500 IOPS 和 30MB/s 处理效率。 KWDB 系统本身占用磁盘较小(<1GB),实际需求取决于业务量和开启的功能。

磁盘需求量可通过以下公式预估:

1、 压缩前空间:总存储空间=设备数量单台设备每天写入行数分区天数总分区数(行宽/1024/1024+15/64/分片可存储的最大数据行数/500/1000)/1024,单位为GB。

2、压缩后空间:总存储空间=设备数量单台设备每天写入行数分区天数总分区数(行宽/1024/1024/压缩比+15/64/分片可存储的最大数据行数/500/1000)/1024,单位为GB。

其中,分区天数取决于时序表的分区时间范围(PARTITION INTERVAL )设置。KWDB 默认每10天进行一次分区,分区天数的值即为10,如果建表时将分区时间范围设置为1mon, 则对应的分区天数为30。

总分区数取决于表的生命周期参数 RETENTIONS <keep_duration> 和分区时间范围(PARTITION INTERVAL )设置,例如,如果将表的生命周期设置为10天,分区天数使用默认值10天,则总分区数为1。如果没有设置生命周期参数和分区时间,则总分区数取决于业务周期。例如,如果需要存储一年的数据,总分区数将为37。

行宽为每行数据所有列占用空间的字节总数,各数据列所占用字节数如下:

数据类型占用字节数
第一列时间戳16字节
BOOL1字节
INT22字节
INT4、FLOAT44字节
DOUBLE、TIMESTAMP、INT88字节
CHAR、BYTESDDL中定义宽度 + 1
NCHARDDL中定义宽度*2 + 1
VARCHAR、VARBYTES8字节偏移宽度+平均内容宽度

分片可存储的最大数据行数为实时参数ts.blocks_per_shard.max_limit和ts.rows_per_block.max_limit的乘积,默认值为1000000。

压缩比通常大于等于10,实际压缩比取决于用户数据重复度,重复度越高,压缩比越高,重复度越低,压缩比越低。

假设某项目有1000台设备,每台设备每天写入行数为1000行,分区天数采用默认值10,表的生命周期设置为30天,每行数据占用的总字节数为913,分片可存储的最大数据行数为5000,压缩比为58,则压缩前的空间预计为10001000103(913/1024/1024+15/64/1000/10)/1024≈26 GB,压缩后占用的空间预计为10001000103(913/1024/1024/58+15/64/1000/10)/1024≈1.1 GB。

以下假设列出了不同规模数据库推荐配置的参数值和预计占用的压缩分区空间和活跃未压缩分区空间的合计大小:

  • 表内有20个数据列;
  • 每行数据的总宽度为500字节;
  • 保存数据时间3年;
  • 部署方式为单节点部署,如果是集群部署,预估空间时应乘以集群副本数;
  • 压缩比为10:1。

√ 小型规模

设备数数据写入速率数据量推荐配置预估空间合计
1001条/分钟14.4万/天集群实时参数:
ts.entities_per_subgroup.max_limit: 100
ts.blocks_per_shard.max_limit: 1500
ts.rows_per_block.max_limit: 1000 时序表设置:
PARTITION INTERVAL:10d
ACTIVETIME:200d
20 GB
1001条/10秒86.4万/天集群实时参数:
ts.entities_per_subgroup.max_limit: 100
ts.blocks_per_shard.max_limit: 5000
ts.rows_per_block.max_limit: 1000 时序表设置:
PARTITION INTERVAL:5d
ACTIVETIME:30d
64 GB
1001条/秒864万/天集群实时参数:
ts.entities_per_subgroup.max_limit: 100
ts.blocks_per_shard.max_limit: 10000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:1000 时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:10d
552 GB
5001条/分钟72万/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 8000
ts.rows_per_block.max_limit: 1000 - ts.mount.max_limit:1000 时序表设置:
PARTITION INTERVAL:10d
ACTIVETIME:60d
61 GB
5001条/10秒432万/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 25000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:1000 时序表设置:
PARTITION INTERVAL:5d
ACTIVETIME:20d
297 GB
5001条/秒4320万/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 50000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:1000 时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:5d
2.6 TB
10001条/分钟144万/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 8000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:1000 时序表设置:
PARTITION INTERVAL:10d
ACTIVETIME:30d
102 GB
10001条/10秒864万/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 25000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:2000 时序表设置:
PARTITION INTERVAL:5d
ACTIVETIME:10d
551 GB
10001条/秒8640万/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 50000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:2000 时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:3d
5.2 TB

√ 中型规模

设备数数据写入速率数据量推荐配置预估空间合计
1万1条/分钟1440万/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 230000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:5000
时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:2d
886 GB
1万1条/10秒8640万/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 230000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:5000
时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:2d
5.3 TB
1万1条/秒86400万/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 230000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:5000
时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:2d
52 TB
10万1条/分钟1.44亿/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 230000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:5000
时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:2d
8.5 TB
10万1条/10秒8.64亿/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 230000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:5000
时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:2d
50.6 TB
10万1条/秒86.4亿/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 230000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:5000
时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:2d
502 TB

√ 大型规模

设备数数据写入速率数据量推荐配置预估空间合计
50万1条/分钟7.2亿/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 230000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:5000
时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:2d
75.3 TB
50万1条/10秒43.2亿/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 230000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:5000
时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:2d
251 TB
50万1条/秒432亿/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 230000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:5000
时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:2d
2510 TB
100万1条/分钟14.4亿/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 230000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:5000
时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:2d
150 TB
100万1条/10秒86.4亿/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 230000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:5000
时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:2d
502 TB
100万1条/秒864亿/天集群实时参数:
ts.entities_per_subgroup.max_limit: 500
ts.blocks_per_shard.max_limit: 230000
ts.rows_per_block.max_limit: 1000
ts.mount.max_limit:5000
时序表设置:
PARTITION INTERVAL:1d
ACTIVETIME:2d
5020 TB

网络与时钟

网络会影响 KWDB 的业务通信和时钟的表现。因此应检查以下内容:

网络带宽

KWDB 需要足够的网络带宽来满足节点间数据通信需求。当因带宽不足引发策略性丢包、通信过长时,会影响节点心跳、业务重试等问题,从而降低集群稳定性和性能。
建议集群内使用万兆网卡保证足够的网络带宽。

网络抖动

KWDB 在集群模式下依赖时钟保证数据一致性,在节点时钟波动超过500ms时会产生异常。因此必须安装对时服务,并通过低网络抖动(jitter)来降低时钟波动。
例如 ,如果使用 NTP 网络对时,为保证 NTP 在当前集群网络下的时钟波动不超过500ms,在保证本地网络抖动较低的基础上,还可以通过如下方式保证时钟准确性:

  1. 选择更合适的稳定的时钟源
  2. 根据各节点的网络状态和性能,调整 NTP 服务器的权重
  3. 选择较稳定或精度较高的的对时协议(如 NTP4 或 PTP)
  4. 提高时间同步频率,使用 iburst 和调整 imnpoll maxpoll 选项

网络时延

KWDB 在集群模式下如果多节点间延迟达到100ms以上会处于不可用状态,建议保证各节点延迟在20ms以下

TCP 参数

KWDB 在集群模式下需要全对称高速网络来保证数据迁移和数据广播。当前版本下,KWDB 会使用基于 tcp 的 grpc 协议进行数据传递。因此,必要情况下,集群内对系统 tcp 参数进行优化,都可以提高 KWDB 的性能与稳定性。例如,修改以下 Linux 内核 TCP 参数:

# TCP 缓冲区大小
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216# TCP 窗口自动调谐
net.ipv4.tcp_window_scaling = 1# TCP 内存设置
net.ipv4.tcp_mem = 50576 64768 98152# TCP 高效传输
net.ipv4.tcp_moderate_rcvbuf = 1
net.core.netdev_max_backlog = 250000# TCP 快速打开
net.ipv4.tcp_fastopen = 3

在使用4.9及以上版本的 Linux 内核时,应打开 BBR 来提高网络性能.

#网络队列调度
net.core.default_qdisc = fq#TCP拥塞算法
net.ipv4.tcp_congestion_control = bbr

或者选用6.8及以上版本的 Linux 内核,通过内核默认集成的 TCP 并发连接优化,获得更好的 TCP 性能, 点击参阅

安全性

非安全模式的集群存在严重的安全风险:

  • 集群对所有客户端都是开放的,允许访问集群中任意节点的 IP 地址。
  • 所有用户都可以在无需密码的情况下访问集群。
  • 任何用户都可以以 root 用户身份访问集群,并对所有数据进行读写操作。
  • 缺乏网络加密和认证机制,使得数据传输容易受到威胁。

因此,KWDB 强烈建议在部署时采用安全模式,通过TLS加密技术验证节点和客户端的身份,并对节点与客户端之间的数据传输进行加密,以有效防范未经授权的访问和数据篡改。

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

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

相关文章

【Oracle篇】浅谈执行计划中的多表连接(含内连接、外连接、半连接、反连接、笛卡尔连接五种连接方式和嵌套、哈希、排序合并三种连接算法)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;从事IT领域✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控&#xff1b;并对SQLserver、NoSQL(…

服务器使用宝塔面板Docker应用快速部署 DeepSeek-R1模型,实现Open WebUI访问使用

Deepseek这段时间非常火&#xff0c;最新推理模型Deepseek R1&#xff0c;都想装上试一试&#xff0c;特别是部署到服务器教程网上一堆教程好像没几个部署成功靠谱的&#xff0c;先说服务器上下载Ollama就难倒一堆人&#xff0c;每次都超时。今天终于在宝塔看到一篇 应用安装文…

win10 llamafactory模型微调相关②

微调 使用微调神器LLaMA-Factory轻松改变大语言模型的自我认知_llamafactory 自我认知-CSDN博客 【大模型微调】使用Llama Factory实现中文llama3微调_哔哩哔哩_bilibili 样本数据集 &#xff08;数据集管理脚本处需更改&#xff0c;见报错解决参考1&#xff09; 自我认知微…

华硕笔记本怎么一键恢复出厂系统_华硕笔记本一键恢复出厂系统教程

华硕笔记本怎么一键恢复出厂系统&#xff1f; 华硕一键恢复出厂系统是一个安全、高效、方便的恢复方式&#xff0c;让您轻松还原出厂设置&#xff0c;以获得更好的系统性能。如果您的华硕电脑遇到问题&#xff0c;可以使用华硕一键恢复出厂系统功能。下面小编就教大家华硕笔记本…

TongETLV3.0安装指引(by lqw)

文章目录 安装准备系统环境要求和端口jdk版本要求安装包磁盘要求安装脚本对系统配置的影响 系统配置vm.max_map_count 至少为 262144&#xff0c;且设置 vm.overcommit_memory 参数值为 1使用 TongETL 的 Linux 用户需要设置最大文件打开数为 65536用户需要有sodo权限。安装net…

AI前端开发:赋能开发者,提升解决实际问题的能力

近年来&#xff0c;人工智能技术飞速发展&#xff0c;深刻地改变着各行各业。在软件开发领域&#xff0c;AI写代码工具的出现更是引发了一场革命&#xff0c;尤其是前端开发领域&#xff0c;AI的应用正在显著提升开发者的解决实际问题的能力。本文将探讨AI前端开发如何提升效率…

【STM32】H743的以太网MAC控制器的一个特殊功能

调试743的MAC&#xff0c;翻阅手册的时候&#xff0c;发现了一个有意思的功能 混杂模式 H743的MAC控制器&#xff0c;可以设置为混杂模式&#xff0c;这就意味着它可以做一些网络监控的应用&#xff0c;譬如连接具备端口镜像功能的交换机&#xff0c;然后直接代替PC实现网络数据…

【Linux】Ubuntu Linux 系统 ——PHP开发环境

ℹ️大家好&#xff0c;我是练小杰&#xff0c;元宵节到了&#xff0c;在此祝大家元宵节快乐&#x1f606; 新的一年里&#xff0c;愿你步步高升&#xff0c;事事如意&#xff0c;心想事成&#xff01;! 本文是关于Linux 操作系统中部署PHP开发环境这部分基础内容&#xff0c;后…

SQL注入之布尔和时间盲注,sqli-labs

实验环境&#xff1a; sqli-labs&#xff0c;小皮面板搭建&#xff0c;edge浏览器 apache&#xff1a;2.4.39&#xff0c;MySQL&#xff1a;5.7 PHP&#xff1a;5.39 Python&#xff08;pycharm2023&#xff09;:3 less-8 布尔盲注&#xff1a; 1.我这里是采用最简单的直接采…

C/C++后端开发面经

字节跳动 客户端开发 实习 一面(50min) 自我介绍是否愿意转语言,是否只愿意搞后端选一个项目来详细谈谈HTTP和HTTPS有什么区别?谈一下HTTPS加密的具体过程&#xff1a; 非对称加密 对称加密 证书认证的方式 非对称加密是为了保证对称密钥的安全性。 对称…

如何用.NET Core Identity实现定制化的用户身份验证系统

目录 初识标识框架(Identity) 重置密码操作 JWT基本使用 Swagger添加报文头 初识标识框架(Identity) .net core Identity是一个完整的身份验证和授权框架&#xff0c;它帮助开发人员处理用户的登录、注册、角色管理、权限控制以及其他与用户身份相关的操作&#xff0c;标…

WebSocket与Socket.io的区别

文章目录 引言一、WebSocket&#xff1a;原生的实时通信协议&#xff08;一&#xff09;WebSocket 是什么&#xff08;二&#xff09;WebSocket 的工作原理&#xff08;三&#xff09;WebSocket 的使用方法&#xff08;四&#xff09;WebSocket 的优势&#xff08;五&#xff0…

excel里的函数技巧(持续更新中)

行转列 在 Excel 中&#xff0c;行转列&#xff08;将一行数据转换为一列&#xff0c;或者将一列数据转换为一行&#xff09;是一项常见的操作。你可以使用 转置 功能轻松实现这一操作。 TRANSPOSE(数组)

DeepSeek模型R1服务器繁忙,怎么解决?

在当今科技飞速发展的时代&#xff0c;人工智能领域不断涌现出令人瞩目的创新成果&#xff0c;其中DeepSeek模型无疑成为了众多关注焦点。它凭借着先进的技术和卓越的性能&#xff0c;在行业内掀起了一股热潮&#xff0c;吸引了无数目光。然而&#xff0c;如同许多前沿技术在发…

w~自动驾驶~合集17

我自己的原文哦~ https://blog.51cto.com/whaosoft/13269720 #FastOcc 推理更快、部署友好Occ算法来啦&#xff01; 在自动驾驶系统当中&#xff0c;感知任务是整个自驾系统中至关重要的组成部分。感知任务的主要目标是使自动驾驶车辆能够理解和感知周围的环境元素&#…

操作系统|ARM和X86的区别,存储,指令集

文章目录 主频寄存器寄存器在硬件中的体现是什么寄存器的基本特性硬件实现寄存器类型 内存和寄存器的区别内存&#xff08;Memory&#xff09;和磁盘&#xff08;Disk&#xff09;指令的执行ARM Cortex-M3与Thumb-2指令集Thumb-2 与流水线虚拟地址指令的执行 多核CPU芯片间的通…

好好说话:深度学习扫盲

大创项目是和目标检测算法YOLO相关的&#xff0c;浅浅了解了一些有关深度学习的知识。在这里根据本人的理解做一些梳理。 深度学习是什么&#xff1f; 之前经常听到AI&#xff0c;机器学习&#xff0c;深度学习这三个概念&#xff0c;但是对于三者的区别一直很模糊。 AI&…

关于 IoT DC3 中设备(Device)的理解

在物联网系统中&#xff0c;设备&#xff08;Device&#xff09;是一个非常宽泛的概念&#xff0c;它可以指代任何能够接入系统并进行数据交互的实体。包括但不限于手机、电脑、服务器、网关、硬件设备甚至是某些软件程序等所有能接入到该平台的媒介。 内容 定义 目的 示例 …

接入 SSL 认证配置:满足等保最佳实践

前言 随着信息安全形势的日益严峻&#xff0c;等保&#xff08;信息安全等级保护&#xff09;要求成为各行业信息系统必须遵守的标准。在数据库领域&#xff0c;OpenGauss作为一款高性能、安全、可靠的开源关系型数据库&#xff0c;也需要满足等保要求&#xff0c;确保数据的安…

【论文阅读】Revisiting the Assumption of Latent Separability for Backdoor Defenses

https://github.com/Unispac/Circumventing-Backdoor-Defenses 摘要和介绍 在各种后门毒化攻击中&#xff0c;来自目标类别的毒化样本和干净样本通常在潜在空间中形成两个分离的簇。 这种潜在的分离性非常普遍&#xff0c;甚至在防御研究中成为了一种默认假设&#xff0c;我…