Doris集成其他系统——ODBC外部表

news2024/11/17 19:43:13

Doris集成其他系统——ODBC外部表


文章目录

  • Doris集成其他系统——ODBC外部表
    • 0. 写在前面
    • 1. 正文
      • 1.1 ODBC外部表介绍
      • 1.2 使用方式
    • 2. 使用 ODBC 的 MySQL 外表
      • 2.1 前置芝士
      • 2.2 安装 unixODBC
      • 2.3 安装MySQL 对应版本的 ODBC
        • 2.3.1 安装方式
        • 2.3.2 检查安装结果
        • 2.3.3 其他节点的安装及配置
        • 2.3.4 配置 unixODBC,验证通过ODBC 访问 MySQL
      • 2.4 准备一张MySQL新表
        • 2.4.1 在MySQL种建表`test_cdc`
        • 2.4.2 插入数据
        • 2.4.3 修改 Doris 的配置文件(每个 BE 节点都要,不用重启 BE)
        • 2.4.4 在Doris中 建Resource
        • 2.4.5 查询Doris 外表
      • 2.5 Doris和MySQL之间的映射案例
        • 2.5.1 MySQL数据映射到Doris
        • 2.5.2 Doris数据映射到MySQL


0. 写在前面

  • Linux版本:CentOS-7.5-x86_64-DVD-1804

  • Doris版本:Doris-1.1.5

  • MySQL版本:MySQL-5.7

1. 正文

1.1 ODBC外部表介绍

ODBC External Table Of Doris 提供了 Doris 通过数据库访问的标准接口(ODBC)来访问外部表,外部表省去了繁琐的数据导入工作,让 Doris 可以具有了访问各式数据库的能力, 并借助 Doris 本身的OLAP 的能力来解决外部表的数据分析问题:

  • 支持各种数据源接入 Doris
  • 支持Doris 与各种数据源中的表联合查询,进行更加复杂的分析操作
  • 通过 insert into 将 Doris 执行的查询结果写入外部的数据源

1.2 使用方式

1)Doris 中创建ODBC 的外表

  • 方式一:不使用 Resource 创建ODBC 的外表。
CREATE EXTERNAL TABLE `baseall_oracle` (
`k1` decimal(9, 3) NOT NULL COMMENT "",
`k2` char(10) NOT NULL COMMENT "",
`k3` datetime NOT NULL COMMENT "",
`k5` varchar(20) NOT NULL COMMENT "",
`k6` double NOT NULL COMMENT ""
) ENGINE=ODBC COMMENT "ODBC" PROPERTIES (
"host" = "192.168.0.1",
"port" = "8086",
"user" = "test", "password" = "test", "database" = "test", "table" = "baseall",
"driver" = "Oracle 19 ODBC driver", "odbc_type" = "oracle"
 );
  • 方式二:通过 ODBC_Resource 来创建ODBC 外表(更推荐使用的方式)。
CREATE EXTERNAL RESOURCE `oracle_odbc` 
PROPERTIES (
"type" = "odbc_catalog", 
"host" = "192.168.0.1",
"port" = "8086",
"user" = "test", 
"password" = "test", 
"database" = "test", 
"odbc_type" = "oracle",
"driver" = "Oracle 19 ODBC driver"
);

- 指定odbc_catalog_resource参数值
CREATE EXTERNAL TABLE `baseall_oracle` (
`k1` decimal(9, 3) NOT NULL COMMENT "",
`k2` char(10) NOT NULL COMMENT "",
`k3` datetime NOT NULL COMMENT "",
`k5` varchar(20) NOT NULL COMMENT "",
`k6` double NOT NULL COMMENT ""
) ENGINE=ODBC 
COMMENT "ODBC" 
PROPERTIES (
"odbc_catalog_resource" = "oracle_odbc", 
"database" = "test",
"table" = "baseall"
);
  • 参数说明:
参数说明
hosts外表数据库的 IP 地址
driverODBC 外表 Driver 名,需要和 ${DORIS_HOME}/be/conf/odbcinst.ini 中的 Driver 名一致。
odbc_type外表数据库的类型,当前支持 oracle, mysql, postgresql
user外表数据库的用户名
password对应用户的密码信息

