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

doris: MySQL

Doris JDBC Catalog 支持通过标准 JDBC 接口连接 MySQL 数据库。本文档介绍如何配置 MySQL 数据库连接。

使用须知​

要连接到 MySQL 数据库,您需要

  • MySQL 5.7, 8.0 或更高版本

  • MySQL 数据库的 JDBC 驱动程序,您可以从 Maven 仓库下载最新或指定版本的 MySQL JDBC 驱动程序。推荐使用 MySQL Connector/J 8.0.31 及以上版本。

  • Doris 每个 FE 和 BE 节点和 MySQL 服务器之间的网络连接,默认端口为 3306。

连接 MySQL​

CREATE CATALOG mysql PROPERTIES ("type"="jdbc","user"="root","password"="secret","jdbc_url" = "jdbc:mysql://example.net:3306","driver_url" = "mysql-connector-j-8.3.0.jar","driver_class" = "com.mysql.cj.jdbc.Driver"
)

备注

jdbc_url 定义要传递给 MySQL JDBC 驱动程序的连接信息和参数。 支持的 URL 的参数可在 MySQL 开发指南 中找到。

连接安全​

如果您使用数据源上安装的全局信任证书配置了 TLS,则可以通过将参数附加到在 jdbc_url 属性中设置的 JDBC 连接字符串来启用集群和数据源之间的 TLS。

例如,对于 MySQL Connector/J 8.0 版,使用 sslMode 参数通过 TLS 保护连接。默认情况下,该参数设置为 PREFERRED,如果服务器启用,它可以保护连接。您还可以将此参数设置为 REQUIRED,如果未建立 TLS,则会导致连接失败。

您可以在通过在 jdbc_url 中添加 sslMode 参数来配置它:

“jdbc_url”=“jdbc:mysql://example.net:3306/?sslMode=REQUIRED”

有关 TLS 配置选项的更多信息,请参阅 MySQL JDBC 安全文档。

层级映射​

映射 MySQL 时,Doris 的一个 Database 对应于 MySQL 中的一个 Database。而 Doris 的 Database 下的 Table 则对应于 MySQL 中,该 Database 下的 Tables。即映射关系如下:

DorisMySQL
CatalogMySQL Server
DatabaseDatabase
TableTable

类型映射​

MySQL 到 Doris 类型映射​

MYSQL TypeDoris TypeComment
BOOLEANTINYINT
TINYINTTINYINT
SMALLINTSMALLINT
MEDIUMINTINT
INTINT
BIGINTBIGINT
UNSIGNED TINYINTSMALLINT
UNSIGNED MEDIUMINTINT
UNSIGNED INTBIGINT
UNSIGNED BIGINTLARGEINT
FLOATFLOAT
DOUBLEDOUBLE
DECIMALDECIMAL
UNSIGNED DECIMAL(p,s)DECIMAL(p+1,s) / STRING
DATEDATE
TIMESTAMPDATETIME
DATETIMEDATETIME
YEARSMALLINT
TIMESTRING
CHARCHAR
VARCHARVARCHAR
JSONSTRING
SETSTRING
ENUMSTRING
BITBOOLEAN/STRING
TINYTEXT,TEXT,MEDIUMTEXT,LONGTEXTSTRING
BLOB,MEDIUMBLOB,LONGBLOB,TINYBLOBSTRING
BINARY,VARBINARYSTRING
OtherUNSUPPORTED

提示

  • Doris 不支持 UNSIGNED 数据类型,所以 UNSIGNED 数据类型会被映射为 Doris 对应大一个数量级的数据类型。
  • UNSIGNED DECIMAL(p,s) 会被映射为 DECIMAL(p+1,s) 或 STRING。注意在此类型被映射为 String 时,只能支持查询,不能对 MySQL 进行写入操作。
  • 为了更好的读取与计算性能均衡,Doris 会将 JSON 类型映射为 STRING 类型。
  • Doris 不支持 BIT 类型,BIT 类型会在 BIT(1) 时被映射为 BOOLEAN,其他情况下映射为 STRING。
  • Doris 不支持 YEAR 类型,YEAR 类型会被映射为 SMALLINT。
  • Doris 不支持 TIME 类型,TIME 类型会被映射为 STRING。

时间戳类型处理​

在 JDBC 类型 Catalog 读取数据时,BE 的 Java 部分使用 JVM 时区。JVM 时区默认为 BE 部署机器的时区,这会影响 JDBC 读取数据时的时区转换。

