ora2pg使用记录


前言

这篇文章是我在学习使用ora2pg过程中的学习记录,以便日后遗忘查阅;

诸君也可跟随我的步伐了解一下ora2pg,或可移步如下官方文档参考学习:Ora2Pg : Migrates Oracle to PostgreSQL (darold.net)

本文的ora2pg安装和使用记录是在win10系统下迁移远程Oracle数据库到远程PostgreSQL数据库的应用环境下进行的,如果你的应用场景不同,可简阅做思路参考!


目录


初识ora2pg

一、ora2pg是什么?

Ora2Pg - Oracle to PostgreSQL database schema converter(Oracle到PostgreSQL数据库模式转换器)

Ora2Pg是一个开源免费的数据库迁移工具,用于将Oracle数据库迁移到PostgreSQL兼容的模式。它连接您的Oracle数据库,自动扫描并提取其结构或数据,然后生成可以加载到PostgreSQL数据库中的SQL脚本。Ora2Pg非常易于使用,除了提供连接到Oracle数据库所需的参数外,不需要任何Oracle数据库知识。

(一)、Ora2Pg能做的迁移动作如下

TABLE with constraints, VIEW, MVIEW, TABLESPACE, SEQUENCE, INDEXES, TRIGGER, GRANT, FUNCTION, PROCEDURE, PACKAGE, PARTITION, TYPE, INSERT or COPY, FDW, QUERY, KETTLE, SYNONYM

(二)、功能包括

- Export full database schema (tables, views, sequences, indexes), with unique, primary, foreign key and check constraints.
【导出完整的数据库架构(表、视图、序列、索引),具有唯一、主键、外键和检查约束。】
- Export grants/privileges for users and groups.
【导出用户和组的授予/权限。】
- Export range/list partitions and sub partitions.
【导出范围/列表分区和子分区。】
- Export a table selection (by specifying the table names).
【导出选择的表格(通过指定表格名称)。】
- Export Oracle schema to a PostgreSQL 8.4+ schema.
【将Oracle模式导出为PostgreSQL 8.4+模式。】
- Export predefined functions, triggers, procedures, packages and package bodies.
【导出预定义的函数、触发器、过程、包和包体。】
- Export full data or following a WHERE clause.
【导出完整数据或遵循WHERE子句。】
- Full support of Oracle BLOB object as PG BYTEA.
【完全支持Oracle BLOB对象作为PG BYTEA。】
- Export Oracle views as PG tables.
【将Oracle视图导出为PG表。】
- Export Oracle user defined types.
【导出Oracle用户定义的类型。】
- Provide some basic automatic conversion of PLSQL code to PLPGSQL.
【将Oracle表导出为外部数据包装表。】
- Works on any platform.
【适用于任何平台。】
- Export Oracle tables as foreign data wrapper tables.
【将Oracle表导出为外部数据包装表。】
- Export materialized view.
【导出具体化视图。】
- Show a report of an Oracle database content.
【显示Oracle数据库内容的报告。】
- Migration cost assessment of an Oracle database.
【Oracle数据库的迁移成本评估。】
- Migration difficulty level assessment of an Oracle database.
【Oracle数据库的迁移难度级别评估。】
- Migration cost assessment of PL/SQL code from a file.
【从文件迁移PL/SQL代码的成本评估。】
- Migration cost assessment of Oracle SQL queries stored in a file.
【存储在文件中的Oracle SQL查询的迁移成本评估。】
- Generate XML ktr files to be used with Penthalo Data Integrator (Kettle)
【生成要与Penthalo Data Integrator(Kettle)一起使用的XML ktr文件】
- Export Oracle locator and spatial geometries into PostGis.
【将Oracle定位器和空间几何图形导出到PostGis中。】
- Export DBLINK as Oracle FDW.
【将DBLINK导出为Oracle FDW。】
- Export SYNONYMS as views.
【将SYNONYMS导出为视图。】
- Export DIRECTORY as external table or directory for external_file extension.
【将DIRECTORY导出为external_file扩展名的外部表或目录。】
- Dispatch a list of SQL orders over multiple PostgreSQL connections
【通过多个PostgreSQL连接调度SQL订单列表】
- Perform a diff between Oracle and PostgreSQL database for test purpose.
【通过多个PostgreSQL连接调度SQL订单列表】
- MySQL/MariaDB and Microsoft SQL Server migration.
【MySQL/MariaDB和Microsoft SQL Server迁移。】

