DataX与DB2导入导出案例

news2024/10/2 8:30:27

DataX与DB2导入导出案例


文章目录

  • DataX与DB2导入导出案例
    • 0. 写在前面
    • 1. DB2介绍
    • 2. DB2数据库对象关系
    • 3. 安装前的准备
      • 3.1 安装依赖
      • 3.2 修改配置文件 sysctl.conf
      • 3.3 修改配置文件 limits.conf
    • 4. 安装
      • 4.1 预检查
      • 4.2 添加组和用户
      • 4.3 创建实例
      • 4.4 创建实例库、开启服务
      • 4.5 连接
    • 5. DataX与DB2导入导入案例
      • 5.1 注册 db2 驱动
      • 5.2 读取 DB2 的数据导入到 HDFS
      • 5.3 读取 DB2 的数据导入 MySQL


0. 写在前面

  • Linux版本:CentOS-7.5-x86_64-DVD-1804
  • DB2版本:LINUXX8664 11.5.4.0(node02机器)
  • DataX版本:
  • Python版本:Python 2.7.5
  • DataX模式:单机版(node01机器)
  • 关闭防火墙
  • 关闭SELinux
  • 配置本地yum源

1. DB2介绍

DB2 是 IBM 公司于 1983 年研制的一种关系型数据库系统(Relational Database Management System),主要应用于大型应用系统,具有较好的可伸缩性 。DB2 是 IBM 推出 的第二个关系型数据库,所以称为 db2。DB2 提供了高层次的数据利用性、完整性、安全性 、并行性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL 命令运行环境。可以同时在不同操作系统使用,包括Linux、UNIX 和 Windows。

2. DB2数据库对象关系

  • instance, 同一台机器上可以安装多个DB2 instance。

  • database, 同一个 instance 下面可以创建有多个 database。

  • schema, 同一个database 下面可以配置多个schema。

  • table,同一个 schema 下可以创建多个table。

3. 安装前的准备

3.1 安装依赖

sudo yum install -y bc binutils compat-libcap1 compat-libstdc++33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++- devel libxcb make smartmontools sysstat kmod* gcc-c++ compat-libstdc++-33 libstdc++.so.6 kernel-devel pam-devel.i686 pam.i686 pam32*	

3.2 修改配置文件 sysctl.conf

[root@node02 module]# vim /etc/sysctl.conf

删除里面的内容,再添加如下内容:

net.ipv4.ip_local_port_range = 9000 65500
fs.file-max = 6815744
kernel.shmall = 10523004
kernel.shmmax = 6465333657
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128 
net.core.rmem_default=262144 
net.core.wmem_default=262144 
net.core.rmem_max=4194304 
net.core.wmem_max=1048576 
fs.aio-max-nr = 1048576

3.3 修改配置文件 limits.conf

[root@node02 module]# vim /etc/security/limits.conf

在文件末尾添加:

*	soft nproc 65536
*	hard nproc 65536
*	soft nofile 65536
*	hard nofile 65536

Note:重启node02生效

4. 安装

4.1 预检查

  • 执行以下命令,开始预检查
[root@node02 server_dec]# ./db2prereqcheck -l -s
需求与 Db2 数据库 "Server"  不匹配。版本:"11.5.4.0"。 当前系统上未满足的先决条件的摘要:    DBT3514W  db2prereqcheck 实用程序未能找到以下 32 位库文件:"/lib/libpam.so*"。


需求与 Db2 数据库 "Server" 带 pureScale 功能部件  不匹配。版本:"11.5.4.0"。 当前系统上未满足的先决条件的摘要: DBT3613E  db2prereqcheck 实用程序无法验证对应 TSA 的先决条件。请确保您的机器满足所有 TSA 安装先决条件。

DBT3507E  db2prereqcheck 实用程序未能找到以下程序包或文件:"kernel-source"

出现Error:缺少「 32 位库文件:"/lib/libpam.so*"」

  • 关于这个Error,请检查和pam相关的依赖是否安装成功
[root@node02 server_dec]# rpm -qa | grep pam
pam-1.1.8-22.el7.x86_64
[root@node02 server_dec]# rpm -qa | grep pam-devel

没有pam-devel,重新安装依赖

[root@node02 server_dec]# yum install -y pam-devel.i686
  • 再次预检查
