抢鲜体验 PolarDB PG 15 开源版
PolarDB 商业版
8 月,PolarDB PostgreSQL 版兼容 PostgreSQL 15 版本(商业版)正式发布上线。

当前版本主要增强优化了以下方面:
-
改进排序功能:改进内存和磁盘排序算法。 -
增强SQL功能:支持SQL标准的MERGE命令。增加使用正则表达式的新函数,用于检查字符串。 -
改进逻辑复制功能:支持复制2PC事务,发布内容可以使用WHERE进行过滤,支持一次性发布Schema下所有的表。 -
优化数据库性能:降低内存占用。崩溃恢复加速等。
在社区PostgreSQL 15的基础上,PolarDB还支持一些独有的功能,例如Ganos时空引擎,全局执行计划缓存,GBK/GB18030字符集等。在PolarDB PostgreSQL版 15的第一个发布版本中支持以下插件:hll、hypopg、log_fdw、pase、pg_bigm、pg_cron、pg_jieba、pg_repack、pg_similarity、pgtap、pgvector、pldebugger、prefix、roaringbitmap、rum、varbitx、zhparser、ganos。
同时PolarDB进行了深入的性能优化,例如优化SIMD指令集和原子操作指令集的使用,并在事务处理等模块中使能。使用 PGO、BOLT、LTO、代码段大页等系统级优化手段。支持批量读取、扩展,优化IO性能,并进行了深入的参数调优,提供了极致性能。
详情参阅:
https://help.aliyun.com/zh/polardb/polardb-for-postgresql/polardb-postgresql-version-15-officially-released
PolarDB 开源版
9 月初,开源 PolarDB PostgreSQL 15 兼容版本正式发布。
开源云原生数据库 PolarDB PostgreSQL 15 兼容版正式发布上线,该版本 100% 兼容开源 PostgreSQL 15。PolarDB 是阿里云自研云原生关系型数据库,基于共享存储的存算分离架构使其具备灵活弹性和高性价比的特性,在开源 PostgreSQL 很好的性能表现的基础上极大增强了可扩展性和弹性。