2)ODBC Driver 的安装和配置

  • 各大主流数据库都会提供 ODBC 的访问 Driver,用户可以执行参照各数据库官方推荐的方式安装对应的ODBC Driver LiB 库。

  • 安装完成之后,查找对应的数据库的 Driver Lib 库的路径,并且修改 ${DORIS_HOME}/be/conf/odbcinst.ini的配置

[MySQL Driver]
Description	= ODBC for MySQL
Driver = /usr/lib64/libmyodbc8w.so
FileUsage = 1

上述配置[]里的对应的是 Driver 名,在建立外部表时需要保持外部表的 Driver 名和配置文件之中的一致。

  • Driver= 这个要根据实际 BE 安装 Driver 的路径来填写,本质上就是一个动态库的路径, 这里需要保证该动态库的前置依赖都被满足。

Note:这里要求所有的 BE 节点都安装上相同的Driver,并且安装路径相同,同时有相同的 ${DORIS_HOME}/be/conf/odbcinst.ini 的配置。

2. 使用 ODBC 的 MySQL 外表

2.1 前置芝士

  • CentOS 数据库 ODBC 版本对应关系:

​                [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9w306PZE-1675308484908)(0.jpeg)]

  • MySQL 与Doris 的数据类型匹配:

​                [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gceHWWUk-1675308484911)(01.jpeg)]

2.2 安装 unixODBC

安装必要依赖

[whybigdata@node01 doris-1.1.5]$ yum install -y unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel

检查依赖是否安装完全

[whybigdata@node01 doris-1.1.5]$ rpm -qa | grep unixODBC
freeradius-unixODBC-3.0.13-15.el7.x86_64
unixODBC-devel-2.3.1-14.el7.x86_64
unixODBC-2.3.1-14.el7.x86_64
[whybigdata@node01 doris-1.1.5]$ rpm -qa | grep unixODBC-devel
unixODBC-devel-2.3.1-14.el7.x86_64
[whybigdata@node01 doris-1.1.5]$ rpm -qa | grep libtool-ltdl
libtool-ltdl-2.4.2-22.el7_3.x86_64
[whybigdata@node01 doris-1.1.5]$ rpm -qa | grep libtool-ltdl-devel
libtool-ltdl-devel-2.4.2-22.el7_3.x86_64

检查ODBC是否安装成功

[whybigdata@node01 doris-1.1.5]$ odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/whybigdata/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

出现unixODBC版本信息以及相关文件路即代表安装成功

2.3 安装MySQL 对应版本的 ODBC

安装MySQL的ODBC依赖,请在三台节点「安装了be的节点都需要安装」都执行安装

2.3.1 安装方式

两种方式:一是直接通过wget下载,二是通过提前下载好的压缩包然后上传到node01机器上并解压tar.gz包进行安装

  • 直接下载安装
wget https://downloads.mysql.com/archives/get/p/10/file/mysql-connector-odbc-5.3.11-1.el7.x86_64.rpm
  • tar包进行安装
[whybigdata@node01 software]$ sudo yum install -y mysql-connector-odbc-5.3.11-1.el7.x86_64.rpm
已加载插件:fastestmirror
正在检查 mysql-connector-odbc-5.3.11-1.el7.x86_64.rpm: mysql-connector-odbc-5.3.11-1.el7.x86_64
mysql-connector-odbc-5.3.11-1.el7.x86_64.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 mysql-connector-odbc.x86_64.0.5.3.11-1.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=========================================================================================================================
 Package                     架构          版本                   源                                                大小
=========================================================================================================================
正在安装:
 mysql-connector-odbc        x86_64        5.3.11-1.el7           /mysql-connector-odbc-5.3.11-1.el7.x86_64         13 M

事务概要
=========================================================================================================================
安装  1 软件包