[root@node02 server_dec]# ./db2prereqcheck -l -s
DBT3533I  db2prereqcheck 实用程序已确认所有安装先决条件均已满足。 需求与 Db2 数据库 "Server" 带 pureScale 功能部件  不匹配。版本:"11.5.4.0"。 当前系统上未满足的先决条件的摘要: DBT3613E  db2prereqcheck 实用程序无法验证对应 TSA 的先决条件。请确保您的机器满足所有 TSA 安装先决条件。

DBT3507E  db2prereqcheck 实用程序未能找到以下程序包或文件:"kernel-source"

除了本次命令执行结果中的那两个依赖「DBT3533I、DBT3507E」没安装不会影响到DB2使用之外,如果有其他依赖包未安装成功,则这些依赖都需要先安装。

4.2 添加组和用户

新增用户组db2inst1和db2fenc1、新增用户db2iadm1、db2iadm1,并将新增的两个用户添加到对应的新增的组中,最后为两个新用户设置密码

[root@node02 server_dec]# groupadd -g 2000 db2iadm1
[root@node02 server_dec]# groupadd -g 2001 db2fadm1
[root@node02 server_dec]# useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1
[root@node02 server_dec]# useradd -m -g db2iadm1 -d /home/db2fenc1 db2fenc1
[root@node02 server_dec]# passwd db2inst1
更改用户 db2inst1 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@node02 server_dec]# passwd db2fenc1
更改用户 db2fenc1 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
  • db2inst1: 实例所有者

  • db2fenc1: 受防护用户

4.3 创建实例

  • db2的服务端口默认是50000
  • 进入db2安装目录下的instance目录
  • 执行db2icrt命令创建实例
  • 看到The execution completed successfully.代表实例创建成功
[root@node02 ~]# cd /opt/ibm/db2/V11.5/instance
[root@node02 instance]# ./db2icrt -p 50000 -u db2fenc1 db2inst1
DBI1446I  The db2icrt command is running.


DB2 installation is being initialized.

 Total number of tasks to be performed: 4
Total estimated time for all tasks to be performed: 309 second(s)

Task #1 start
Description: Setting default global profile registry variables
Estimated time 1 second(s)
Task #1 end

Task #2 start
Description: Initializing instance list
Estimated time 5 second(s)
Task #2 end

Task #3 start
Description: Configuring DB2 instances
Estimated time 300 second(s)
Task #3 end

Task #4 start
Description: Updating global profile registry
Estimated time 3 second(s)
Task #4 end

The execution completed successfully.

For more information see the DB2 installation log at "/tmp/db2icrt.log.55121".
DBI1070I  Program db2icrt completed successfully.

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

4.4 创建实例库、开启服务

创建实例库

  • 切换到db2inst1用户
  • 进入db2安装目录下的instance目录
  • 执行db2sampl命令创建实例库
[root@node02 instance]# su - db2inst1
上一次登录:六 114 17:07:30 CST 2023pts/0 上
[db2inst1@node02 ~]$ cd /opt/ibm/db2/V11.5/instance/
[db2inst1@node02 instance]$ db2sampl

Note:db2sampl命令会自动创建一个名为sample的数据库实例,如下图所示:

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

如上图所示.代表实例库创建成功

  • 启动服务

db2start命令用于启动db2服务

[db2inst1@node02 instance]$ db2start
01/14/2023 17:16:08     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.

4.5 连接

  • 进入交互式环境
[db2inst1@node02 instance]$ db2
(c) Copyright IBM Corporation 1993,2007
Command Line Processor for DB2 Client 11.5.4.0

You can issue database manager commands and SQL statements from the command
prompt. For example:
    db2 => connect to sample
    db2 => bind sample.bnd

For general help, type: ?.
For command help, type: ? command, where command can be
the first few keywords of a database manager command. For example:
 ? CATALOG DATABASE for help on the CATALOG DATABASE command
 ? CATALOG          for help on all of the CATALOG commands.

To exit db2 interactive mode, type QUIT at the command prompt. Outside
interactive mode, all commands must be prefixed with 'db2'.
To list the current command option settings, type LIST COMMAND OPTIONS.

For more detailed help, refer to the Online Reference Manual.

db2 =>
  • 连接数据库实例
db2 => connect to sample

   Database Connection Information

 Database server        = DB2/LINUXX8664 11.5.4.0
 SQL authorization ID   = DB2INST1
 Local database alias   = SAMPLE
 
  • 查看样例库sample下的所有表