为了确保时区一致性,建议在 be.conf 的 JAVA_OPTS 中设置 JVM 时区与 Doris session 的 time_zone 一致。

读取 MySQL 的 TIMESTAMP 类型时,请在 JDBC URL 中添加参数:connectionTimeZone=LOCAL 和 forceConnectionTimeZoneToSession=true。这些参数适用于 MySQL Connector/J 8 以上版本,可确保读取的时间为 Doris BE JVM 时区,而非 MySQL session 时区。

查询优化​

谓词下推​

  1. 当执行类似于 where dt = '2022-01-01' 这样的查询时,Doris 能够将这些过滤条件下推到外部数据源,从而直接在数据源层面排除不符合条件的数据,减少了不必要的数据获取和传输。这大大提高了查询性能,同时也降低了对外部数据源的负载。

  2. 当变量 enable_ext_func_pred_pushdown 设置为 true,会将 where 之后的函数条件也下推到外部数据源,Doris 会自动识别部分 MySQL 不支持的函数,可通过 explain sql 查看。

    当前 Doris 默认不会下推到 MySQL 的函数如下

    Function
    DATE_TRUNC
    MONEY_FORMAT
    NEGATIVE

    当您发现还有其他函数不支持下推时,可以通过 fe.conf 配置 jdbc_mysql_unsupported_pushdown_functions 来指定不支持下推的函数。如:jdbc_mysql_unsupported_pushdown_functions=func1,func2

行数限制​

如果在查询中带有 limit 关键字,Doris 会将 limit 下推到 MySQL,以减少数据传输量。

转义字符​

Doris 会在下发到 MySQL 的查询语句中,自动在字段名与表名上加上转义符:(``),以避免字段名与表名与 MySQL 内部关键字冲突。

连接异常排查​

  • Communications link failure The last packet successfully received from the server was 7 milliseconds ago.

    • 原因:
      • 网络问题:
        • 网络不稳定或连接中断。
        • 客户端和服务器之间的网络延迟过高。
      • MySQL 服务器设置
        • MySQL 服务器可能配置了连接超时参数,例如 wait_timeout 或 interactive_timeout,导致连接超时被关闭。
      • 防火墙设置
        • 防火墙规则可能阻止了客户端与服务器之间的通信。
      • 连接池设置
        • 连接池中的配置 connection_pool_max_life_time 可能导致连接被关闭或回收,或者未及时探活
      • 服务器资源问题
        • MySQL 服务器可能资源不足,无法处理新的连接请求。
      • 客户端配置
        • 客户端 JDBC 驱动配置错误,例如 autoReconnect 参数未设置或设置不当。
    • 解决
      • 检查网络连接:
        • 确认客户端和服务器之间的网络连接稳定,避免网络延迟过高。
      • 检查 MySQL 服务器配置:
        • 查看并调整 MySQL 服务器的 wait_timeout 和 interactive_timeout 参数,确保它们设置合理。
      • 检查防火墙配置:
        • 确认防火墙规则允许客户端与服务器之间的通信。
      • 调整连接池设置:
        • 检查并调整连接池的配置参数 connection_pool_max_life_time,确保小于 MySQL 的 wait_timeout 和 interactive_timeout 参数并大于执行时间最长的 SQL
      • 监控服务器资源:
        • 监控 MySQL 服务器的资源使用情况,确保有足够的资源处理连接请求。
      • 优化客户端配置:
        • 确认 JDBC 驱动的配置参数正确,例如 autoReconnect=true,确保连接能在中断后自动重连。
  • java.io.EOFException MESSAGE: Can not read response from server. Expected to read 819 bytes, read 686 bytes before connection was unexpectedly lost.

    • 原因:连接被 MySQL Kill 或者 MySQL 宕机
    • 解决:检查 MySQL 是否有主动 kill 连接的机制,或者是否因为查询过大查崩 MySQL