开源代码仓库:
https://github.com/ApsaraDB/PolarDB-for-PostgreSQL/tree/POLARDB_15_STABLE
PolarDB PG 15 有诸多值得关注的特性,具体参阅:
开源云原生数据库 PolarDB PostgreSQL 15 兼容版本正式发布
开源 PolarDB PG 15 编译安装
依赖安装
服务器操作系统为:Rocky Linux 8.10 (Green Obsidian)
除一般 PG 所需依赖包之外,PolarDB PG 15 还需安装如下依赖。
dnf install readline-devel llvm-toolset cmake libuuid-devel perl-IPC-Run perl-Test-Simple
如缺失,可能会遇到如下报错。
-
报错: configure: error: library 'uuid' is required for E2FS UUID
,需安装:libuuid-devel
-
报错: configure: error: library 'unwind' is required for backtrace support
,需安装:libunwind-devel
-
报错: configure: error: Additional Perl modules are required to run TAP tests
,需安装:perl-IPC-Run perl-Test-Simple
编译安装
开源代码中已提供编译脚本,直接运行即可。
[shawnyan@rl8 PolarDB-for-PostgreSQL-POLARDB_15_STABLE]$ ./build.sh
Begin stop and clean existing cluster, may raising errors, ignore them
Begin clean existing installation, may raising errors, ignore them
Begin configure, flag: --enable-depend --with-uuid=e2fs --disable-rpath --with-segsize=128 --enable-debug --enable-cassert --enable-tap-tests --enable-fault-injector --with-openssl --enable-nls --with-libxml --with-libxslt --with-icu --with-pam --with-gssapi --with-ldap --with-perl --with-python --with-tcl --with-llvm --with-lz4 --with-zstd --with-system-tzdata=/usr/share/zoneinfo --with-libunwind -q --prefix=/home/shawnyan/tmp_polardb_pg_15_base --with-pgport=55992
Begin compile and install PolarDB
Begin init PolarDB cluster
Begin initdb, flag: -k -A trust -D /home/shawnyan/tmp_polardb_pg_15_primary
Following command can be used to connect to PolarDB:
export PATH=/home/shawnyan/tmp_polardb_pg_15_base/bin:$PATH
psql -h127.0.0.1 -p55992 postgres #primary
查看版本
安装完成后,已自动运行单实例节点,可连接到 PolarDB 查看基础信息。
psql (PostgreSQL 15.8-ShawnYan (PolarDB 15.8.2.0 build unknown debug) on x86_64-linux-gnu)
Type "help" for help.
postgres=# select version();
version
-------------------------------------------------------------------------------------
PostgreSQL 15.8-ShawnYan (PolarDB 15.8.2.0 build unknown debug) on x86_64-linux-gnu
(1 row)
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
---------------+----------+----------+-------------+-------------+------------+-----------------+-----------------------
polardb_admin | shawnyan | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =T/shawnyan +
| | | | | | | shawnyan=CTc/shawnyan
postgres | shawnyan | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc |
template0 | shawnyan | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/shawnyan +
| | | | | | | shawnyan=CTc/shawnyan
template1 | shawnyan | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/shawnyan +
| | | | | | | shawnyan=CTc/shawnyan
(4 rows)
也值得关注的改动 -- pg_walinspect
在诸多变更中,有一项也值得关注:
-
增加内置扩展 pg_walinspect
,允许您直接从 SQL 接口检查 WAL 日志文件内容。
pg_walinspect
pg_walinspect 模块提供了一系列 SQL 函数,允许用户探究 Write-Ahead Log(WAL)中的内容。这个模块的出现改变了之前只能通过外部工具查看 WAL 日志信息的做法,比如 pg_waldump
,使得在数据库内部直接查看 WAL 日志成为可能,从而提高了操作性和便利性。
该模块的所有功能将使用当前服务器的时间线ID提供WAL信息。此模块的所有函数都将尝试查找位于给定或之后的第一个有效 WAL 记录,in_lsn如果start_lsn没有这样的记录可用,则会发出错误。同样,end_lsn必须可用,如果它位于记录中间,则整个记录必须可用。
默认情况下,这些功能的使用仅限于超级用户和角色成员 pg_read_server_files
。超级用户可以使用 GRANT 向其他人授予访问权限。
通过执行下面命令,用户可以激活这个扩展。
postgres=# CREATE EXTENSION pg_walinspect;
CREATE EXTENSION
postgres=# \dx pg_walinspect
List of installed extensions
Name | Version | Schema | Description
---------------+---------+--------+-------------------------------------------------------------
pg_walinspect | 1.0 | public | functions to inspect contents of PostgreSQL Write-Ahead Log
(1 row)
pg_walinspect 模块提供的功能包括:
-
pg_get_wal_record_info(pg_lsn)
获取给定 LSN 的 WAL 记录信息。
-
pg_get_wal_records_info(pg_lsn,pg_lsn)
获取 start_lsn 和 end_lsn 之间的所有有效 WAL 记录的信息。每个 WAL 记录返回一行。
-
pg_get_wal_records_info_till_end_of_wal(pg_lsn)
此函数与 pg_get_wal_records_info() 相同,不同之处在于它获取从 start_lsn 到 WAL 结束的所有有效 WAL 记录的信息。
-
pg_get_wal_stats(pg_lsn,pg_lsn,boolean)
获取 start_lsn 和 end_lsn 之间所有有效 WAL 记录的统计信息。
-
pg_get_wal_stats_till_end_of_wal(pg_lsn,boolean)
此函数与 pg_get_wal_stats() 相同,不同之处在于它获取从 start_lsn 到 WAL 结束的所有有效 WAL 记录的统计信息。
pg_walinspect 模块的使用示例:
-
创建测试表
postgres=# SELECT pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
0/40C012A0
(1 row)
postgres=# create table t (id int, name varchar(10));
CREATE TABLE
postgres=# insert into t select 1,'S';
INSERT 0 1
postgres=# SELECT pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
0/40C02680
(1 row)
-
执行 pg_get_wal_records_info
postgres=# SELECT * FROM pg_get_wal_records_info('0/40C012A0','0/40C02680') where resource_manager not in ('Btree', 'Heap2');
start_lsn | end_lsn | prev_lsn | xid | resource_manager | record_type | record_length | main_data_length | fpi_length |
description | block_ref
------------+------------+------------+-----+------------------+---------------+---------------+------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------
0/40C012A0 | 0/40C012D0 | 0/40C01268 | 0 | XLOG | FPI_FOR_HINT | 44 | 0 | 0 |
| blkref #0: rel 1663/5/2663 fork main blk 2
0/40C012D0 | 0/40C01300 | 0/40C012A0 | 0 | XLOG | FPI_FOR_HINT | 44 | 0 | 0 |
| blkref #0: rel 1663/5/2704 fork main blk 2
0/40C01300 | 0/40C01330 | 0/40C012D0 | 742 | Standby | LOCK | 42 | 16 | 0 | xid 742 db 5 rel 16396
|
0/40C01330 | 0/40C01360 | 0/40C01300 | 742 | Storage | CREATE | 42 | 16 | 0 | file-dio:///home/shawnyan/tmp_polardb_pg_15_data/base/5/16396
|
0/40C01360 | 0/40C01438 | 0/40C01330 | 742 | Heap | INSERT | 211 | 3 | 0 | off 14 flags 0x00
| blkref #0: rel 1663/5/1247 fork main blk 14
0/40C015A0 | 0/40C015D0 | 0/40C01558 | 742 | XLOG | FPI_FOR_HINT | 44 | 0 | 0 |
| blkref #0: rel 1663/5/2704 fork main blk 4
0/40C015D0 | 0/40C016A8 | 0/40C015A0 | 742 | Heap | INSERT | 211 | 3 | 0 | off 15 flags 0x00
| blkref #0: rel 1663/5/1247 fork main blk 14
0/40C01810 | 0/40C018E0 | 0/40C017C8 | 742 | Heap | INSERT | 203 | 3 | 0 | off 3 flags 0x00
| blkref #0: rel 1663/5/1259 fork main blk 0
0/40C01D98 | 0/40C01DC8 | 0/40C01BE0 | 742 | XLOG | FPI_FOR_HINT | 44 | 0 | 0 |
| blkref #0: rel 1663/5/1249 fork fsm blk 2
0/40C01DC8 | 0/40C01DF8 | 0/40C01D98 | 0 | Standby | LOCK | 42 | 16 | 0 | xid 742 db 5 rel 16396
|
0/40C01DF8 | 0/40C01E30 | 0/40C01DC8 | 0 | Standby | RUNNING_XACTS | 54 | 28 | 0 | nextXid 743 latestCompletedXid 741 oldestRunningXid 742; 1 xacts: 742
|
0/40C02460 | 0/40C02618 | 0/40C02418 | 742 | Transaction | COMMIT | 437 | 408 | 0 | 2024-09-05 20:32:49.189678+09; inval msgs: catcache 80 catcache 79 catcache 80 catcache 79 catcache 55 catcache 54 catcache 7 catcache 6
catcache 7 catcache 6 catcache 7 catcache 6 catcache 7 catcache 6 catcache 7 catcache 6 catcache 7 catcache 6 catcache 7 catcache 6 catcache 7 catcache 6 snapshot 2608 relcache 16396 |
0/40C02618 | 0/40C02658 | 0/40C02460 | 743 | Heap | INSERT+INIT | 61 | 3 | 0 | off 1 flags 0x00
| blkref #0: rel 1663/5/16396 fork main blk 0
0/40C02658 | 0/40C02680 | 0/40C02618 | 743 | Transaction | COMMIT | 34 | 8 | 0 | 2024-09-05 20:32:53.92087+09
|
(14 rows)
-
执行 pg_get_wal_stats
postgres=# SELECT * FROM pg_get_wal_stats('0/40C012A0','0/40C02680') where record_size != 0;
resource_manager/record_type | count | count_percentage | record_size | record_size_percentage | fpi_size | fpi_size_percentage | combined_size | combined_size_percentage
------------------------------+-------+------------------+-------------+------------------------+----------+---------------------+---------------+--------------------------
XLOG | 4 | 8 | 176 | 3.5284683239775463 | 0 | 0 | 176 | 3.5284683239775463
Transaction | 2 | 4 | 471 | 9.442662389735364 | 0 | 0 | 471 | 9.442662389735364
Storage | 1 | 2 | 42 | 0.8420208500400962 | 0 | 0 | 42 | 0.8420208500400962
Standby | 3 | 6 | 138 | 2.7666399358460305 | 0 | 0 | 138 | 2.7666399358460305
Heap2 | 7 | 14 | 1515 | 30.3728949478749 | 0 | 0 | 1515 | 30.3728949478749
Heap | 4 | 8 | 686 | 13.753007217321572 | 0 | 0 | 686 | 13.753007217321572
Btree | 29 | 58 | 1960 | 39.29430633520449 | 0 | 0 | 1960 | 39.29430633520449
(7 rows)
引用说明
[1] https://openpolardb.com/document?type=PolarDB-X [2] https://www.postgresql.org/docs/15/pgwalinspect.html
新书推荐
推荐两本新书:
《DBA实战手记》(薛晓刚)
本书是一本指导DBA进行数据库开发和运维的实用手册,本书共9章,包括漫谈数据库、如何提升数据库性能、如何运维好数据库、如何进行数据库设计、如何做好数据库之间的数据同步、认识HTAP技术、认识数据库的功能原理、认识数据库中的数学(逻辑与算法),以及DBA的日常:数据库管理及开发的最佳实践。
内容特色:
-
精彩的实战案例。本书为数据库实践经验集,将为广大数据库从业人员带来巨大的帮助和启发,也为企业的信息化和智能化建设提供坚实的技术支持。
-
丰富的扩展阅读。本书附录:DBA杂谈,分享了包括DBA的职业规划等的六个话题。并以在线的扩展阅读方式呈现类型数据库的应用场景等实践案例。
-
全彩印刷,提供优质阅读体验。
薛老师及其团队奉献给广大同仁的数据库实践经验集《DBA实战手记》一经出版便收到了广泛好评,盖国强、白鳝(徐戟)、贺仁龙为这本书倾情作序,周正中(德哥)、侯圣文、耿航、吴洋鼎力推荐。
《快速掌握PostgreSQL版本新特性》(彭冲)
本书对PostgreSQL的7个大版本:从PostgreSQL 10到PostgreSQL 16,根据公开的新特性实验手册、新特性相关的文章、邮件列表、社区核心提交者相关的博客,以及官方Release Notes等素材进行精加工,并从主要性能、可靠性、运维管理、开发易用性、系统层5个方面进行介绍。
推荐理由:
-
素材丰富。本书吸取了大量国内外资料,我们不断学习这些新特性,就如农民伯伯烧荒播种,为日后的故障案例分析打下基础。
-
特性关联。PG数据库里的一些新特性,有来自其他数据库的应用场景,也有同步实现其他接口协议的功能,还有各版本不断演进的特性。本书对有关联的一些特性,将其前幕背景进行了铺垫及关联陈述。
-
先知后验。大家看到的一些新特性文章可能基于某个dev开发快照版本,亦或是beta测试版本,而版本正式发布时,某些特性可能会有变化。本书新特性的示例代码均以正式版为基准,先知而后验,对一些功能进行了修订。
获取方式:
-
通过PGFans问答社区积分兑换。https://www.modb.pro/point/mall -
通过PGFans问答社区积分兑换。https://pgfans.cn/shop -
网购。
本文由 mdnice 多平台发布
相关文章:

抢鲜体验 PolarDB PG 15 开源版
unsetunsetPolarDB 商业版unsetunset 8 月,PolarDB PostgreSQL 版兼容 PostgreSQL 15 版本(商业版)正式发布上线。 当前版本主要增强优化了以下方面: 改进排序功能:改进内存和磁盘排序算法。 增强SQL功能:支…...
UEFI——使用标准C库
一、C标准库 C标准库是ANSL C标准为C语言定义的标准库。C标准库包含15个头文件:assert.h ctype.h error.h float.h limits.h locale.h math.h setjmp.h signal.h stdarg.h stddef.h stdio.h stdlib.h string.h time.h。标准库函数与C语言的紧密结合给我们开发程序带…...

[全网首发]怎么让国行版iPhone使用苹果Apple Intelligence
全文共分为两个部分:第一让苹果手机接入AI,第二是让苹果手机接入ChatGPT 4o功能。 一、国行版iPhone开通 Apple Intelligence教程 打破限制:让国行版苹果手机也能接入AI 此次发布会上,虽然国行 iPhone16 系列不支持 GPT-4o&…...

C语言-综合案例:通讯录
传送门:C语言-第九章-加餐:文件位置指示器与二进制读写 目录 第一节:思路整理 第二节:代码编写 2-1.通讯录初始化 2-2.功能选择 2-3.增加 和 扩容 2-4.查看 2-5.查找 2-6.删除 2-7.修改 2-8.退出 第三节:测试 下期…...
XWiki中添加 html 二次编辑失效
如果直接在 XWiki 中添加 html, 例如 修改颜色, 新窗口打开主页面等功能, 首次保存是生效的. 如果再次编辑, 则失效, 原因是被转换成了 Markdown 的代码, 而 Markdown 不支持. 解决这个问题可以使用 HTML 宏. 在 XWiki 中使用 Markdown 1.2 语法时,默认 Markdown …...