Note:sql语句后不要加分号

db2 => list tables

Table/View                      Schema          Type  Creation time
------------------------------- --------------- ----- --------------------------
ACT                             DB2INST1        T     2023-01-14-17.14.29.830759
ADEFUSR                         DB2INST1        S     2023-01-14-17.14.31.218932
CATALOG                         DB2INST1        T     2023-01-14-17.14.33.002045
CL_SCHED                        DB2INST1        T     2023-01-14-17.14.29.299734
CUSTOMER                        DB2INST1        T     2023-01-14-17.14.32.839163
DEPARTMENT                      DB2INST1        T     2023-01-14-17.14.29.340559
DEPT                            DB2INST1        A     2023-01-14-17.14.29.422197
EMP                             DB2INST1        A     2023-01-14-17.14.29.487346
EMPACT                          DB2INST1        A     2023-01-14-17.14.29.829392
EMPLOYEE                        DB2INST1        T     2023-01-14-17.14.29.423121
EMPMDC                          DB2INST1        T     2023-01-14-17.14.31.348910
EMPPROJACT                      DB2INST1        T     2023-01-14-17.14.29.801185
EMP_ACT                         DB2INST1        A     2023-01-14-17.14.29.830162
EMP_PHOTO                       DB2INST1        T     2023-01-14-17.14.29.488199
EMP_RESUME                      DB2INST1        T     2023-01-14-17.14.29.577152
INVENTORY                       DB2INST1        T     2023-01-14-17.14.32.792380
IN_TRAY                         DB2INST1        T     2023-01-14-17.14.29.888552
ORG                             DB2INST1        T     2023-01-14-17.14.29.914447
PRODUCT                         DB2INST1        T     2023-01-14-17.14.32.707200
PRODUCTSUPPLIER                 DB2INST1        T     2023-01-14-17.14.33.135046
PROJ                            DB2INST1        A     2023-01-14-17.14.29.744731
PROJACT                         DB2INST1        T     2023-01-14-17.14.29.746236
PROJECT                         DB2INST1        T     2023-01-14-17.14.29.670584
PURCHASEORDER                   DB2INST1        T     2023-01-14-17.14.32.919101
SALES                           DB2INST1        T     2023-01-14-17.14.29.959681
STAFF                           DB2INST1        T     2023-01-14-17.14.29.936877
STAFFG                          DB2INST1        T     2023-01-14-17.14.31.033939
STUDENT                         DB2INST1        T     2023-01-14-17.19.57.468544
SUPPLIERS                       DB2INST1        T     2023-01-14-17.14.33.069115
VACT                            DB2INST1        V     2023-01-14-17.14.29.999212
VASTRDE1                        DB2INST1        V     2023-01-14-17.14.30.013130
VASTRDE2                        DB2INST1        V     2023-01-14-17.14.30.016328
VDEPMG1                         DB2INST1        V     2023-01-14-17.14.30.006266
VDEPT                           DB2INST1        V     2023-01-14-17.14.29.983567
VEMP                            DB2INST1        V     2023-01-14-17.14.29.992888
VEMPDPT1                        DB2INST1        V     2023-01-14-17.14.30.009309
VEMPLP                          DB2INST1        V     2023-01-14-17.14.30.046463
VEMPPROJACT                     DB2INST1        V     2023-01-14-17.14.30.004078
VFORPLA                         DB2INST1        V     2023-01-14-17.14.30.032327
VHDEPT                          DB2INST1        V     2023-01-14-17.14.29.990353
VPHONE                          DB2INST1        V     2023-01-14-17.14.30.041997
VPROJ                           DB2INST1        V     2023-01-14-17.14.29.996689
VPROJACT                        DB2INST1        V     2023-01-14-17.14.30.001257
VPROJRE1                        DB2INST1        V     2023-01-14-17.14.30.018638
VPSTRDE1                        DB2INST1        V     2023-01-14-17.14.30.023670
VPSTRDE2                        DB2INST1        V     2023-01-14-17.14.30.028481
VSTAFAC1                        DB2INST1        V     2023-01-14-17.14.30.035293
VSTAFAC2                        DB2INST1        V     2023-01-14-17.14.30.038206

  48 record(s) selected.
  • sql语句加分号出错(不论大小写,都不要加分号)