常见问题​

  1. 读写 MySQL 的 emoji 表情出现乱码

    Doris 进行 MySQL Catalog 查询时,由于 MySQL 之中默认的 utf8 编码为 utf8mb3,无法表示需要 4 字节编码的 emoji 表情。这里需要将 MySQL 的编码修改为 utf8mb4,以支持 4 字节编码。

    可全局修改配置项

    修改 mysql 目录下的 my.ini 文件(linux 系统为 etc 目录下的 my.cnf 文件)
    [client]
    default-character-set=utf8mb4[mysql]
    设置 mysql 默认字符集
    default-character-set=utf8mb4[mysqld]
    设置 mysql 字符集服务器
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci
    init_connect='SET NAMES utf8mb4修改对应表与列的类型
    ALTER TABLE table_name MODIFY  colum_name  VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    ALTER TABLE table_name CHARSET=utf8mb4;
    SET NAMES utf8mb4
    

  2. 读取 MySQL DATE/DATETIME 类型出现异常

    ERROR 1105 (HY000): errCode = 2, detailMessage = (10.16.10.6)[INTERNAL_ERROR]UdfRuntimeException: get next block failed: 
    CAUSED BY: SQLException: Zero date value prohibited
    CAUSED BY: DataReadException: Zero date value prohibited
    

    这是因为 JDBC 中对于该非法的 DATE/DATETIME 默认处理为抛出异常,可以通过参数 zeroDateTimeBehavior控制该行为。

    可选参数为:exception,convertToNull,round, 分别为:异常报错,转为 NULL 值,转为 "0001-01-01 00:00:00";

    需要在创建 Catalog 的 jdbc_url 把 JDBC 连接串最后增加 zeroDateTimeBehavior=convertToNull ,如 "jdbc_url" = "jdbc:mysql://127.0.0.1:3306/test?zeroDateTimeBehavior=convertToNull" 这种情况下,JDBC 会把 0000-00-00 或者 0000-00-00 00:00:00 转换成 null,然后 Doris 会把当前 Catalog 的所有 Date/DateTime 类型的列按照可空类型处理,这样就可以正常读取了。

  3. 读取 MySQL Catalog 或其他 JDBC Catalog 时,出现加载类失败

    如以下异常:

    failed to load driver class com.mysql.cj.jdbc.driver in either of hikariconfig class loader
    

    这是因为在创建 Catalog 时,填写的 driver_class 不正确,需要正确填写,如上方例子为大小写问题,应填写为 "driver_class" = "com.mysql.cj.jdbc.Driver"

  4. 读取 MySQL 出现通信链路异常

    如果出现如下报错:

    ERROR 1105 (HY000): errCode = 2, detailMessage = PoolInitializationException: Failed to initialize pool: Communications link failureThe last packet successfully received from the server was 7 milliseconds ago.  The last packet sent successfully to the server was 4 milliseconds ago.
    CAUSED BY: CommunicationsException: Communications link failureThe last packet successfully received from the server was 7 milliseconds ago.  The last packet sent successfully to the server was 4 milliseconds ago.
    CAUSED BY: SSLHandshakeExcepti
    

    可查看 be 的 be.out 日志

    如果包含以下信息:

    WARN: Establishing SSL connection without server's identity verification is not recommended. 
    According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. 
    For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. 
    You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
    

    可在创建 Catalog 的 jdbc_url 把 JDBC 连接串最后增加 ?useSSL=false ,如 "jdbc_url" = "jdbc:mysql://127.0.0.1:3306/test?useSSL=false"

  5. 查询 MySQL 大数据量时,如果查询偶尔能够成功,偶尔会报如下错误,且出现该错误时 MySQL 的连接被全部断开,无法连接到 MySQL Server,过段时间后 MySQL 又恢复正常,但是之前的连接都没了:

    ERROR 1105 (HY000): errCode = 2, detailMessage = [INTERNAL_ERROR]UdfRuntimeException: JDBC executor sql has error:
    CAUSED BY: CommunicationsException: Communications link failure
    The last packet successfully received from the server was 4,446 milliseconds ago. The last packet sent successfully to the server was 4,446 milliseconds ago.
    

    出现上述现象时,可能是 MySQL Server 自身的内存或 CPU 资源被耗尽导致 MySQL 服务不可用,可以尝试增大 MySQL Server 的内存或 CPU 配置。

  6. 查询 MySQL 的过程中,如果发现和在 MySQL 库的查询结果不一致的情况

    首先要先排查下查询字段中是字符串否存在有大小写情况。比如,Table 中有一个字段 c_1 中有 "aaa" 和 "AAA" 两条数据,如果在初始化 MySQL 数据库时未指定区分字符串大小写,那么 MySQL 默认是不区分字符串大小写的,但是在 Doris 中是严格区分大小写的,所以会出现以下情况:

    MySQL 行为:
    select count(c_1) from table where c_1 = "aaa"; 未区分字符串大小,所以结果为:2Doris 行为:
    select count(c_1) from table where c_1 = "aaa"; 严格区分字符串大小,所以结果为:1
    

    如果出现上述现象,那么需要按照需求来调整,方式如下:

    在 MySQL 中查询时添加“BINARY”关键字来强制区分大小写:select count(c_1) from table where BINARY c_1 = "aaa";

    或者在 MySQL 中建表时候指定:CREATE TABLE table (c_1 VARCHAR(255) CHARACTER SET binary);

    或者在初始化 MySQL 数据库时指定校对规则来区分大小写:

    [mysqld]
    character-set-server=utf8
    collation-server=utf8_bin
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    

  7. 查询 MySQL 的时候,出现长时间卡住没有返回结果,或着卡住很长时间并且 fe.warn.log 中出现出现大量 write lock 日志,可以尝试在 URL 添加 socketTimeout,例如:jdbc:mysql://host:port/database?socketTimeout=30000,防止 JDBC 客户端 在被 MySQL 关闭连接后无限等待。

  8. 在使用 MySQL Catalog 的过程中发现 FE 的 JVM 内存或 Threads 数持续增长不减少,并可能同时出现 Forward to master connection timed out 报错

    打印 FE 线程堆栈 jstack fe_pid > fe.js,如果出现大量 mysql-cj-abandoned-connection-cleanup 线程,说明是 MySQL JDBC 驱动的问题。

    按照如下方式处理:

    1. 升级 MySQL JDBC 驱动到 8.0.31 及以上版本
    2. 在 FE 和 BE conf 文件的 JAVA_OPTS 中增加 -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true 参数,禁用 MySQL JDBC 驱动的连接清理功能,并重启集群

    注意: 如果 Doris 的版本在 2.0.13 及以上(2.0 Release),或 2.1.5 及以上(2.1 Release)则无需增加该参数,因为 Doris 已经默认禁用了 MySQL JDBC 驱动的连接清理功能。只需更换 MySQL JDBC 驱动版本即可。但是需要重启 Doris 集群来清理掉之前的 Threads。