需要注意的是:Ora2Pg尽最大努力将您的Oracle数据库自动转换为PostgreSQL,但仍有手动工作要做。为函数、procedures、包和触发器生成的Oracle特定PL/SQL代码必须经过审查,以匹配PostgreSQL语法。

二、ora2pg下载安装及环境配置

(一)、Perl下载安装

首先因为Ora2Pg是Perl语言编写的,所以要使用这个工具,则必须为其搭建Perl运行环境。注意:安装版本要大于等于5.10

Perl下载地址Strawberry Perl for Windows

下载好如下:

傻瓜式安装即可,没有特殊操作。

(二)、Oracle客户端或完整的Oracle安装配置

1.1 安装

必须在系统上安装Oracle Instant Client或完整的Oracle安装程序。

进行数据库迁移工作这些应该都已经安装了,这里不做赘述。

如果确实没有安装,这里推荐几篇相关博文供参考:

  1. Oracle客户端安装教程(图文)
  2. Oracle Client(客户端) 安装与配置
  3. oracle数据库安装(全步骤详解)
  4. Oracle下载安装教程—Oracle19c下载安装(每一步)

注意:这里由于我的数据库服务器都不在本机,这里我使用的是Oracle客户端进行的接下来的操作。

如果你的Oracle数据库在本机,这里也推荐一篇文章以作参考!