db2 => list tables;
SQL0104N  An unexpected token "tables;" was found following "LIST".  Expected
tokens may include:  "ACTIVE".  SQLSTATE=42601
  • 查询样例库sample下表staff的数据
db2 => select * from staff limit 2;

ID     NAME      DEPT   JOB   YEARS  SALARY    COMM
------ --------- ------ ----- ------ --------- ---------
    10 Sanders       20 Mgr        7  98357.50         -
    20 Pernal        20 Sales      8  78171.25    612.45

  2 record(s) selected.
  • 创建表、插入数据
db2 => CREATE TABLE STUDENT(ID int ,NAME varchar(20));
DB20000I  The SQL command completed successfully.
db2 => INSERT INTO STUDENT VALUES(11, 'lisi');
DB20000I  The SQL command completed successfully.
db2 => commit;
DB20000I  The SQL command completed successfully.

表STUDENT数据

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

5. DataX与DB2导入导入案例

DataX官网并没有DB2专门的读写教程,但是有通用RDBMS(支持所有关系型数据库)的读写教程,而DB2就属于通用RDBMS,如下图所示:

在这里插入图片描述

官网关系型数据库读写链接地址如下:

https://github.com/alibaba/DataX/blob/master/rdbmsreader/doc/rdbmsreader.md
https://github.com/alibaba/DataX/blob/master/rdbmswriter/doc/rdbmswriter.md

DB2的SAMPLE数据库实例下的STUDENT表数据

在这里插入图片描述

5.1 注册 db2 驱动

DataX 暂时没有独立插件支持 db2,需要使用通用的 rdbmsreader 或 rdbmswriter。

rdbmswriter如何增加新的数据库支持:

  • 进入rdbmsreader对应目录,这里 D A T A X H O M E 为 D a t a X 主目录,即 : ‘ {DATAX_HOME}为DataX主目录,即:` DATAXHOMEDataX主目录,即:{DATAX_HOME}/plugin/reader/rdbmsreader`
  • 在rdbmsreader插件目录下有plugin.json配置文件,在此文件中注册您具体的数据库驱动,具体放在drivers数组中。rdbmsreader插件在任务执行时会动态选择合适的数据库驱动连接数据库。
  • 注册 reader 的 db2 驱动
[whybigdata@node01 datax]$ vim /opt/module/datax/plugin/reader/rdbmsreader/plugin.json 
#在 drivers 里添加 db2 的驱动类com.ibm.db2.jcc.DB2Driver
"drivers":["dm.jdbc.driver.DmDriver", "com.sybase.jdbc3.jdbc.SybDriver", "com.edb.Driver","com.ibm.db2.jcc.DB2Driver"]
  • 注册 writer 的 db2 驱动
[whybigdata@node01 datax]$ vim /opt/module/datax/plugin/writer/rdbmswriter/plugin.json 
#在 drivers 里添加 db2 的驱动类com.ibm.db2.jcc.DB2Driver
"drivers":["dm.jdbc.driver.DmDriver", "com.sybase.jdbc3.jdbc.SybDriver", "com.edb.Driver","com.ibm.db2.jcc.DB2Driver"]
  • 在DataX中db2相关依赖包(本人使用的版本中db2jcc4.jar是2017年1月14日的)
[whybigdata@node01 libs]$ pwd
/opt/module/datax/plugin/reader/rdbmsreader/libs
[whybigdata@node01 libs]$ ll | grep db2
-rwxr-xr-x 1 whybigdata whybigdata 3528544 114 19:28 db2jcc4.jar

[whybigdata@node01 libs]$ pwd
/opt/module/datax/plugin/writer/rdbmswriter/libs
[whybigdata@node01 libs]$ ll | grep db2
-rwxr-xr-x 1 whybigdata whybigdata 3528544 114 19:37 db2jcc4.jar

Note:如若下方案例从DB2导出不成功,在DB2连接正常且json文件无误的情况下,请更换更新的db2jcc4.jar

5.2 读取 DB2 的数据导入到 HDFS

编写配置文件:进入DataX按照目录