相关文章:

doris: MySQL

Doris JDBC Catalog 支持通过标准 JDBC 接口连接 MySQL 数据库。本文档介绍如何配置 MySQL 数据库连接。 使用须知​ 要连接到 MySQL 数据库,您需要 MySQL 5.7, 8.0 或更高版本 MySQL 数据库的 JDBC 驱动程序,您可以从 Maven 仓库下载最新或指定版本的…...

推荐一个基于Koin, Ktor Paging等组件的KMM Compose Multiplatform项目

Kotlin Multiplatform Mobile(KMM)已经从一个雄心勃勃的想法发展成为一个稳定而强大的框架,为开发人员提供了在多个平台上无缝共享代码的能力。通过最近的稳定版本里程碑,KMM已成为跨平台开发领域的改变者。 环境设置 带有Kotli…...

Tomcat 新手入门指南

Tomcat 新手入门指南 Apache Tomcat 是一个开源的 Java Servlet 容器和 Web 服务器,广泛用于部署和运行 Java Web 应用程序。以下是 Tomcat 的入门指南,帮助你快速上手。 1. 安装 Tomcat 步骤 1: 下载 Tomcat 访问 Apache Tomcat 官网。选择适合的版…...

游戏引擎学习第138天

仓库:https://gitee.com/mrxiao_com/2d_game_3 资产:game_hero_test_assets_003.zip 发布 我们的目标是展示游戏运行时的完整过程,从像素渲染到不使用GPU的方式,我们自己编写了渲染器并完成了所有的工作。今天我们开始了一些新的内容&#…...

c++ 类特殊成员函数的编译器隐式声明规则

c 类特殊成员函数的编译器隐式声明规则 特殊成员函数编译器隐式声明规则关键术语说明:核心规则总结:示例场景: 特殊成员函数 编译器隐式声明规则 用户声明的成员函数默认构造函数析构函数拷贝构造函数拷贝赋值移动构造函数移动赋值无声明默…...

综合使用pandas、numpy、matplotlib、seaborn库做数据分析、挖掘、可视化项目

目录 1.结构化数据挖掘 1.1依赖库导入和数据读取 1.2各品牌机型及售价统计 1.3视频录制规格与价格关联性分析 2.结构化数据预处理 2.1筛选特征 2.2特征标签归一化及编码 1.结构化数据挖掘 1.1依赖库导入和数据读取 导入必要的依赖库,读取 csv 格式数据集转化为 Data…...