总计:13 M
安装大小:13 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : mysql-connector-odbc-5.3.11-1.el7.x86_64                                                             1/1
Success: Usage count is 1
Success: Usage count is 1
  验证中      : mysql-connector-odbc-5.3.11-1.el7.x86_64                                                             1/1

已安装:
  mysql-connector-odbc.x86_64 0:5.3.11-1.el7

完毕!

2.3.2 检查安装结果

查看是否安装成功

[whybigdata@node01 software]$ myodbc-installer -d -l
ODBC Driver 17 for SQL Server
MySQL ODBC 5.3 Unicode Driver
MySQL ODBC 5.3 ANSI Driver

出现MySQL ODBC 5.3字样代表安装成功

2.3.3 其他节点的安装及配置

分发mysql-connector-odbc-5.3.11-1.el7.x86_64.rpm 到其他两台节点上

[whybigdata@node01 software]$ scp /opt/software/mysql-connector-odbc-5.3.11-1.el7.x86_64.rpm whybigdata@node02:/opt/software/
[whybigdata@node01 software]$ scp /opt/software/mysql-connector-odbc-5.3.11-1.el7.x86_64.rpm whybigdata@node03:/opt/software/
mysql-connector-odbc-5.3.11-1.el7.x86_64.rpm                                           100% 2813KB  52.4MB/s   00:00

查看是否传输成功

[whybigdata@node01 software]$ my_call.sh ls /opt/software/
=================> node01 <=================
mysql-connector-odbc-5.3.11-1.el7.x86_64.rpm
=================> node02 <=================
mysql-connector-odbc-5.3.11-1.el7.x86_64.rpm
=================> node03 <=================
mysql-connector-odbc-5.3.11-1.el7.x86_64.rpm

2.3.4 配置 unixODBC,验证通过ODBC 访问 MySQL

[whybigdata@node01 software]$ sudo vim /etc/odbc.ini
  • 添加如下内容

[mysql]
Description = Data source MySQL
Driver = MySQL ODBC 5.3 Unicode Driver
Server = node01
Host = node01
Database = test_doris
Port = 3306
User = root
Password = 123456

  • 测试连接MySQL

可以查看到对应的表

[whybigdata@node01 software]$ isql -v mysql
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> show tables;
+-----------------------------------------------------------------+
| Tables_in_test_doris                                            |
+-----------------------------------------------------------------+
| sensor                                                          |
| tbl1                                                            |
+-----------------------------------------------------------------+
SQLRowCount returns 2
2 rows fetched

MySQL中test_doris库下的表情况以及sensor表的数据

mysql> use test_doris;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql>
mysql> show tables;
+----------------------+
| Tables_in_test_doris |
+----------------------+
| sensor               |
| tbl1                 |
+----------------------+
2 rows in set (0.00 sec)
mysql>
mysql> select * from sensor;
+-----+------+------+
| id  | ts   | vc   |
+-----+------+------+
| s_2 |    3 |    3 |
| s_9 |    9 |    9 |
+-----+------+------+
2 rows in set (0.01 sec)

ODBC访问方式:表sensor数据如下图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ud2k81vP-1675308484912)(1.jpeg)]

综上,ODBC外部表和MySQL表集成成功

2.4 准备一张MySQL新表

2.4.1 在MySQL种建表test_cdc