[whybigdata@node01 datax]$ vim job/db2-2-hdfs.json
  • 文件内容如下
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "rdbmsreader",
                    "parameter": {
                        "column": [
                            "ID",
                            "NAME"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": [
                                    "jdbc:db2://node02:50000/SAMPLE"
                                ],
                                "table": [
                                    "STUDENT"
                                ]
                            }
                        ],
                        "username": "db2inst1",
                        "password": "123456"
                    }
                },
                "writer": {
                    "name": "hdfswriter",
                    "parameter": {
                        "column": [
                            {
                                "name": "id",
                                "type": "int"
                            },
                            {
                                "name": "name",
                                "type": "string"
                            }
                        ],
                        "defaultFS": "hdfs://node01:8020",
                        "fieldDelimiter": "-",
                        "fileName": "db2.txt",
                        "fileType": "text",
                        "path": "/datax-out",
                        "writeMode": "append"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}

执行

[whybigdata@node01 datax]$ bin/datax.py job/db2-2-hdfs.json

最终结果:

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

5.3 读取 DB2 的数据导入 MySQL

编写配置文件:进入DataX按照目录

[whybigdata@node01 datax]$ vim job/db2-2-mysql.json
  • 文件内容如下
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "rdbmsreader",
                    "parameter": {                        
                        "column": [
                            "ID",
                            "NAME"
                        ],
                        "connection": [
                            {                                
                                "jdbcUrl": [
                                    "jdbc:db2://node02:50000/SAMPLE"
                                ],
								"table": [
                                    "STUDENT"
                                ]
                            }
                        ],
						"username": "db2inst1",
                        "password": "123456"
                    }
                },
                "writer": {
					"name": "mysqlwriter",
					"parameter": {
						"column": ["*"], 
						"connection": [
							{
								"jdbcUrl": "jdbc:mysql://node01:3306/datax", 
								"table": ["student"]
							}
						],
						"password": "123456", 
						"username": "root", 
						"writeMode": "insert"
					}
				}
            }
        ],
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}

执行

[whybigdata@node01 datax]$ bin/datax.py job/db2-2-mysql.json

最终结果:

  • 导入MySQL前:

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

  • 导入MySQL后:

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

结束!

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

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

相关文章

在CentOS7上静默安装Oracle19c

1.下载Oracle 官方安装包下载路径(需要登录Oracle账号): https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#19c 可选择windows/Linux平台对应的安装包,我选择Linux x86-64、ZIP包下载&…

分析linux内核移植中vmlinux可执行文件是如何生成的?以及 uImage/zImage/Image/vmlinx之间关系

一:分析linux内核移植中vmlinux可执行文件是如何生成的? 1:进入内核源码顶层目录下打开Makefile文件,搜索vmlinux 这里构建vmlinux的命令使用了makefile的内置函数call。这是一个比较特殊的内置函数,make使用它来引用…

Go语言学习编程实践:五种模式解决go中的并发问题

五种模式解决go中的并发问题For-Select-Done扇入模式从流中获取前 n 个值订阅模式地图模式过滤模式For-Select-Done 我们应该防止程序中发生任何泄露。所以我们应该对于留在程序中的go例程发送信号,让它知道它可以退出。 最常见的就是将for-select循环与通道结合起…

UEFI启动流程

以上是UEFI系统运行的7个阶段,下边是详细描述: SEC阶段:(安全验证) 1、接收和处理系统的启动,重启,异常信号; 2、SEC阶段特色功能“Cache As RAM(CAR)”&am…

英伦四地到底是什么关系?

英格兰、苏格兰、威尔士和北爱尔兰四地到底是什么关系,为何苏格兰非要独立?故事还要从中世纪说起。大不列颠岛位于欧洲西部,和欧洲大陆隔海相望。在古代,大不列颠岛和爱尔兰属于凯尔特人的领地。凯尔特人是欧洲西部一个庞大的族群…

Caddy2学习笔记——Caddy2反向代理Frp内网穿透和反向代理PVE

一、环境概述 本人拥有一个国内云服务商的云主机和一个备案好的域名,通过caddy2来作为web服务器。 我的云主机是公网ip,地址为:43.126.100.78;我备案好的域名是:hotgirl.com 。后面的文章都以上述的ip和域名来进行讲解…

Actipro WinForms Studio Crack

Actipro WinForms Studio Crack 已验证Microsoft.NET 7兼容性。 添加了MetroDark配色方案。 添加了支持MetroLight和MetroDark颜色方案的MetroScrollBarRenderer。 添加了IWindowsColorScheme接口,该接口将替换对WindowsColorScheme的大多数引用。 添加了IWindowsCo…

Zookeeper客户端ZkClient、Curator的使用,史上最详细的教程来啦~