day21-API(算法,lambda,练习)

常见的七种查找算法: ​ 数据结构是数据存储的方式,算法是数据计算的方式。所以在开发中,算法和数据结构息息相关。今天的讲义中会涉及部分数据结构的专业名词,如果各位铁粉有疑惑,可以先看一下哥们后面录制的数据结构…...

Linux : 进程地址空间

目录 一 前言 二 进程地址空间是什么 1.现象 2.虚拟地址空间 3. 现象解释 4. 写时拷贝 三 为什么要存在进程地址空间 四 进程地址空间是如何实现的 1 操作系统如何管理进程地址空间 一 前言 进程地址空间图: 在学习C语言的内存管理的时候,我…...

wordpress鼠标特效笔记+npm问题解决

在WordPress网站上添加鼠标点击特效和网页背景特效_wordpress鼠标特效-CSDN博客 学习设置文章浏览量的插件超详细图解:如何使用 WordPress搭建一个个人博客?-CSDN博客 ------------------2025.03.06------------------------------- npm 运行时报错“因…...

大模型——使用 Embedding 模型和向量数据库的 Spring AI RAG

大模型——使用 Embedding 模型和向量数据库的 Spring AI RAG 本文主要介绍以下内容: 嵌入式模型简介。使用 DocumentReader 加载数据。在 VectorStore 中存储 Embedding。实现 RAG(Retrieval-Augmented Generation,检索增强生成),又名 Prompt Stuffing。你可以在 GitHub…...

Spring Boot 缓存最佳实践:从基础到生产的完整指南

Spring Boot 缓存最佳实践:从基础到生产的完整指南 引言 在现代分布式系统中,缓存是提升系统性能的银弹。Spring Boot 通过 spring-boot-starter-cache​ 模块提供了开箱即用的缓存抽象,但如何根据业务需求实现灵活、可靠的缓存方案&#xf…...

vue3,Element Plus中隐藏树el-tree滚动条

el-tree&#xff0c;节点过多&#xff0c;默认会出现垂直滚动条&#xff0c;显得不美观 可以使用隐藏组件 el-scrollbar 将 el-tree 包裹&#xff0c;就可以隐藏垂直滚动条 <el-scrollbar> <el-tree> ... </el-tree> </el-scrollbar> /* 滚动条禁用鼠…...

《机器学习数学基础》补充资料:过渡矩阵和坐标变换推导

尽管《机器学习数学基础》这本书&#xff0c;耗费了比较长的时间和精力&#xff0c;怎奈学识有限&#xff0c;错误难免。因此&#xff0c;除了在专门的网页&#xff08; 勘误和修订 &#xff09;中发布勘误和修订内容之外&#xff0c;对于重大错误&#xff0c;我还会以专题的形…...

掌握高效大模型任务流搭建术(二):链式流程如何赋能 AI 处理能力提升

前言&#xff1a; 在上一篇文章中&#xff0c;我们初步探索了 LangChain 的基础链式操作——LLMChain。它巧妙地将大语言模型&#xff08;LLM&#xff09;与提示模板&#xff08;Prompt Template&#xff09;相结合&#xff0c;为模型交互逻辑的封装提供了一种简洁而高效的方式…...

Linux——Docker容器内MySQL密码忘记了如何查看

目录 查看正在运行的MySQL的容器ID 方法一&#xff1a;查看MySQL容器的日志里的密码 方法二&#xff1a;通过环境变量密码登录 方法三&#xff1a;修改密码 查看正在运行的MySQL的容器ID docker ps 方法一&#xff1a;查看MySQL容器的日志里的密码 docker logs [MySQL的容器…...

深入剖析 Kubernetes 弹性伸缩:HPA 与 Metrics Server

引言 在 Kubernetes (K8s) 集群中&#xff0c;如何根据应用的实际负载自动调整 Pod 数量&#xff0c;实现资源的弹性利用&#xff0c;是保障服务稳定性和成本效益的关键。Horizontal Pod Autoscaler (HPA) 和 Metrics Server 正是实现这一目标的核心组件。本文将深入探讨 HPA …...

Qt5 C++ QMap使用总结

文章目录 功能解释代码使用案例代码解释注意事项代码例子参考 功能解释 QList<T> QMap::values() const Returns a list containing all the values in the map, in ascending order of their keys. If a key is associated with multiple values, all of its values wi…...

如何改变怂怂懦弱的气质(2)