mysql> CREATE TABLE `test_cdc` (
    -> `id` int NOT NULL AUTO_INCREMENT,
    -> `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)
    -> ) ENGINE=InnoDB AUTO_INCREMENT=91234 DEFAULT CHARSET=utf8mb4;
Query OK, 0 rows affected (0.01 sec)

2.4.2 插入数据

插入表test_cdc的数据SQL语句如下:

INSERT INTO `test_cdc` VALUES (123, 'this is a update'); 
INSERT INTO `test_cdc` VALUES (1212, '测试 flink CDC'); 
INSERT INTO `test_cdc` VALUES (1234, '这是测试');
INSERT INTO `test_cdc` VALUES (11233, 'zhangfeng_1'); 
INSERT INTO `test_cdc` VALUES (21233, 'zhangfeng_2'); 
INSERT INTO `test_cdc` VALUES (31233, 'zhangfeng_3'); 
INSERT INTO `test_cdc` VALUES (41233, 'zhangfeng_4'); 
INSERT INTO `test_cdc` VALUES (51233, 'zhangfeng_5'); 
INSERT INTO `test_cdc` VALUES (61233, 'zhangfeng_6'); 
INSERT INTO `test_cdc` VALUES (71233, 'zhangfeng_7'); 
INSERT INTO `test_cdc` VALUES (81233, 'zhangfeng_8'); 
INSERT INTO `test_cdc` VALUES (91233, 'zhangfeng_9');

观察ODBC中表的情况:test_cdc表同样被映射过来了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4ryHZEiu-1675308484913)(2.jpeg)]

2.4.3 修改 Doris 的配置文件(每个 BE 节点都要,不用重启 BE)

在 BE 节点的 conf/odbcinst.ini,添加我们的刚才注册的的ODBC 驱动([MySQL ODBC 5.3.11]这部分)。

在文件 odbcinst.ini 末尾新增以下内容:

# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[MySQL ODBC 5.3.11]
Description     = ODBC for MySQL
Driver= /usr/lib64/libmyodbc5w.so
FileUsage = 1

2.4.4 在Doris中 建Resource

  • 以root身份创建
[whybigdata@node01 ~]$ mysql -h node01 -P 9030 -u root -p

通过 ODBC_Resource 来创建 ODBC 外表,这是推荐的方式,这样 resource 可以复用。

use test_db;

CREATE EXTERNAL RESOURCE `mysql_5_3_11` PROPERTIES (
"host" = "hadoop1", 
"port" = "3306",
"user" = "root", 
"password" = "000000", 
"database" = "test", 
"table" = "test_cdc",
"driver" = "MySQL ODBC 5.3.11", --名称要和上面[]里的名称一致
"odbc_type" = "mysql",
"type" = "odbc_catalog");

基于 Resource 创建Doris 外表

CREATE EXTERNAL TABLE `test_odbc_5_3_11` (
`id` int NOT NULL ,
`name` varchar(255) null
) ENGINE=ODBC 
COMMENT "ODBC" 
PROPERTIES (
"odbc_catalog_resource" = "mysql_5_3_11", 	--名称就是 resource 的名称
"database" = "test_doris", 
"table" = "test_cdc"
);

2.4.5 查询Doris 外表

select * from `test_odbc_5_3_11`;

如果出现如下错误,请尝试重启该节点(node01)的be服务「其实这个重启操作并没有起到作用」

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eJxvevX3-1675308484914)(10.jpeg)]

重启之后,如果继续报错,那大概率就是没有符合上述提到的要求:

「所有的 BE 节点都安装上相同的Driver,并且安装路径相同,同时有相同的 ${DORIS_HOME}/be/conf/odbcinst.ini 的配置。」

  • 其他be所在节点补充安装驱动mysql-connector-odbc-5.3.11-1.el7.x86_64.rpm并完成各自的文件配置,重新查询表test_odbc_5_3_11,查询成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0EQDuNm1-1675308484914)(11.jpeg)]

2.5 Doris和MySQL之间的映射案例

2.5.1 MySQL数据映射到Doris

  • 再次往MySQL的test_cdc表插入一条数据
mysql> insert into test_cdc values(99999, 'zhangdeng_19');
Query OK, 1 row affected (0.00 sec)

再次查询doris中的表,可以查询到刚刚插入到MySQL表test_cdc中的那条数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QEoKKjj9-1675308484915)(12.jpeg)]

2.5.2 Doris数据映射到MySQL

  • 往Doris表插入新数据
mysql> insert into test_odbc_5_3_11 values(88888, 'zhangdeng_19');
Query OK, 0 rows affected (0.04 sec)

结果:同样可以在MySQL中看到键为88888的这条数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4BW7nkdZ-1675308484915)(13.jpeg)]

综上所述,MySQL和Doris直接通过ODBC外部表的方式可以实现相互映射

结束!

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

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

相关文章

prometheus 配置服务器监控、服务监控、容器中服务监控与告警

最近公司有几个服务遇到了瓶颈&#xff0c;也就是数据量增加了&#xff0c;没有人发现&#xff0c;这不是缺少一个监控服务和告警的系统吗&#xff1f; 主要需求是监控每个服务&#xff0c;顺带监控一下服务器和一些中间件&#xff0c;这里采集的2种&#xff0c;zabbix和prom…

Kafka 消费者组

Kafka 消费者组Consumer数位移重平衡消费者组 (Consumer Group) : 可扩展且容错性的消费者机制 一个组内可能有多个消费者 (Consumer Instance) : 共享一个公共 ID (Group ID)组内的所有消费者协调消费订阅主题 (Subscribed Topics) 的所有分区 (Partition)每个分区只能由同个…

【1】熟悉刷题平台操作

TestBench使用 与quartus中testbench的写法有些许。或者说这是平台特有的特性&#xff01;&#xff01; 1 平台使用谨记 &#xff08;1&#xff09;必须删除&#xff1a;若设计为组合逻辑&#xff0c;需将自动生成的clk删除 若不删除&#xff0c;会提示运行超时错误。 &#…

git推送指定的提交到远程分支详细方法

默认情况下&#xff0c;git push会推送暂存区所有提交&#xff08;也即HEAD及其之前的提交&#xff09;到远程库&#xff0c;实际开发中可能因为功能没有开发完成&#xff0c;但是又必须提交部分修改好的代码就需要用到推送指定commit到远程分支。第一种方式&#xff1a;即符合…

CSS流动布局-页面自适应

项目中经常会碰到页面自适应的问题&#xff0c;例如&#xff1a;商城的列表展示、分类列表展示等页面&#xff0c;如下&#xff1a; 该页面会随着页面的放大缩小而随之发生变化&#xff0c;这种自适应的页面布局在大屏幕、小屏幕、不同的浏览器设备上都应该呈现出与设计匹配的…

【STM32MP157应用编程】4.串口接收、发送数据

目录 串口文件 指令操作串口 程序操作串口 程序说明 程序代码 4_ChuanKou_2.c 启动交叉编译工具 编译 拷贝到开发板 测试 串口文件 在/dev目录下&#xff0c;存放了串口的文件。 文件名对应的串口ttySTM0CH340ttySTM1com2&#xff08;公头&#xff09;ttySTM2com1&a…

java版云HIS系统源码 微服务架构支持VUE

云his系统源码 一个好的HIS系统&#xff0c;要具有开放性&#xff0c;便于扩展升级&#xff0c;增加新的功能模块&#xff0c;支撑好医院的业务的拓展&#xff0c;而且可以反过来给医院赋能&#xff0c;最终向更多的患者提供更好地服务。 私信了解更多&#xff01; 本套基于…

【C语言】结构体和共用体

目录一、结构体&#xff08;一&#xff09;结构体声明&#xff08;二&#xff09;结构体变量定义&#xff08;三&#xff09;结构体变量的初始化&#xff08;四&#xff09;结构体的引用&#xff08;五&#xff09;结构体数组二、共用体&#xff08;一&#xff09;共用体定义&a…

全球商城库存系统架构设计与实践

业务背景 商城原库存系统耦合在商品系统&#xff0c;考虑到相关业务逻辑复杂度越来越高&#xff0c;库存做了服务拆分&#xff0c;在可售库存管理的基础上新增了实物库存管理、秒杀库存、物流时效 、发货限制、分仓管理等功能&#xff0c;满足了商城库存相关业务需求。 系统架构…

GitLab 存储型XSS漏洞 (CVE-2023-0050)

漏洞描述 GitLab 是由GitLab公司开发的、基于Git的集成软件开发平台。kroki是一款集成在GitLab的基于文本的图表描述自动转为图片的开源工具&#xff0c;在GitLab 13.7引入。 由于Kroki中lib/banzai/filter/kroki_filter.rb对接收的image_src过滤不严&#xff0c;具有AsciiDo…

SpringBoot 整合 clickhouse和mysql 手把手教程全网最详细

最近做一个项目 需要 整合mysql clickhouse 多数据源 后台用的是ruoyi框架 1. 首先pom引入相关依赖 <!--JDBC-clickhouse数据库--><dependency><groupId>com.clickhouse</groupId><artifactId>clickhouse-jdbc</artifactId><version&…

Homekit智能家居产品---智能吸顶灯

买灯要看什么因素 好灯具的灯光可以说是家居的“魔术师”&#xff0c;除了实用的照明功能外&#xff0c;对细节的把控也非常到位。那么该如何选到一款各方面合适的灯呢&#xff1f; 照度 可以简单理解为清晰度&#xff0c;复杂点套公式来说照度光通量&#xff08;亮度&#x…

5款小巧好用的电脑软件,让你的工作生活更加高效!

不得不说良心好软件让大家好评连连&#xff0c;爱不释手&#xff0c;不像某些软件自带广告弹窗。这期就由我给大家安利几款电脑中的得力助手&#xff0c;看看你都用过几个&#xff1f; 1.桌面管理神器——Coodesker Coodesker是一款免费小巧、无广告&#xff0c;功能简单的桌…

【Redis】哨兵机制(三)

目录 3.Redis哨兵 3.1.哨兵原理 3.1.1.集群结构和作用 3.1.2.集群监控原理 3.1.3.集群故障恢复原理 3.1.4.小结 3.2.搭建哨兵集群 3.3.RedisTemplate 3.3.1.导入Demo工程 3.3.2.引入依赖 3.3.3.配置Redis地址 3.3.4.配置读写分离 3.Redis哨兵 Redis提供了哨兵&am…

Spring Cloud Gateway学习

文章大纲 为什么需要网关&#xff1f; 传统的单体架构只有一个服务开放给客户端调用&#xff0c;但是在微服务架构体系中是将一个系统拆分成多个微服务&#xff0c;那么作为客户端如何去调用这些微服务呢&#xff1f;如果没有网关的存在&#xff0c;就只能在本地记录每个微服务…

彻底关闭Windows10更新!!

以下四个步骤都需要执行。 一、禁用Windows Update服务 1、同时按下键盘 Win R&#xff0c;然后输入 services.msc &#xff0c;点击确定。 2、找到 Windows Update 这一项&#xff0c;并双击打开。 3、双击打开它&#xff0c;点击 停止&#xff0c;把启动类型选为 禁用&…

SpringBoot+@Async注解-异步调用

编程开发里&#xff0c;使用java异步执行方法可以让程序同时处理多个请求业务&#xff0c;提升吞吐量来缩短业务的执行时间&#xff0c;在springboot的程序应用中&#xff0c;提供了Async注解来实现异步执行方法。在业务开发中&#xff0c;有些时候是不需要立即返回业务的处理结…

前端代码质量-圈复杂度原理和实践

1. 导读 你们是否也有过下面的想法&#xff1f; 重构一个项目还不如新开发一个项目…这代码是谁写的&#xff0c;我真想… 你们的项目中是否也存在下面的问题&#xff1f; 单个项目也越来越庞大&#xff0c;团队成员代码风格不一致&#xff0c;无法对整体的代码质量做全面的…

【LeetCode】剑指 Offer 25. 合并两个排序的链表 p145 -- Java Version

题目链接&#xff1a;https://leetcode.cn/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof/ 1. 题目介绍&#xff08;25. 合并两个排序的链表&#xff09; 输入两个递增排序的链表&#xff0c;合并这两个链表并使新链表中的节点仍然是递增排序的。 【测试用例】&#xf…

软件测试分类知识分享,第三方软件测试机构收费贵不贵?

软件测试可以很好的检验软件产品的质量以及规避产品上线之后可能会发生的错误&#xff0c;随着技术的发展&#xff0c;软件测试已经是一个完整且体系庞大的测试活动&#xff0c;不同的测试领域有着不同的测试方法、技术与名称&#xff0c;那么具体有哪些分类呢? 一、软件测试…