1 前言 本文主要介绍了操作Zookeeper的几种客户端的基础使用,希望对老铁们会有所帮助。 可以去操作zookeeper创建、删除、查询、修改znode节点 2 Zookeeper服务器客户端分类 目前,Zookeeper服务器有三种Java客户端: Zookeeper、Zkclient和…

inquirerjs

inquirerjs inquirerjs是一个用来实现命令行交互界面的工具集合。它帮助我们实现与用户的交互交流,比如给用户一个提醒,用户给我们一个答案,我们根据用户的答案来做一些事情,典型应用如plop等生成器工具。 npm install inquirer…

软测面试了一个00后,绝对能称为是内卷届的天花板

前言 公司前段缺人,也面了不少测试,结果竟然没有一个合适的。一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资也不低,面试的人很多,但平均水平很让人失望。令我印象最深的是一个00后测试员&#xf…

certum验证域名所有权

Certum证书支持 Email、文件上传、DNS解析 验证域名所有权。1 .Email 方式请确认自己域名已开通,域名邮箱。仅支持以下邮箱:adminyourdomain.comadministratoryourdomain.comwebmasteryourdomain.compostmasteryourdomain.comhostmasteryourdomain.com收…

深度学习笔记:卷积神经网络(1)

1 卷积神经网络整体结构 卷积神经网络(CNN)相比全连接网络多了卷积层和池化层。对于全连接网络,所有相邻层的神经元都用Affine层进行连接,如图中即为Affine-ReLU的连接组合。 卷积神经网络则包含卷积层和池化层与激活函数相连&a…

后端Java随机比大小游戏实战讲解

## - 利用print打印输出提示用户 ## - 利用Scanner函数抓取数据 ## - 利用Math方法实现随机数 #### 1.首先用到的是print函数,对用户进行提醒进一步的操作 通过System.out.print();提示用户进行选择买大买小。 #### 2.然后利用Scanner函数,对用户输出…

Spring Bean生命周期七大阶段-Java八股面试(七)

系列文章目录 第一章 ArrayList-Java八股面试(一) 第二章 HashMap-Java八股面试(二) 第三章 单例模式-Java八股面试(三) 第四章 线程池和Volatile关键字-Java八股面试(四) 第五章 ConcurrentHashMap-Java八股面试(五) 第六章 spring之refresh流程-Java八股面试(六) 提示&…

HTTPS是怎么加密数据的?

HTTPS是怎么加密数据的?对安全或密码学基础有了解的同学,应该知道常见的加密手段。一般来说,加密分为对称加密、非对称加密(也叫公开密钥加密)对称加密对称加密的意思就是,加密数据用的密钥,跟解…

儿童反复感染,是体质差还是免疫缺陷?

原发性免疫缺陷病(PIDs)它是一组由遗传因素或先天性免疫系统发育不良引起的免疫系统功能障碍综合征,可涉及固有免疫或适应性免疫。在中国,PID的中位发病率为6个月,男孩的发病率通常高于女孩。▼分类目前,国…

LearnOpenGL-光照-2.基础光照

本人刚学OpenGL不久且自学,文中定有代码、术语等错误,欢迎指正 我写的项目地址:https://github.com/liujianjie/LearnOpenGLProject 文章目录基础光照环境光照漫反射光照法向量计算漫反射光照最后一件事镜面光照基础光照 简介 现实世界的光照…

JavaEE初阶---初始进程

系统分配资源的最小单元--进程啥是进程看看进程操作系统如何管理进程PCB中的一些属性pid(进程id)内存指针文件描述符表进程调度并行和并发:进程调度的特性状态:优先级:记账信息:上下文:虚拟地址空间进程间交互我们日常使用计算机,大致可以抽象成如下形式:自上向下依次是 各种软…

易优cms switch 条件判断标签使用方法

【基础用法】 标签:switch 描述:简单条件判断,比if判断标签少些不等于相同功能,视个人习惯而用。 用法: {eyou:switch name$eyou.field.has_children} {eyou:case value1}当前栏目列表的栏目ID有1个下级栏目{/eyo…

跨境电商卖家如何应对拒付、盗卡

跨境电商主要是通过电子商务平台进行交易,在平台上完成支付结算,并通过国际物流将商品送达买方,从而实现跨国零售交易。与传统贸易相比,跨境电商存在交易链条更短、回款周期更快、数据及时透明等优势。商务部数据显示,…