你是否曾经因为害怕失败而逃避选择&#xff1f;是否因为不敢拒绝别人而让自己陷入困境&#xff1f;是否因为过于友善而被人轻视&#xff1f;如果你也曾为这些问题困扰&#xff0c;那么今天的博客就是为你准备的。我们将从行动、拒绝、自我认知、实力提升等多个角度&#xff0c;…...

【CVTE】嵌入式软件开发-Linux方向{一面}

文章目录 数组和链表的区别&#xff1f;特点&#xff1f;使用场景&#xff1f;**1. 数组&#xff08;Array&#xff09;****特点&#xff1a;****使用场景&#xff1a;** **2. 链表&#xff08;Linked List&#xff09;****特点&#xff1a;****使用场景&#xff1a;** **3. 数…...

自律linux 第 35 天

之前学习了UDP编程&#xff0c;UDP是可以实现多个用户向一个用户发送的&#xff0c;但是TCP一个服务端在同一时刻只能对应一个客户端&#xff0c;因为TCP的通信是使用管道通信的&#xff0c;如果要使用TCP实现一对多的通信&#xff0c;有如下几种办法&#xff1a;多进程&#x…...

云原生系列之本地k8s环境搭建

前置条件 Windows 11 家庭中文版&#xff0c;版本号 23H2 云原生环境搭建 操作系统启用wsl(windows subsystem for linux) 开启wsl功能&#xff0c;如下图 安装并开启github加速器 FastGithub 2.1 下载地址&#xff1a;点击下载 2.2 解压安装文件fastgithub_win-x64.zip 2…...

Cursor实战:Web版背单词应用开发演示

Cursor实战&#xff1a;Web版背单词应用开发演示 需求分析自行编写需求文档借助Cursor生成需求文档 前端UI设计后端开发项目结构环境参数数据库设计安装Python依赖运行应用 前端代码修改测试前端界面 测试数据生成功能测试Bug修复 总结 在上一篇《Cursor AI编程助手不完全指南》…...

每日一题----------枚举的注意事项和细节

注意事项&#xff1a; 1.当我们使用enum关键字开发一个枚举类时&#xff0c;默认会继承Enum类&#xff0c;而且是一个final类&#xff0c;利用javap反编译可查。 2.public static Season SPRING new Season("春天", "温暖");简化成SPRING("春天&qu…...

【Java学习】异常

一、异常的处理过程 异常类的似复刻变量被throw时&#xff0c;会立即中止当前所在的这层方法&#xff0c;即当层方法里throw异常类似复刻变量之后的语句就不会执行了&#xff0c;如果throw异常语句在当层方法中被try{}包裹&#xff0c;则中止就先发生被包裹在了try{}层&#xf…...

使用STM32CubeMX实现LED灯每秒闪烁一次(STM32G070CBT6单片机)

1.打开STM32CubeMX&#xff0c;点击File->New Project&#xff0c;新建一个新工程。 2.搜索芯片型号&#xff0c;选择正确的芯片封装规格&#xff0c;准备对芯片的引脚进行配置。 进行上面的操作后&#xff0c;跳转到如下的页面。 3.选择要配置的引脚进行配置。此处我的LED是…...

FastGPT 引申:如何基于 LLM 判断知识库的好坏

文章目录 如何基于 LLM 判断知识库的好坏方法概述示例 Prompt声明抽取器 Prompt声明检查器 Prompt 判断机制总结 下面介绍如何基于 LLM 判断知识库的好坏&#xff0c;并展示了如何利用声明抽取器和声明检查器这两个 prompt 构建评价体系。 如何基于 LLM 判断知识库的好坏 在知…...

rabbitmq版本升级并部署高可用

RabbitMQ版本升级 先检查是否已经安装rabbitmq rpm -qa|grep rabbitmq|wc -l //如果结果是0&#xff0c;表示没有安装 rpm -e --nodeps $(rpm -qa|grep rabbitmq) //如安装了&#xff0c;则进行卸载 先检查是否已经安装erlang rpm -qa|grep erlang|wc -l //如果结果…...

了解JVM

目录 一、内存区域划分 1.方法区&#xff08;元数据区&#xff09; 2.堆 3.栈 4.程序计数器 5.本地方法栈 总结&#xff1a; 二、类加载 1.加载 2.验证 3.准备 4.解析 5.初始化 三、双亲委派模型 四、垃圾回收 1.找到垃圾 1&#xff09;引用计数 2&#xff09;…...

Linux - 工具