[Windows下Ora2Pg(Oracle到PostgreSQL迁移工具)的安装配置及使用教程](https://blog.csdn.net/qq_34272470/article/details/128128287#:~:text=使用Ora2Pg 1 1.cmd定位到解压后的Ora2Pg目录中,执行下面的命令使用Perl解析Ora2Pg perl Makefile.PL 2 2.上面的命令执行完成后,会有提示,按照提示执行下面的命令即可 dmake,get DBD%3A%3AOracle 8 8.安装DBD%3A%3AOracle驱动 install DBD%3A%3AOracle ... 更多项目)

1.2 配置

在使用ora2pg时,我们需要配置Oracle客户端(或Oracle)的ORACLE_HOME环境变量,值为客户端安装目录。(这是必须的

官方文档:You need to have the Oracle client libraries installed and the ORACLE_HOME environment variable must be defined.

(三)、Ora2Pg安装配置

Ora2Pg下载地址

  1. SOURCEFORGE:ora2pg download | SourceForge.net
  2. GitHub:Releases · darold/ora2pg (github.com)

下载好如下:

1.1 安装

解压到任意目录即可!

1.2 配置(win10下配置)
1.2.1 配置前说明
  1. Ora2Pg连接数据库并进行迁移动作,DBIPerl模块是必须安装的,并且其版本要大于1.614。

  2. Ora2Pg不仅能够迁移Oracle数据库,还可以迁移MySQL、SQL Server等,只需要安装对应的Perl模块即可。例如:

    迁移Oracle - install DBD::Oracle

    迁移MySQL - install DBD::MySQL

    迁移SQL Server - install DBD::ODBC

    有些ora2pg发行版可能还需要安装Time::HiResPerl模块

  3. Ora2Pg可以导出sql脚本供pg数据库导入执行,也可以直接导入到远程pg数据库。

    要导入sql脚本你还需要安装PostgreSQL客户端(psql)

    如果你想动态直接导入到PostgreSQL,你至少还需要安装DBD::PgCompress::ZlibPerl模块

    默认情况下,Ora2Pg生成sql脚本供PostgreSQL客户端导入执行

1.2.2 Oracle迁移到PostgreSQL环境配置
  1. 通过cmd进入到Ora2Pg安装目录,查看Perl版本(Perl版本要大于5.10

  2. 将把Ora2Pg.pm安装到Perl库

    perl Makefile.PL
    gmake && gmake install

  3. 安装DBIPerl模块

    cpan
    get DBI
    install DBI

  4. 安装DBD::OraclePerl模块

    官方文档:Installing DBD::Oracle require that the three Oracle packages: instant-client, SDK and SQLplus are installed as well as the libaio1 library.

    可以看到,安装DBD::Oracle还需要Oracle SDK和SQLplus,如果你和我一样安装的是精简版Oracle客户端,那么你还需要去官网下载安装Oracle SDK和SQLplus。

    下载地址Instant Client for Microsoft Windows (x64) 64-bit (oracle.com)

    直接点击这里下载的是最新版本的精简版客户端、SQL*Plus、SDK

    下载好如下三个压缩包:

    SQL*Plus、SDK的安装是建立在精简版客户端的基础上的,你需要先安装好精简版客户端。

    精简版客户端安装:精简版客户端客户端的安装很简单,解压到任意目录即可!配置ORACLE_HOME环境变量。注意!注意!注意!安装路径上一定不要有空格或中文字符!否则在安装DBD::Oracle的时候,会报错!

    SQL*Plus和SDK安装:直接将压缩包文件解压精简版客户端安装目录即可!

    安装好之后,还需要配置LD_LIBRARY_PATH环境变量(注意,精简版客户端不安装SDK是没有sdk\lib的,安装DBD::Oracle时会加载lib)

    官方文档:If you are using Instant Client from ZIP archives, the LD_LIBRARY_PATH and ORACLE_HOME will be the same and must be set to the directory where you have installed the files. For example: /opt/oracle/instantclient_12_2/

    做好这一切开始安装DBD::Oracle

    cpan
    get DBD::Oracle
    install DBD::Oracle

    安装完成之后再执行一下:install DBD::Oracle,确定是否安装成功,如下表示安装成功!

三、ora2pg参数说明

ora2pg可以使用命令行的方式进行数据迁移,但是这种方式我暂未实验,了解一些常用命令即可!

(一)、常用命令

ora2pg -c | --conf file : 设置非默认的配置文件,默认配置文件为 /etc/ora2pg/ora2pg.conf。(指定自定义配置文件路径)

ora2pg -d | --debug : 使用调试模式,输出更多详细信息。

(二)、参数帮助说明(直译)

# ora2pg --help
Usage: ora2pg [-dhpqv --estimate_cost --dump_as_html] [--option value]
-a | --allow str : 指定允许导出的对象列表,使用逗号分隔。也可以与 SHOW_COLUMN 选项一起使用。
-b | --basedir dir: 设置默认的导出目录,用于存储导出结果。
-c | --conf file : 设置非默认的配置文件,默认配置文件为 /etc/ora2pg/ora2pg.conf。
-d | --debug : 使用调试模式,输出更多详细信息。
-D | --data_type STR : 通过命令行设置数据类型转换。
-e | --exclude str: 指定导出时排除的对象列表,使用逗号分隔。也可以与 SHOW_COLUMN 选项一起使用。
-h | --help : 显示帮助信息。
-g | --grant_object type : 导出指定类型的对象上的授权信息,取值参见 GRANT_OBJECT 配置项。
-i | --input file : 指定要导入的 Oracle PL/SQL 代码文件,导入文件时不需要连接到 Oracle 数据库。
-j | --jobs num : 设置用于发送数据到 PostgreSQL 的并发进程数量。
-J | --copies num : 设置用于从 Oracle 导出数据的并发连接数量。
-l | --log file : 设置日志文件,默认为 stdout。
-L | --limit num : 导出数据时,每次写入磁盘之前在内存中缓冲的记录数量,默认值为 10000。
-m | --mysql : 导出 MySQL 数据库。
-n | --namespace schema : 设置需要导出的 Oracle 模式。
-N | --pg_schema schema : 设置 PostgreSQL 中的搜索路径 search_path。
-o | --out file : 设置导出的 SQL 文件的存储路径。默认值为当前目录下的 output.sql 文件。
-p | --plsql : 启用 PLSQL 代码到 PLPGSQL 代码的转换。
-P | --parallel num: 同时导出多个表,设置并发数量。
-q | --quiet : 不显示进度条。
-s | --source DSN : 设置 Oracle DBI 数据源。
-t | --type export: 设置导出类型。该参数将会覆盖配置文件中的导出类型(TYPE)。
-T | --temp_dir DIR: 为多个同时运行的 ora2pg 脚本指定不同的临时存储目录。
-u | --user name : 设置连接 Oracle 数据库连接的用户名。也可以使用 ORA2PG_USER 环境变量。
-v | --version : 显示 Ora2Pg 版本信息并退出。
-w | --password pwd : 设置连接 Oracle 数据库的用户密码。也可以使用 ORA2PG_PASSWD 环境变量。
--forceowner : 导入数据时,强制 ora2pg 将导入 PostgreSQL 的表和序列的拥有者设置为连接 Oracle 数据库时的用户。如果设置为指定的用户名,所有导入的对象属于该用户。默认情况下,对象的拥有者为连接 Pg 数据库的用户。
--nls_lang code: 设置 Oracle 客户端的 NLS_LANG 编码。
--client_encoding code: 设置 PostgreSQL 客户端编码。
--view_as_table str: 将视图导出为表,多个视图使用逗号分隔。
--estimate_cost : 在 SHOW_REPORT 结果中输出迁移成本评估信息。
--cost_unit_value minutes: 成本评估单位,使用分钟数表示。默认值为 5 分钟,表示一个 PostgreSQL 专家迁移所需的时间。如果是第一次迁移,可以设置为 10 分钟。
--dump_as_html : 生成 HTML 格式的迁移报告,只能与 SHOW_REPORT 选项一起使用。默认的报告是一个简单的文本文件。
--dump_as_csv : 与上个参数相同,但是生成 CSV 格式的报告。
--dump_as_sheet : 生成迁移评估时,为每个数据库生成一行 CSV 记录。
--init_project NAME: 创建一个ora2pg 项目目录结构。项目的顶级目录位于根目录之下。
--project_base DIR : 定义ora2pg 项目的根目录,默认为当前目录。
--print_header : 与 --dump_as_sheet 一起使用,输出 CSV 标题信息。
--human_days_limit num : 设置迁移评估级别从 B 升到 C 所需的人工日数量。默认值为 5 人工日。
--audit_user LIST : 设置查询 DBA_AUDIT_TRAIL 表时需要过滤的用户名,多个用户使用逗号分隔。该参数只能用于 SHOW_REPORT 和 QUERY 导出类型。
--pg_dsn DSN : 设置在线导入时的 PostgreSQL 数据源。
--pg_user name : 设置连接 PostgreSQL 的用户名。
--pg_pwd password : 设置连接 PostgreSQL 的用户密码。
--count_rows : 在 TEST 方式下执行真实的数据行数统计。
--no_header : 在导出文件中不添加 Ora2Pg 头部信息。
--oracle_speed : 用于测试 Oracle 发送数据的速度。不会真的处理或者写入数据。
--ora2pg_speed : 用于测试 Ora2Pg 发送转换后的数据的速度。不会写入任何数据。

四、ora2pg配置项说明

ora2pg不仅可以使用命令行的方式进行数据迁移,还可以通过自定义配置文件进行数据迁移配置。

ora2pg安装目录下有一个默认配置文件ora2pg.conf.dist,你可以通过学习配置项,来修改此配置文件的默认值,来达到你想要的业务需求。

该文件是可自定义进行配置项覆盖的,也就是说你可以在任意位置创建一个自定义配置文件,来增加自己的配置项,而不修改默认配置文件。

例如这样:

(一)、常用配置项

注意:配置项和值之间用tab键隔开

#设置Oracle主目录:Oracle的安装目录(如果说是Oracle客户端,就是客户端的路径)
ORACLE_HOME D:\test\instantclient_21_11
#设置Oracle数据库连接(数据源、用户、密码)连接远程的,需要配置远程数据库ip和端口
ORACLE_DSN dbi:Oracle:host=127.0.0.1;sid=orcl;port=1521
#填入Oracle用户名、密码
ORACLE_USER username
ORACLE_PWD pwd*** #配置你想迁移的内容,需要迁移什么内容,就配置什么内容,之间用“,”隔开
TYPE TABLE,VIEW,SEQUENCE,TRIGGER,FUNCTION,PROCEDURE #导出SQL目标文件名称
OUTPUT user.sql
#导出SQL目标目录
OUTPUT_DIR C:\test #配置你要导出的Oracle数据库 不配置的情况下默认导出所有数据库所有表
SCHEMA MY_Oracle_SCHEMA #配置允许留下的表,这里可以使用正则表达式,示例表示迁移表名包含“BI_”的数据库表
ALLOW .*BI_.* #默认情况下,Oracle模式不会导出到PostgreSQL数据库中,所有对象都是在默认的Pg命名空间下创建的。
#如果还要导出此架构并在此命名空间下创建所有对象,请将export_schema指令设置为1。
#这将使用默认的pg_catalog模式将导出SQL文件顶部的模式搜索路径设置为schema指令中设置的模式名称。
#如果要更改此路径,请使用指令PG_SCHEMA。
EXPORT_SCHEMA 0
#在输出文件开始时启用/禁用CREATE SCHEMA SQL顺序。它在默认情况下是启用的,并关系TABLE导出类型。
CREATE_SCHEMA 1 #限制导出到哪一个架构
PG_SCHEMA MY_PG_SCHEMA #设置导出目标pg数据库
PG_DSN dbi:Pg:dbname=my_db;host=127.0.0.1;port=5432
#填入pg用户名、密码
PG_USER pg_username
PG_PWD pg_pwd***

(二)、配置项帮助文档

更多配置项详细说明,请详见Ora2Pg官方文档!

Ora2Pg : Migrates Oracle to PostgreSQL (darold.net)


需求实验

实验一:批量导出Oracle中特定表到PostgreSQL的一个特定schema下

(1)需求详细说明

匹配Oracle数据库中所有表名包含"BI_"的数据表迁移到PostgreSQL的test_schema下。(迁移表结构和数据)

(2)实验过程

编写ora2pg.conf.dist配置文件:

ORACLE_HOME	D:\test\instantclient_21_11
ORACLE_DSN dbi:Oracle:host=127.0.0.1;sid=orcl;port=1521
ORACLE_USER username
ORACLE_PWD pwd*** TYPE TABLE,INSERT ALLOW .*BI_.* PG_SCHEMA test_schema OUTPUT user.sql
OUTPUT_DIR C:\test

执行迁移命令:

ora2pg -c C:\Users\zhao-XH\Desktop\ora2pg.conf.dist -d

导出sql脚本成功

在PostgreSQL客户端分别执行表结构和数据插入sql脚本即可!

(3)问题总结

迁移过程中要注意,字段的类型映射是否符合要求。官方给出的类型映射关系如下:

oracle类型 postgresql类型
date timestamp
long text
long raw bytea
clob text
nclob text
blob bytea
bfile bytea
raw bytea
rowid oid
float double precision
dec decimal
decimal decimal
double precision double precision
int integer
integer integer
real real
smallint smallint
binary_float double precision
binary_double double precision
tinestamp timestamp
xmltype xml
binary_integer integer
pls_integer integer
timestamp with time zone timestamp with time zone
timestamp with local time zone timestamp with time zone

如果类型映射不符合我们的要求,例如本次实验,我想要NUMBER(1,0)类型进行精度映射,而ora2pg工具考虑到效率问题,默认关闭NUMBER(p,s) -> numeric(p,s)的映射关系。采用了取整型的方式,这一点很显然不是我想要的。查阅官方文档,我们可以看出,要想开启NUMBER(p,s) -> numeric(p,s)的映射关系,需要将PG_INTEGER_TYPE配置项的值置为0即可!

官方文档:

PG_NUMERIC_TYPE

If set to 1 replace portable numeric type into PostgreSQL internal type. Oracle data type NUMBER(p,s) is approximatively converted to real and float PostgreSQL data type. If you have monetary fields or don't want rounding issues with the extra decimals you should preserve the same numeric(p,s) PostgreSQL data type. Do that only if you need exactness because using numeric(p,s) is slower than using real or double.

PG_INTEGER_TYPE

If set to 1 replace portable numeric type into PostgreSQL internal type. Oracle data type NUMBER(p) or NUMBER are converted to smallint, integer or bigint PostgreSQL data type following the value of the precision. If NUMBER without precision are set to DEFAULT_NUMERIC (see below).

DEFAULT_NUMERIC

NUMBER without precision are converted by default to bigint only if PG_INTEGER_TYPE is true. You can overwrite this value to any PG type, like integer or float.

我们也可以设置配置项来进行手动映射。方法如下:

官方文档:

If you're experiencing any problem in data type schema conversion with this directive you can take full control of the correspondence between Oracle and PostgreSQL types to redefine data type translation used in Ora2pg. The syntax is a comma-separated list of "Oracle datatype:Postgresql datatype". Here are the default list used:

DATA_TYPE       VARCHAR2:varchar,NVARCHAR2:varchar,NVARCHAR:varchar,NCHAR:char,DATE:timestamp(0)...

The directive and the list definition must be a single line.

看到上述说明,我们关注以下几点

  1. 设置配置项时,你没有必要全部粘贴默认映射再进行更改,只需要修改不符合你映射要求的数据类型即可!
  2. 所有类型映射配置必须在一行上声明,中间用","隔开。

示范,例如官方文档默认将DATE:timestamp(0),而我需要DATE:timestamp。同时我需要开启精度映射。

那么上述配置文件更改如下:

ORACLE_HOME	D:\test\instantclient_21_11
ORACLE_DSN dbi:Oracle:host=127.0.0.1;sid=orcl;port=1521
ORACLE_USER username
ORACLE_PWD pwd*** TYPE TABLE,INSERT ALLOW .*BI_.* PG_SCHEMA test_schema OUTPUT user.sql
OUTPUT_DIR C:\test PG_INTEGER_TYPE 0
DATA_TYPE DATE:timestamp

ora2pg使用记录的更多相关文章

  1. oracle迁移postgres之-Ora2Pg

    描述 Ora2Pg:甲骨文PostgreSQL数据库模式转换器是一个免费的工具用于Oracle数据库迁移到PostgreSQL兼容模式.它连接Oracle数据库,扫描它自动提取其结构或数据,然后生成S ...

  2. 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL

    在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...

  3. nginx配置反向代理或跳转出现400问题处理记录

    午休完上班后,同事说测试站点访问接口出现400 Bad Request  Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...

  4. Kali对wifi的破解记录

    好记性不如烂笔头,记录一下. 我是在淘宝买的拓实N87,Kali可以识别,还行. 操作系统:Kali 开始吧. 查看一下网卡的接口.命令如下 airmon-ng 可以看出接口名称是wlan0mon. ...

  5. 2015 西雅图微软总部MVP峰会记录

    2015 西雅图微软总部MVP峰会记录 今年决定参加微软MVP全球峰会,在出发之前本人就已经写这篇博客,希望将本次会议原汁原味奉献给大家 因为这次是本人第一次写会议记录,写得不好的地方希望各位园友见谅 ...

  6. 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

  7. 我是如何在SQLServer中处理每天四亿三千万记录的

    首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. ...

  8. 前端学HTTP之日志记录

    前面的话 几乎所有的服务器和代理都会记录下它们所处理的HTTP事务摘要.这么做出于一系列的原因:跟踪使用情况.安全性.计费.错误检测等等.本文将谥介绍日志记录 记录内容 大多数情况下,日志的记录出于两 ...

  9. ASP.NET Core应用中如何记录和查看日志

    日志记录不仅对于我们开发的应用,还是对于ASP.NET Core框架功能都是一项非常重要的功能特性.我们知道ASP.NET Core使用的是一个极具扩展性的日志系统,该系统由Logger.Logger ...

  10. python+uwsgi导致redis无法长链接引起性能下降问题记录

    今天在部署python代码到预生产环境时,web站老是出现redis链接未初始化,无法连接到服务的提示,比对了一下开发环境与测试环境代码,完全一致,然后就是查看各种日志,排查了半天也没有查明是什么原因 ...

随机推荐

  1. JS引擎中的线程,事件循环,上下文

      线程 浏览器中有哪些进程呢? 1.浏览器进程:浏览器的主进程,负责浏览器的界面界面显示,与用户交互,网址栏输入.前进.后退,以及页面的创建和销毁. 2.渲染进程(浏览器内核):默认一个tab页面一 ...

  2. 效率神器!神级ChatGPT浏览器插件分享

    大家好,我是卷了又没卷,薛定谔的卷的AI算法工程师「陈城南」~ 担任某大厂的算法工程师,带来最新的前沿AI知识和工具,欢迎大家交流~,后续我还会分享更多 AI 有趣工具和实用玩法,包括AI相关技术.C ...

  3. Transformer编码器和解码器被广泛应用于自然语言处理、计算机视觉、语音识别等领域。下面是一些Trans

    目录 1. 引言 2. 技术原理及概念 2.1 基本概念解释 2.1.1 编码器 2.1.2 解码器 2.2 技术原理介绍 2.2.1 编码器 2.2.2 解码器 2.3 相关技术比较 3. 实现步骤 ...

  4. Java判断101-200之间有多少个素数,并输出所有素数。

    代码如下: public static void main(String[] args) { //记录个数 int count = 0; //循环遍历 for(int i = 101;i <= ...

  5. 组合数学知识整理_USTC-IAT期末复习版(已完结)

    组合数学知识整理_USTC-IAT期末复习版(已完结) 第一章 排列与组合 第二章 递推关系与母函数 第三章 容斥原理与鸽巢原理 第四章 polya定理

  6. rocketmq-console基本使用

    rocketmq-console基本使用 作用:rocketmq-console是rocketmq的一款可视化工具,提供了mq的使用详情等功能. 一.安装部署 下载rocketmq组件 rocketm ...

  7. P3134 [USACO16JAN] Lights Out G 关灯

    P3134 [USACO16JAN] Lights Out G 关灯 目录 P3134 [USACO16JAN] Lights Out G 关灯 [USACO16JAN] Lights Out G 题 ...

  8. Hexo、Typecho博客添加旅行足迹网页

    本文部署的足迹地图,地址如下: http://www.aomanhao.top/index.php/archives/183/ jVectorMap JVectorMap 是一个优秀的.兼容性强的 j ...

  9. 【NestJS系列】DI依赖注入与IOC控制反转

    前言 上篇文章我们学习了如何使用nest-cli来快速生成一个NestJS后端项目,当我们打开编辑器查看代码时,会发现整个代码风格有点类似JAVA的spring框架,并且你会发现一些service类在 ...

  10. Python和PyTorch深入实现线性回归模型:一篇文章全面掌握基础机器学习技术

    1. 简介 1.1 线性回归模型概述 线性回归是一种统计学中的预测分析,该方法用于建立两种或两种以上变量间的关系模型.线性回归使用最佳的拟合直线(也称为回归线)在独立(输入)变量和因变量(输出)之间建 ...