外贸|基于Java+vue的智慧外贸平台系统(源码+数据库+文档)
外贸|智慧外贸平台|外贸服务系统 目录 基于Javavue的智慧外贸平台系统 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师&…...

Elasticsearch:无状态世界中的数据安全
作者:来自 Elastic Henning Andersen 在最近的博客文章中,我们宣布了支持 Elastic Cloud Serverless 产品的无状态架构。通过将持久性保证和复制卸载到对象存储(例如 Amazon S3),我们获得了许多优势和简化。 从历史上…...

动手学习RAG:迟交互模型colbert微调实践 bge-m3
动手学习RAG: 向量模型动手学习RAG: BGE向量模型微调实践]()动手学习RAG: BCEmbedding 向量模型 微调实践]()BCE ranking 微调实践]()GTE向量与排序模型 微调实践]()模型微调中的模型序列长度]()相似度与温度系数 本文我们来进行ColBERT模型的实践,按惯例ÿ…...

springboot 整合quartz定时任务
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pom的配置1.加注解 二、使用方法1.工程图2.创建工具类 三、controller 实现 前言 提示:这里可以添加本文要记录的大概内容: 提示&a…...

erlang学习: Mnesia Erlang数据库3
Mnesia数据库删除实现和事务处理 -module(test_mnesia). -include_lib("stdlib/include/qlc.hrl").-record(shop, {item, quantity, cost}). %% API -export([insert/3, select/0, select/1, delete/1, transaction/1,start/0, do_this_once/0]). start() ->mnes…...