一、 代码编译&#xff08;g/gcc&#xff09; 1) 预处理 g –E hello.c –o hello.i宏替换 条件编译 头文件展开 去注释 2) 编译 g –S hello.i –o hello.s检查语法将代码转为汇编 3) 汇编 g –c hello.s –o hello.o将汇编转为二进制代码 4) 链接 g hello.o –o …...

ASP.NET Core 6 MVC 文件上传

概述 应用程序中的文件上传是一项功能&#xff0c;用户可以使用该功能将用户本地系统或网络上的文件上传到 Web 应用程序。Web 应用程序将处理该文件&#xff0c;然后根据需要对文件进行一些验证&#xff0c;最后根据要求将该文件存储在系统中配置的用于保存文件的存储中&#…...

大模型LoRA微调训练原理是什么?

环境&#xff1a; LoRA 问题描述&#xff1a; 大模型LoRA微调训练原理是什么&#xff1f; 解决方案&#xff1a; LoRA&#xff08;Low-Rank Adaptation&#xff09;微调是一种高效的参数优化技术&#xff0c;专门用于大型语言模型的微调&#xff0c;旨在减少计算和内存需求…...

Ubuntu系统上部署Node.js项目的完整流程

以下是在Ubuntu系统上部署Node.js项目的完整流程&#xff0c;分为系统初始化、环境配置、项目部署三个部分&#xff1a; 一、系统初始化 & 环境准备 bash # 1. 更新系统软件包 sudo apt update && sudo apt upgrade -y# 2. 安装基础工具 sudo apt install -y buil…...

vue3:七、拦截器实现

一、前言 拦截器可以很好的统一处理请求和响应 ​请求拦截器&#xff1a;可以在请求发送之前对请求进行统一处理&#xff0c;比如添加认证信息&#xff08;如 token&#xff09;、设置请求头、添加公共参数等。​响应拦截器&#xff1a;可以在响应返回之后对响应数据进行统一…...

K8S高可用集群-小白学习之二进制部署(ansible+shell)

一.K8S高可用集群配置概述 序言:本文从一个小白的视角进行K8S的研究和部署,采用二进制的方式是为了更清楚了分解部署流程及了解这个集群是怎么运作的,加上ansible+shell是方便在这个过程中,遇到了问题,我们可以不断的快速重复部署来测试和研究问题的所在点,本文的架构图…...

学生管理信息系统的需求分析与设计

伴随教育的迅猛演进以及学生规模的不断扩增&#xff0c;学生管理信息系统已然成为学校管理的关键利器。此系统能够助力学校管控学生的课程成绩、考勤记载、个人资讯等诸多数据&#xff0c;提升学校的管理效能与服务品质。 一.需求分析 1.1 学生信息管理 学生信息在学校管理体…...

010---基于Verilog HDL的分频器设计

文章目录 摘要一、时序图二、程序设计2.1 rtl2.2 tb 三、仿真分析四、实用性 摘要 文章为学习记录。绘制时序图&#xff0c;编码。通过修改分频值参数&#xff0c;实现一定范围分频值内的任意分频器设计。 一、时序图 二、程序设计 2.1 rtl module divider #(parameter D…...

Pytorch使用手册—雅可比矩阵、海森矩阵、hvp、vhp 等:组合函数变换(专题四十四)

计算雅可比矩阵或海森矩阵在许多非传统深度学习模型中是非常有用的。使用 PyTorch 的常规自动微分 API(Tensor.backward(),torch.autograd.grad)计算这些量是困难的(或者很麻烦)。PyTorch 的受 JAX 启发的函数变换 API 提供了高效计算各种高阶自动微分量的方法。 注意: 本…...

OpenCV计算摄影学(16)调整图像光照效果函数illuminationChange()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 对选定区域内的梯度场应用适当的非线性变换&#xff0c;然后通过泊松求解器重新积分&#xff0c;可以局部修改图像的表观照明。 cv::illuminati…...

WPF框架---MvvmLight介绍

目录 1. MvvmLight 框架准备 2. MvvmLight 中的相关基类 3. MvvmLight 中的数据绑定与通知 a. 核心功能 b. 关键方法与属性 c. 完整示例 d. 高级用法 4. MvvmLight 中的命令对象 a. 命令对象的作用 b. 核心接口&#xff1a;ICommand c. MvvmLight 中的 RelayCommand…...

C语言基础之【指针】(下)

