当前位置: 首页 > news >正文

Oracle 23ai Vector Search 系列之4 VECTOR数据类型和基本操作

文章目录

  • Oracle 23ai Vector Search 系列之4 VECTOR数据类型和基本操作
    • VECTOR 数据类型基本语法
    • Vector 维度限制和向量大小
    • 向量存储格式(DENSE vs SPARSE)
      • 1. DENSE存储
      • 2. SPARSE存储
      • 3. 内部存储与空间计算
    • Oracle VECTOR数据类型的声明格式
    • VECTOR基本操作
      • 创建包括VECTOR类型的表
      • 插入数据
      • 查询数据
    • VECTOR相关函数
      • 1. 向量创建函数
        • VECTOR() 与 TO_VECTOR()
      • 2. 向量属性相关函数
        • VECTOR_NORM()
        • VECTOR_DIMENSION_COUNT()
        • VECTOR_DIMENSION_FORMAT()
      • 3. 向量转换函数
        • VECTOR_SERIALIZE()与 FROM_VECTOR()
      • 4. 相似性计算函数
        • VECTOR_DISTANCE()
      • 5. 向量数据的分块管理​​
      • 6.​​生成向量嵌入
    • 参考

Oracle 23ai Vector Search 系列之4 VECTOR数据类型和基本操作

Oracle Database 23ai 引入了 ​VECTOR 数据类型,用于存储高维数值向量(如文本、图像、音视频的嵌入向量)。

VECTOR 数据类型基本语法

创建Oracle VECTOR 数据类型列的基本语法如下:

VECTOR([dimensions], [format], [storage_type])

其中各个​参数如下:

​dimensions​(可选):指定固定维度数(1-65535),*表示允许任意维度。
​format​(可选):INT8、FLOAT32、FLOAT64、BINARY,*表示允许任意格式。
​storage_type​(可选):DENSE(默认)或SPARSE。

例:

SQL> CREATE TABLE my_vectors (id NUMBER, embedding VECTOR);Table created.SQL> CREATE TABLE my_vectors2 (id NUMBER, embedding VECTOR(768, INT8)) ;Table created.SQL> 

参考:
SQL Language Reference
https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/vector.html

VECTOR
VECTOR ( expr [ , number_of_dimensions [ , format ] ] )

Create Tables Using the VECTOR Data Type
https://docs.oracle.com/en/database/oracle/oracle-database/23/vecse/create-tables-using-vector-data-type.html

Vector 维度限制和向量大小

Vector 维度和向量大小如下:

 - Oracle AI Vector Search 向量支持最多 ​65,535 个维度。- Oracle AI Vector Search 向量维度的​数值格式支持​BINARY、INT8、FLOAT32 和 ​FLOAT64 格式。- Oracle AI Vector Search 向量的大小等于维度数与每个维度的字节大小的乘积。向量大小 (字节)=维度数×单个维度的字节数​例如:
​       2,048 维度 + INT8 格式:2,048 维度 × 1 字节/维度 = ​2 KB​1,024 维度 + FLOAT32 格式:1,024 维度 × 4 字节/维度 = ​4 KB

向量存储格式(DENSE vs SPARSE)

1. DENSE存储

​特点:
每个维度值物理存储,无论是否为0。
默认存储格式。
​适用场景:维度值大部分非零的向量。

2. SPARSE存储

​特点:
仅存储非零维度值,节省空间。
​不支持BINARY格式。
​适用场景:维度值大部分为0的向量。

3. 内部存储与空间计算

​存储方式:使用Securefile BLOBs存储。
​空间估算公式:
​DENSE向量:
存储空间 = 向量数 × 维度数 × 单维度字节数
(如FLOAT32为4字节,INT8为1字节)。
​SPARSE向量:
存储空间 ≈ 向量数 × [(平均非零维度数 × 4字节) + (非零维度数 × 单维度字节数)]

Oracle VECTOR数据类型的声明格式

参考:
Create Tables Using the VECTOR Data Type
https://docs.oracle.com/en/database/oracle/oracle-database/23/vecse/create-tables-using-vector-data-type.html

DENSE存储
在这里插入图片描述

SPARSE存储
在这里插入图片描述

VECTOR基本操作

创建包括VECTOR类型的表