善于善行——贵金属回收
在当今社会,贵金属回收已成为一项日益重要的产业。随 着科技的不断进步和人们对资源可持续利用的认识逐渐提高,贵金属回收的现状也备受关注。 目前,贵金属回收市场呈现出蓬勃发展的态势。一方面,贵金属如金、银、铂、钯等在众多领…...

用CSS 方式设置 table 样式
在现代Web开发中,使用CSS来设置table的样式是一种常见且强大的方法,它能让你的表格数据既美观又易于阅读。下面我将通过一个示例来展示如何使用现代CSS技巧来美化表格。 效果图 HTML 结构 首先,我们定义一个基本的HTML表格结构:…...
Elasticsearch7.x 集群迁移文档
一、集群样例信息 集群名称:escluster-ali-test 1、源集群:(source_cluster) 节点IP节点名称节点角色是否为master节点10.200.112.149es2.gj1.china-job.cndata,master是10.200.112.151es1.gj1.china-job.cndata,master否10.200.112.153es…...

高空抛物检测算法的应用场景解析
高空抛物事件频发,对公众安全构成严重威胁。无论是居民区还是商业中心,从高层建筑中丢弃物品都可能导致人员伤亡和财产损失。传统的监控手段多以事后追溯为主,无法在事发时及时预警和干预。为应对这一难题,视觉分析技术的发展为高…...
Leetcode 无重复字符的最长子串
算法思想: 滑动窗口:通过 start 和 end 来维护一个滑动窗口,start 指向当前窗口的起点,end 是当前窗口的末尾。滑动窗口中的字符都是无重复的。哈希表 charIndexMap:用于存储每个字符及其最近一次出现的位置。更新起始…...

用命令行的方式启动.netcore webapi
用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为: dotnet 项目启动文件.dll --urls"ht…...

Spring6详细学习笔记(IOC+AOP)
一、Spring系统架构介绍 1.1、定义 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。Spring官网 Spring是一款主流的Java EE 轻量级开源框架,目的是用于简化Java企业级引用的开发难度和开发周期。从简单性、可测试性和松耦…...
@RequestMapping 基于哪个库进行通信
RequestMapping 是 Spring Framework 中用于处理 HTTP 请求的注解,主要用于定义控制器方法的请求映射。它并不直接基于某个特定的通信库,而是依赖于 Spring MVC 框架的核心功能。 1. Spring MVC RequestMapping 是 Spring MVC 的一部分,Spr…...

GPIO(General Purpose Input/Output)输入/输出
GPIO最简单的功能是输出高低电平;GPIO还可以被设置为输入功能,用于读取按键等输入信号;也可以将GPIO复用成芯片上的其他外设的控制引脚。 STM32F407ZGT6有8组IO。分别为GPIOA~GPIOH,除了GPIOH只有两个IO,其余每组IO有…...

两个pdf合并成一个pdf,这些pdf合并小技巧了解下
在日常工作和学习中,我们经常会遇到需要将多个PDF文件合并成一个文件的情况。这不仅可以提高文件管理的效率,还能让信息展示更加集中和便捷。今天就来给大家分享几种非常简单便捷的PDF合并小技巧,一起来学习下吧。 方法一:WPS WP…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...