C语言基础之【指针】&#xff08;下&#xff09; 指针和字符串字符指针字符指针做函数参数const修饰的指针变量指针数组做为main函数的形参项目开发常用字符串应用模型while和do-while模型两头堵模型字符串反转模型 字符串处理函数strchr()strrchr()strstr()strtok()strcpy()st…...

Deepseek中的MoE架构的改造:动态可变参数激活的MoE混合专家架构(DVPA-MoE)的考虑

大家好,我是微学AI,今天给大家介绍一下动态可变参数激活MoE架构(Dynamic Variable Parameter-Activated MoE, DVPA-MoE)的架构与实际应用,本架构支持从7B到32B的等多档参数动态激活。该架构通过细粒度难度评估和分层专家路由,实现“小问题用小参数,大问题用大参数”的精…...

【0012】Python函数详解

如果你觉得我的文章写的不错&#xff0c;请关注我哟&#xff0c;请点赞、评论&#xff0c;收藏此文章&#xff0c;谢谢&#xff01; 本文内容体系结构如下&#xff1a; 编写代码往往是为了实现特定的功能&#xff0c;如果需要使用功能多次&#xff0c;也要写同样的代码多次吗…...

Stable Diffusion教程|快速入门SD绘画原理与安装

什么是Stable Diffusion&#xff0c;什么是炼丹师&#xff1f;根据市场研究机构预测&#xff0c;到2025年全球AI绘画市场规模将达到100亿美元&#xff0c;其中Stable Diffusion&#xff08;简称SD&#xff09;作为一种先进的图像生成技术之一&#xff0c;市场份额也在不断增长&…...

鸿蒙应用开发深度解析:API 14核心特性与实战指南

文章目录 一、HarmonyOS API 14架构升级解析1.1 系统架构演进1.2 核心能力对比 二、ArkUI 3.0开发实战2.1 声明式UI完整示例2.2 自定义组件开发 三、分布式能力深度开发3.1 跨设备数据同步流程3.2 分布式数据库操作 四、系统能力扩展开发4.1 后台任务管理4.2 硬件服务调用 五、…...

docker中kibana启动后,通过浏览器访问,出现server is not ready yet

问题&#xff1a;当我在浏览器访问kibana时&#xff0c;浏览器给我报了server is not ready yet. 在网上试了很多方法&#xff0c;都未能解决&#xff0c;下面是我的方法&#xff1a; 查看kibana日志&#xff1a; docker logs -f kibana从控制台打印的日志可以发现&#xff…...

2025年天梯赛第1场选拔赛

目录 A:徐老师的积木山峰 B:徐老师的最长上升子序列 C:徐老师的机器命令 D:徐老师的地下堡 E:徐老师的新鲜羊腿 F:徐老师的黄金矿工 G:徐老师的成绩统计 H:春节糖果 I:幸运函数 J:好坏钥匙 A:徐老师的积木山峰 徐老师有 n 块积木排成一排&#xff0c;从左往右数编号依次为 1∼…...

28-文本左右对齐

给定一个单词数组 words 和一个长度 maxWidth &#xff0c;重新排版单词&#xff0c;使其成为每行恰好有 maxWidth 个字符&#xff0c;且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单词&#xff1b;也就是说&#xff0c;尽可能多地往每行中放置单词。必要时可…...

SpringBoot校园管理系统设计与实现

在现代校园管理中&#xff0c;一个高效、灵活的管理系统是不可或缺的。本文将详细介绍基于SpringBoot的校园管理系统的设计与实现&#xff0c;涵盖管理员、用户和院校管理员三大功能模块&#xff0c;以及系统的部署步骤和数据库配置。 管理员功能模块 管理员是系统的核心管理…...

thunder bird 配置邮箱

1.配 outlook https://cn.windows-office.net/?p22940 2.配 qq 邮箱 https://blog.csdn.net/lx_ros/article/details/124831850 3.QQ邮箱的授权码在 账号与安全 4.qq 邮箱 更换 foxmail 邮箱名 https://www.yigujin.cn/blog/p10094.html 结语 感觉网上搜到的都不咋好&…...

机器学习中的线性代数:奇异值分解 SVD

线性代数 奇异值分解&#xff08;SVD&#xff09; 参考资料&#xff1a; 超详细&#xff01;彻底搞懂矩阵奇异值分解&#xff08;SVD&#xff09;本质计算应用&#xff01;_哔哩哔哩_bilibili 非常好的视频&#xff0c;本文内容主要来自于该视频&#xff0c;在此表示感谢&#…...