SQL> CREATE TABLE my_vector_table (id NUMBER, embedding VECTOR);Table created.SQL> desc my_vector_tableName					   Null?    Type----------------------------------------- -------- ----------------------------ID						    NUMBEREMBEDDING					    VECTOR(*, *, DENSE)SQL> 

※VECTOR的声明格式表示向量可以具有任意数量的维度和格式。

插入数据

SQL>  INSERT INTO my_vector_table  VALUES (1,'[1, 2, 3]');1 row created.SQL> commit;Commit complete.

查询数据

SQL> select * from my_vector_table;ID
----------
EMBEDDING
--------------------------------------------------------------------------------1
[1.0E+000,2.0E+000,3.0E+000]SQL>

当然,和其他数据类型一样,VECTOR也支持增删改操作。

VECTOR相关函数

Oracle Vector DB提供了一系列向量相关函数,用于向量的创建、转换、属性计算及相似性搜索。

1. 向量创建函数

VECTOR() 与 TO_VECTOR()

VECTOR() 与 TO_VECTOR()用于将字符串转换为向量类型。
两者功能相同,支持指定维度数量和数据类型(如float32int8等)。

例:

SELECT VECTOR('[4,3]', 2, float32) FROM dual; -- 创建二维float32向量
SELECT TO_VECTOR('[34.6, 77.8]', 2, float64); -- Oracle 23c起可省略FROM dual
SQL> SELECT VECTOR('[4,3]', 2, float32) FROM dual; VECTOR('[4,3]',2,FLOAT32)
-----------------------------------------------------------------
[4.0E+000,3.0E+000]SQL> SELECT TO_VECTOR('[34.6, 77.8]', 2, float64);TO_VECTOR('[34.6,77.8]',2,FLOAT64)
-------------------------------------------------------------------------
[3.4600000000000001E+001,7.7799999999999997E+001]

使用 Oracle Client 23ai 库或 Thin 模式驱动程序的应用程序,可以直接以字符串或 CLOB 类型插入向量数据。

例:

INSERT INTO my_vector_table  VALUES (1,'[1, 2, 3]');

2. 向量属性相关函数

VECTOR_NORM()

VECTOR_NORM()用于计算向量的欧氏距离(原点到向量点的距离),结果类型与输入向量一致。

例:

SELECT VECTOR_NORM(VECTOR('[4,3]', 2, float32)); -- 输出5.0(勾股定理)
SQL> SELECT VECTOR_NORM(VECTOR('[4,3]', 2, float32)); VECTOR_NORM(VECTOR('[4,3]',2,FLOAT32))
--------------------------------------5.0E+000SQL> 
VECTOR_DIMENSION_COUNT()

VECTOR_DIMS()和VECTOR_DIMENSION_COUNT()相同, 用于返回向量的维度数量。

例:

SELECT VECTOR_DIMENSION_COUNT(VECTOR('[34.6,77.8,9]', 3, float32)); -- 输出3
SQL> SELECT VECTOR_DIMENSION_COUNT(VECTOR('[34.6,77.8,9]', 3, float32)); VECTOR_DIMENSION_COUNT(VECTOR('[34.6,77.8,9]',3,FLOAT32))
---------------------------------------------------------3SQL> 
VECTOR_DIMENSION_FORMAT()

VECTOR_DIMENSION_FORMAT()用于返回向量元素的数据类型。

例:

SELECT VECTOR_DIMENSION_FORMAT(VECTOR('[34.6,77.8]', 2, float64)); -- 输出FLOAT64
SQL> SELECT VECTOR_DIMENSION_FORMAT(VECTOR('[34.6,77.8]', 2, float64));VECTOR_DIMENSION_FORMAT(VECTOR('[34.6,77.8]',2,FLO
--------------------------------------------------
FLOAT64SQL> 

3. 向量转换函数

VECTOR_SERIALIZE()与 FROM_VECTOR()

VECTOR_SERIALIZE()与 FROM_VECTOR()两者功能等价,用于将向量转换为字符串或CLOB类型,适用于不支持本地向量绑定的驱动(如JDBC)。

例:

SELECT VECTOR_SERIALIZE(VECTOR('[1.1,2.2,3.3]',3,float32) RETURNING VARCHAR2(1000)); 
-- 输出'[1.1,2.2,3.3]'
SQL>   SELECT VECTOR_SERIALIZE(VECTOR('[1.1,2.2,3.3]',3,float32) RETURNING VARCHAR2(1000)); VECTOR_SERIALIZE(VECTOR('[1.1,2.2,3.3]',3,FLOAT32)RETURNINGVARCHAR2(1000))
--------------------------------------------------------------------------------
[1.10000002E+000,2.20000005E+000,3.29999995E+000]

4. 相似性计算函数

VECTOR_DISTANCE()

VECTOR_DISTANCE()用于计算两个向量之间的数学距离,支持多种距离度量(如EUCLIDEAN欧氏距离)。常用于相似性搜索(如近邻查询)。

例:

SELECT TO_NUMBER(VECTOR_DISTANCE(VECTOR('[0,0]', 2, float32), VECTOR('[4,3]', 2, float32), EUCLIDEAN
)) AS DISTANCE; -- 输出5.0
SQL> SELECT TO_NUMBER(VECTOR_DISTANCE(VECTOR('[0,0]', 2, float32), VECTOR('[4,3]', 2, float32), EUCLIDEAN)) AS DISTANCE;   2    3    4    5  DISTANCE
----------5SQL> 

5. 向量数据的分块管理​​

VECTOR_CHUNKS()函数主要用于​​向量数据的分块管理​​,适用于大规模向量数据集的高效存储、索引构建及查询优化。

参考:
https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/vector_chunks.html

6.​​生成向量嵌入

VECTOR_EMBEDDING ()是Oracle 23ai中用于​​生成向量嵌入(Vector Embeddings)的核心函数​​,支持将非结构化数据(文本、图像等)转换为高维向量。

参考:
https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/vector_embedding.html

更多参数可以参考如下官方文档。
SQL Language Reference

参考

https://www.oracle.com/database/ai-vector-search/
https://www.oracle.com/database/ai-vector-search/faq/

Create Tables Using the VECTOR Data Type
https://docs.oracle.com/en/database/oracle/oracle-database/23/vecse/create-tables-using-vector-data-type.html

Oracle Database New Features
https://docs.oracle.com/en/database/oracle/oracle-database/23/nfcoa/ai_vector_search.html#GUID-ai_vector_search1

相关文章:

Oracle 23ai Vector Search 系列之4 VECTOR数据类型和基本操作

文章目录 Oracle 23ai Vector Search 系列之4 VECTOR数据类型和基本操作VECTOR 数据类型基本语法Vector 维度限制和向量大小向量存储格式(DENSE vs SPARSE)1. DENSE存储2. SPARSE存储3. 内部存储与空间计算 Oracle VECTOR数据类型的声明格式VECTOR基本操…...

如何用开源工具,把“定制动漫面具”做成柔性制造?

原文链接:https://www.nocobase.com/cn/blog/kigland。 引言 在苏州,有一支团队正在悄悄改变个性化制造的方式。他们不做快消品,也不靠规模取胜,却在全球角色扮演爱好者圈子里收获了不少“忠粉”。 他们叫 KIGLAND,一…...

《命理学》专项探究与研习

基础论调 八字是什么 八字:用天干地支表示一个人的出生时间 例如: 如上图:某人的干支历出生时间:甲申年--己巳月--戊戌日--癸丑时 十天干 甲乙丙丁戊己庚辛壬癸 奇数位为阳,偶数位为阴 十二地支 子丑寅卯辰巳午未申酉…...

Linux 指令初探:开启终端世界的大门

前言 当我们初次接触 Linux,往往会被一串串在黑底屏幕中跳动的字符震撼甚至吓退。然而,正是这些看似晦涩的命令,构建了服务器、嵌入式系统乃至云计算的世界。 本篇将带你从最基础的 Linux 指令开始,逐步揭开命令行的神秘面纱。从…...

CentOS 7 yum 无法安装软件的解决方法

一、解决方法 1、备份原有的 CentOS 7 默认 YUM 源配置文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2、从阿里云镜像源下载 CentOS 7 的 YUM 源配置文件,并覆盖原有的配置文件 wget -O /etc/yum.repos.d/CentOS-Base.re…...

oracle 游标的管理

8.2.1游标的概念和类型 游标(CURSOR)存储于服务器端,当服务器执行了一个查询后,查询返回的记录集存放在光标中,通过光标上的操作可以把这些记录检索到客户端的应用程序。光标是一种变量,它对应于一个查询语句确定的结果集。它用于…...

深入理解PCA降维:原理、实现与应用

1. 引言 在机器学习与数据科学领域,我们经常会遇到高维数据带来的"维度灾难"问题。随着特征数量的增加,数据稀疏性、计算复杂度等问题会显著加剧。主成分分析(PCA, Principal Component Analysis)作为一种经典的降维技术,能够有效解…...

AI重构农业:从“面朝黄土“到“数字原野“的产业跃迁—读中共中央 国务院印发《加快建设农业强国规划(2024-2035年)》

在东北黑土地的万亩良田上,无人机编队正在执行精准施肥作业;在山东寿光的智慧大棚里,传感器网络实时调控着番茄生长的微环境;在云南的咖啡种植园中,区块链溯源系统记录着每粒咖啡豆的旅程。这场静默的农业革命&#xf…...

当前主流的LLM Agent架构、能力、生态和挑战

一、LLM Agent的基本架构 尽管LLM Agent的具体实现五花八门,但大部分系统在架构层面上可以归纳为以下几个关键模块: 感知(Perception) Agent需要感知外界的信息。对于文本环境,感知往往是读取输入(如用户指…...

网站缓存怎么检查是否生效?

为何选择CDN缓存技术? 部署内容缓存系统可有效提升网页响应效率,降低服务器资源占用与流量消耗,改善访客交互体验,强化系统架构容错能力,促进搜索引擎优化效果,达成资源分配与运行效能的动态平衡。 科学配…...

​‌Qt的稳定版本与下载

​‌Qt的稳定版本主要包括Qt5和Qt6的长期支持(LTS)版本‌。以下是详细的版本信息: Qt5的稳定版本 ‌Qt5.6 LTS‌:2016年3月15日发布,是一个长期支持版本。 ‌Qt5.9 LTS‌:2017年6月16日发布,也…...

用 OpenCV 给图像 “挑挑拣拣”,找出关键信息!

目录 一、背景 二、OpenCV 关键词提取基础概念 什么是关键词提取 OpenCV 在关键词提取中的作用 三、OpenCV 关键词提取的流程 整体流程概述 详细步骤及作用 流程图 四、OpenCV 关键词提取的代码实现 环境准备 代码演示 代码说明 五、常见问题及解决方法 特征提取不…...

14-Hugging Face 模型微调训练(基于 BERT 的中文评价情感分析(二分类))

1. datasets 库核心方法 1.1. 列出数据集 使用 datasets 库,你可以轻松列出所有 Hugging Face 平台上的数据集: from datasets import list_datasets # 列出所有数据集 all_datasets list_datasets() print(all_datasets)1.2. 加载数据集 你可以通过…...

php-cgi参数注入攻击经历浅谈

起因: 阿里云服务器再次警告出现挖矿程序。上一次服务器被攻击后,怕有恶意程序残留,第一时间重装了系统,也没有详查攻击入口。不过事后还是做了一些防范,这台留作公网访问的服务器上并未保留业务数据,只作…...

istio流量治理——重试

Istio 的重试功能的底层原理主要依赖于其数据平面组件 Envoy 代理(Sidecar 或 Gateway)的实现。Envoy 是一个高性能的代理服务器,负责处理所有流入和流出的流量,并在 Istio 的服务网格中执行流量管理策略,包括重试逻辑…...

Spring Cloud之服务入口Gateway之Route Predicate Factories

目录 Route Predicate Factories Predicate 实现Predicate接口 测试运行 Predicate的其它实现方法 匿名内部类 lambda表达式 Predicate的其它方法 源码详解 代码示例 Route Predicate Factories The After Route Predicate Factory The Before Route Predicate Fac…...

测试分类篇

文章目录 目录1. 为什么要对软件测试进行分类2. 按照测试目标分类2.1 界面测试2.2 功能测试2.3 性能测试2.4 可靠性测试2.5 安全性测试2.6 易用性测试 3. 按照执行方式分类3.1 静态测试3.2 动态测试 4. 按照测试方法分类4.1 白盒测试4.1.1 语句覆盖4.1.2 判定覆盖4.1.3 条件覆盖…...

Django接入 免费的 AI 大模型——讯飞星火(2025年4月最新!!!)

上文有介绍deepseek接入,但是需要 付费,虽然 sliconflow 可以白嫖 token,但是毕竟是有限的,本文将介绍一款完全免费的 API——讯飞星火 目录 接入讯飞星火(免费) 测试对话 接入Django 扩展建议 接入讯飞星火…...

使用NVM下载Node.js管理多版本

提示:我解决这个bug跟别人思路可能不太一样,因为我是之前好用,换个项目就不好使了,倦了 文章目录 前言项目场景一项目场景二解决方案:下载 nvm安装 nvm重新下载所需Node 版本nvm常用命令 项目结构说明 前言 提示&…...

下载安装Node.js及其他环境

提示:从Node版本降级到Vue项目运行 文章目录 下载Node.js环境配置配置环境变量 安装 cnpm(我需要安装)安装脚手架安装依赖安装淘宝镜像(注意会更新)cnpm vs npm 与新旧版本核心差异包管理器不同功能差异如何选择&#…...

Java 基础-31-枚举-认识枚举

在Java编程语言中,枚举(Enum)是一种特殊的类,它允许一组固定的常量。它们非常适合用来表示一组固定的值,比如星期几、季节、颜色等。枚举自Java 5开始引入,为定义常量提供了一种更强大和方便的方式。本文将…...

问题1:Sinal 4在开启PAC检查的设备崩溃

​ 问题信息 硬件不支持PAC(Pointer Authentication),此类错误就是signal 11的错误,崩溃信息如下: Build fingerprint: google/sdk_gphone64_arm64/emu64a:16/BP22.250221.010/13193326:userdebug/dev-keys Revision: 0 ABI: arm64 Timestamp: 2025-04-06 11:33:13.923…...

美团Leaf分布式ID生成器:雪花算法原理与应用

📖 前言 在分布式系统中,全局唯一ID生成是保证数据一致性的核心技术之一。传统方案(如数据库自增ID、UUID)存在性能瓶颈或无序性问题,而美团开源的Leaf框架提供了高可用、高性能的分布式ID解决方案。本文重点解析Leaf…...

【C++奇遇记】C++中的进阶知识(多态(一))

🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集 数据库专栏 初阶数据结构 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如…...

C++自学笔记---指针在数组遍历中的应用

指针在数组遍历中的应用 在这一篇文章中&#xff0c;我们可以看到指针在数组遍历中的具体应用例子。 1. 赋值 我们要创建一个将数组的所有元素赋值为 1 的函数&#xff0c;并使用解引用运算符来访问数组元素. 代码为&#xff1a; #include <iostream> using namespac…...

Java八股文-List集合

集合的底层是否加锁也就代表是否线程安全 (一)List集合 一、数组 array[1]是如何通过索引找到堆内存中对应的这块数据的呢? (1)数组如何获取其他元素的地址值 (2)为什么数组的索引是从0开始的&#xff0c;不可以从1开始吗 (3)操作数组的时间复杂度 ①查找 根据索引查询 未…...

二叉树——队列bfs专题

1.N叉树的层序遍历 我们之前遇到过二叉树的层序遍历&#xff0c;只需要用队列先进先出的特性就可以达到层序遍历的目的。 而这里不是二叉树&#xff0c;也就是说让节点的孩子入队列时不仅仅是左右孩子了&#xff0c;而是它的所有孩子。而我们看这棵多叉树的构造&#xff0c;它…...

ESPIDF备忘

ESP8266 环境搭建 Windows 首先确保安装好了vscode和git 在工作目录使用git 克隆这个 git clone --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git下载 集成环境和 ESP8266编译工具 旧版本的集成工具可能有问题 这里用20200601版本的 https://dl.espressif.co…...

4-c语言中的数据类型

一.C 语⾔中的常量 1.生活中的数据 整数&#xff1a; 100,200,300,400,500 小数: 11.11 22.22 33.33 字母&#xff1a; a&#xff0c;b&#xff0c;c&#xff0c;d A&#xff0c;B&#xff0c;C&#xff0c;D 在 C 语⾔中我们把字⺟叫做字符. 字符⽤单引号引⽤。例如A’ 单词…...

ST 芯片架构全景速览:MCU、无线 SoC、BLE 模块、MPU 差异详解

在嵌入式开发中,ST 是一个非常常见的芯片厂商,其产品线覆盖了 MCU、无线芯片、BLE 模块以及运行 Linux 的 MPU 等多个领域。很多开发者初次接触 ST 时会对这些产品之间的关系感到困惑。 本文从分类视角出发,带你快速了解 ST 芯片家族的核心架构和主要用途。 🧭 ST 芯片四…...

第十章Python语言高阶加强-SQL(数据库)

目录 一.数据库介绍 二.MySQL的安装 三.MySQL入门使用 四.SQL基础和DDL 五.SQL—DML 六.SQL—DQL 1.基础查询 2.分组聚合 七.Python操作MySQL 1.基础使用 2.数据插入 此章节主要掌握并且了解SQL语法和基础使用。如&#xff1a;安装、增删改查&#xff0c;SQL在未来我…...

NO.71十六届蓝桥杯备战|搜索算法-递归型枚举与回溯剪枝|枚举子集|组合型枚举|枚举排列|全排列问题(C++)

什么是搜索&#xff1f; 搜索&#xff0c;是⼀种枚举&#xff0c;通过穷举所有的情况来找到最优解&#xff0c;或者统计合法解的个数。因此&#xff0c;搜索有时候也叫作暴搜。 搜索⼀般分为深度优先搜索(DFS)与宽度优先搜索(BFS)。深度优先遍历vs深度优先搜索&#xff0c;宽度…...

C++ 中为什么构造函数不需要实现虚函数,而析构函数需要?

在C中&#xff0c;构造函数不需要是虚函数&#xff0c;而析构函数往往需要&#xff0c;原因如下&#xff1a; 构造函数 对象创建顺序&#xff1a;构造函数的主要任务是初始化对象的成员变量&#xff0c;创建对象时需要先调用基类的构造函数&#xff0c;再调用派生类的构造函数…...

如何获取oracle cloud永久免费的vps(4C/24G)?

1.注册oracle cloud账号 Oracle Cloud 免费套餐 | Oracle 中国 新注册的小伙伴&#xff0c;可以在 30 天内&#xff0c;利用 300 美元免费储值&#xff0c;任性使用所有 Oracle Cloud 基础设施服务。 30 天后呢&#xff1f;你仍然可以畅享 Always Free 免费套餐中的云服务&am…...

TypeScript面试题集合【初级、中级、高级】

初级面试题 什么是TypeScript&#xff1f; TypeScript是JavaScript的超集&#xff0c;由Microsoft开发&#xff0c;它添加了可选的静态类型和基于类的面向对象编程。TypeScript旨在解决JavaScript的某些局限性&#xff0c;比如缺乏静态类型和基于类的面向对象编程&#xff0c…...

java面试篇 并发编程篇

目录 1.线程的基础知识 1.线程与进程的区别&#xff1f; 2.并行与并发的区别&#xff1f; 3.创建线程的方式有哪些&#xff1f; 4.线程包括哪些状态&#xff1f;状态之间是如何变化的&#xff1f; 5.T1&#xff0c;T2&#xff0c;T3三个线程新建完毕后&#xff0c;如何保证…...

掌握 JSON 到表格转换:全面指南

高效地转换数据格式对于现代数据处理至关重要。JSON&#xff08;JavaScript 对象表示法&#xff09;因其灵活性而广受欢迎&#xff0c;而 CSV 或 Excel 等表格格式则更适用于数据分析和可视化。本文将介绍多种 JSON 转换为表格格式的方法&#xff0c;帮助您提升数据处理和可视化…...

【Spring Cloud Netflix】GateWay服务网关

1.基本概述 GateWay用于在微服务架构中提供统一的入口点&#xff0c;对请求进行路由&#xff0c;过滤和处理。它就像是整个微服务系统的大门&#xff0c;所有外部请求都要通过它才能访问到后端的各个微服务。 2.核心概念 2.1路由(Route) 路由是Spring Cloud gateWay中最基本…...

国产芯片解析:龙讯USB Type-C/DP Transmitter多场景覆盖,定义高速互联新标杆

在智能设备功能日益复杂化的今天&#xff0c;高速数据传输、高清视频输出与多功能接口融合已成为行业刚需。龙讯半导体&#xff08;Lontium&#xff09;凭借其领先的芯片设计能力&#xff0c;推出多款‌USB Type-C/DP Transmitter芯片‌&#xff0c;覆盖从消费电子到工业应用的…...

蓝桥杯 web 展开你的扇子(css3)

普通答案&#xff1a; #box:hover #item1{transform: rotate(-60deg); } #box:hover #item2{transform: rotate(-50deg); } #box:hover #item3{transform: rotate(-40deg); } #box:hover #item4{transform: rotate(-30deg); } #box:hover #item5{transform: rotate(-20deg); }…...

【Kubernetes】StorageClass 的作用是什么?如何实现动态存储供应?

StorageClass 使得用户能够根据不同的存储需求动态地申请和管理存储资源。 StorageClass 定义了如何创建存储资源&#xff0c;并指定了存储供应的配置&#xff0c;例如存储类型、质量、访问模式等。为动态存储供应提供了基础&#xff0c;使得 Kubernetes 可以在用户创建 PVC 时…...

4月7号.

双列集合的特点: Map中的常见API: //1.创建Map集合的对象 Map<String, String> m new HashMap<>();//2.添加元素 Stringvalue1 m.put("郭靖","黄蓉"); System.out.println(value1); m.put("韦小宝","沐剑屏"); m.put(&q…...

C++抽卡模拟器

近日在学校无聊&#xff0c;写了个抽卡模拟器供大家娱乐。 代码实现以下功能&#xff1a;抽卡界面&#xff0c;抽卡判定、动画播放、存档。 1.抽卡界面及判定 技术有限&#xff0c;不可能做的和原神一样精致。代码如下&#xff08;注&#xff1a;这不是完整代码&#xff0c;…...

蓝桥杯 2. 开赛主题曲【算法赛】

2.开赛主题曲【算法赛】 - 蓝桥云课 这道题和3. 无重复字符的最长子串 - 力扣&#xff08;LeetCode&#xff09;类似&#xff0c;因为题目中规定只有小写字母&#xff0c;所以定义统计数组时只需要定义26个字母即可&#xff0c;然后每次遍历的字符减去‘a’即为他的下标 impo…...

Spring Boot 中的 Bean

2025/4/6 向全栈工程师迈进&#xff01; 一、Bean的扫描 在之前&#xff0c;对于Bean的扫描&#xff0c;我们可以在XML文件中书写标签&#xff0c;来指定要扫描的包路径&#xff0c;如下所示,可以实通过如下标签的方式&#xff1a; <context:component-scan base-package&…...

基于springboot科研论文检索系统的设计(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着我国经济的高速发展与人们生活水平的日益提高&#xff0c;人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下&#xff0c;人们更趋向于足不出户解决生活上的问题&#xff0c;线上管理系统展现了其蓬勃生命力和广阔的前景。与此同时&#xff0c;在此…...

Mysql入门

一、数据库三层结构 所谓安装Mysql数据库&#xff0c;就是在主机安装一个数据库管理系统(DBMS)&#xff0c;这个管理程序可以管理多个数据库。DBMS(database manage system)一个数据库中可以创建多个表&#xff0c;以保存数据(信息)。数据库管理系统(DBMS)、数据库和表的关系如…...

如何解决uniapp打包安卓只出现功能栏而无数据的问题

如何解决uniapp打包安卓只出现功能栏而无数据的问题 经验来自&#xff1a;关于Vue3中调试APP触发异常&#xff1a;exception:white screen cause create instanceContext failed,check js stack -> at useStore (app-service.js:2309:15)解决方案 - 甲辰哥来帮你算命 - 博客…...

Python高级爬虫之JS逆向+安卓逆向1.1节-搭建Python开发环境

目录 引言&#xff1a; 1.1.1 为什么要安装Python? 1.1.2 下载Python解释器 1.1.3 安装Python解释器 1.1.4 测试是否安装成功 1.1.5 跟大神学高级爬虫安卓逆向 引言&#xff1a; 大神薯条老师的高级爬虫安卓逆向教程&#xff1a; 这套爬虫教程会系统讲解爬虫的初级&…...

剖析Mybatis中用到的设计模式

框架对很多设计模式的实现&#xff0c;都并非标准的代码实现&#xff0c;都做了比较多的自我改进。实际上&#xff0c;这就是所谓的灵活应用, 只借鉴不照搬, 根据具体问题针对性地去解决。 涉及到Mybatis源码知识和设计模式&#xff0c;这点我之前的博客均有涉及。 可以查看我的…...