ETL 数据抽取
ETL
ETL 数据抽取
ETL(Extract, Transform, Load)是数据集成和处理的重要过程,其中数据抽取(Extract)是第一步,负责从各种数据源中提取数据。以下是ETL数据抽取的详细说明和常用工具:
1. 数据抽取的方法
1.1 从数据库中提取数据
- 使用 SQL 查询:对于像 MySQL、Oracle 和 SQL Server 这类数据库,ETL 工具通常会利用 SQL(结构化查询语言)来提取数据。例如,通过编写简单的 SELECT 语句,可以从一个或多个表中获取所需的数据。
- 数据库连接驱动:ETL 工具通过特定的数据库连接驱动来与数据库进行通信。这些驱动是软件组件,能够理解数据库的协议并将 ETL 工具的请求转换为数据库能够理解的操作。例如,Java - based 的 ETL 工具可能会使用 JDBC(Java Database Connectivity)驱动来连接数据库。当配置 ETL 工具时,需要指定数据库的连接信息,如主机名、端口号、数据库名称、用户名和密码等。驱动会根据这些信息建立与数据库的连接,然后执行提取数据的操作。
1.2 从 API 中提取数据
- HTTP 请求:当把 API 作为数据源时,ETL 工具会通过发送 HTTP(超文本传输协议)请求来获取数据。对于 RESTful API,ETL 工具发送 GET 请求来检索数据。例如,要从一个提供天气数据的 API 获取某个城市的天气信息,ETL 工具可能会发送如下的 GET 请求,这个请求的 URL 指向了 API 的端点,其中包含了查询参数(如城市名称和数据类型)。ETL 工具会根据 API 的文档构建正确的请求 URL,然后发送请求。API 会返回数据,通常是 JSON 或 XML 格式,ETL 工具再对返回的数据进行解析。
- 认证和授权:在与 API 交互时,可能需要进行认证和授权。常见的认证方式包括 API 密钥、OAuth 等。ETL 工具需要在请求中包含这些认证信息,以确保能够成功获取数据。
1.3 从文件系统中提取数据
- 文件读取:ETL 工具可以读取各种格式的文件,如 CSV、TXT、XML 等。这些文件可以存储在本地文件系统或网络共享位置。ETL 工具通过文件路径和读取操作来提取数据。
- 文件监听:对于需要实时处理的文件,ETL 工具可以设置文件监听器,当文件发生变化时,自动触发数据抽取操作。
2. 数据抽取的模式
2.1 全量抽取
- 全量加载(Full Load):将所有经过处理的数据一次性加载到目标存储中,适用于初始加载或数据量较小的情况。
2.2 增量抽取
- 增量加载(Incremental Load):只加载抽取和转换后发生变化的数据,以保证数据的实时性和效率。
- 数据变更检测:增量抽取需要检测数据的变化,常用的方法包括:
- 时间戳:记录每次数据抽取的时间戳,只抽取时间戳之后发生变化的数据。
- 变更日志:利用数据库的变更日志(如 MySQL 的 binlog、PostgreSQL 的 WAL)来检测数据变化。
- 触发器:在数据库表上设置触发器,记录数据变化的信息,ETL 工具根据这些信息进行增量抽取。
3. 常用的 ETL 工具
3.1 Kettle
- 简介:Kettle 是一款免费的开源 ETL 工具,使用广泛,功能强大。它通过图形化界面(Spoon)设计 ETL 转换过程,支持批量运行(Pan)和任务调度(Kitchen)。
- 优点:
- 纯 Java 编写,跨平台运行。
- 数据抽取高效稳定。
- 支持丰富的数据源和转换功能。
- 使用场景:适用于各种数据抽取、转换和加载任务,特别是需要复杂数据处理和转换的场景。
3.2 DataX
- 简介:DataX 是一款开源的数据同步工具,由阿里巴巴开源。它支持多种数据源,包括关系型数据库、NoSQL 数据库、文件系统等。
- 优点:
- 高效的数据同步能力。
- 支持多种数据源和数据格式。
- 简单易用,配置灵活。
- 使用场景:适用于大规模数据同步和数据迁移任务,特别是需要高效数据传输的场景。
3.3 Apache Nifi
- 简介:Apache Nifi 是一款开源的实时数据流处理工具,适合处理实时数据流。
- 优点:
- 实时数据处理能力强大。
- 支持多种数据源和数据格式。
- 提供丰富的数据处理组件。
- 使用场景:适用于需要实时数据处理和流式数据处理的场景,如物联网数据处理、实时监控等。
3.4 Talend Open Studio
- 简介:Talend Open Studio 是一款功能强大的开源 ETL 工具,支持各种数据源,适合批量和实时 ETL。
- 优点:
- 功能丰富,支持多种数据源和数据格式。
- 提供图形化界面,易于使用。
- 支持复杂的数据转换和处理。
- 使用场景:适用于企业级数据集成和处理任务,特别是需要处理多种数据源和复杂数据转换的场景。
总结
ETL 数据抽取是数据集成和处理过程中的关键步骤,负责从各种数据源中提取数据。通过选择合适的 ETL 工具和数据抽取方法,可以确保数据抽取的高效性、准确性和可靠性。在实际应用中,需要根据企业的业务需求和数据特点选择合适的 ETL 工具,并合理配置和优化其抽取功能。
从 Oracle 数据库中抽取数据
从 Oracle 数据库中抽取数据有多种方法,以下是常见的几种方法及其具体操作步骤:
1. 使用 SQL 语句
这是最直接的方法,适用于简单的数据抽取需求。通过编写 SQL 查询语句,可以直接从 Oracle 数据库中查询并导出数据。例如,使用 SELECT
语句按照条件查询表中的数据。
2. 使用 Oracle 导出工具
对于数据量较大的情况,可以使用 Oracle 提供的导出工具,如 EXP 和 EXPDP,将数据导出到文件中进行传输或备份。
3. 使用 Oracle 数据集成工具
Oracle 提供了多种数据集成工具,如 Oracle GoldenGate 和 Oracle Data Integrator(ODI),可以实现更复杂的数据操作,包括实时数据抽取、数据转换和数据加载等。
3.1 Oracle GoldenGate
Oracle GoldenGate 是一种实时数据复制和数据集成技术,可以将数据实时从 Oracle 数据库中抽取到目的地,包括数据仓库、Hadoop、NoSQL 等大数据平台。它能够实时捕获数据库变更,并将这些变更应用到目标解决方案中。具体步骤如下:
- 创建 GoldenGate 抽取进程:
ADD EXTRACT et_myora, SOURCEISTABLE;
- 定义抽取规则:
ADD EXTRACT EXT1, INTEGRATED TRANLOG, BEGIN “2019-10-16 00:00:00”;
- 开始抽取:
START EXTRACT EXT1;
3.2 Oracle Data Integrator(ODI)
ODI 是一种强大的 ETL 工具,可以将数据从多个数据源(包括 Oracle 数据库)中抽取到数据仓库中,并进行数据变换和数据加载。具体步骤如下:
- 创建 ODI 项目:
CREATE PROJECT myODI;
- 创建 ODI 模型:
CREATE MODEL myModel (CONNECT: Oracle Source);
- 创建源表和目标表:
CREATE TABLE Source (…); CREATE TABLE Destination (…);
- 创建 ODI 接口:
CREATE INTERFACE myInterface (CONNECT: Oracle Source, Oracle Target);
- 定义 ODI 接口变换规则:
DEFINE TRANSFORMATION myTransform ( … );
- 开始 ODI 接口:
START INTERFACE myInterface;
4. 增量式抽取
当数据量较大时,一次性抽取全部数据较为耗时。通过增量式抽取,可以只抽取目标范围内发生过改变的数据,以最小化抽取的数据量,提高数据操作效率。SQL 语句实现增量式抽取的形式如下:
SELECT * FROM TABLE_NAME WHERE last_update_time > TO_DATE('2024-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS');
5. 使用触发器和同步进程
可以通过创建 DML 和 DDL 触发器,将操作转换成对应的 SQL 语句,并通过 DBMS_CAPTURE_ADM 和 DBMS_APPLY_ADM 包进行数据同步。具体步骤如下:
- 创建用户和表空间:
CREATE USER EXTRACT IDENTIFIED BY PASSWD; CREATE TABLESPACE TBS_EXTRACT; GRANT CONNECT, RESOURCE, DBA TO EXTRACT; GRANT UNLIMITED TABLESPACE TO EXTRACT;
- 创建 DML 和 DDL 触发器:
CREATE OR REPLACE TRIGGER DML_EXTRACT AFTER INSERT OR UPDATE OR DELETE ON T1 DECLAREV_STATEMENT VARCHAR2(4000); BEGINIF INSERTING THENV_STATEMENT := 'INSERT INTO T1 VALUES (:OLD.C1, :OLD.C2, :OLD.C3)';ELSIF UPDATING THENV_STATEMENT := 'UPDATE T1 SET C2 = :NEW.C2 WHERE C1 = :OLD.C1';ELSIF DELETING THENV_STATEMENT := 'DELETE FROM T1 WHERE C1 = :OLD.C1';END IF;DBMS_CAPTURE_ADM.PROPAGATE(V_STATEMENT); END; / CREATE OR REPLACE TRIGGER DDL_EXTRACT AFTER CREATE OR ALTER OR DROP ON DATABASE DECLAREV_STATEMENT VARCHAR2(4000); BEGINIF DICTIONARY_OBJ_TYPE = 'TABLE' THENV_STATEMENT := 'CREATE TABLE T1 (C1 NUMBER, C2 VARCHAR2(10), C3 DATE)';DBMS_CAPTURE_ADM.PROPAGATE(V_STATEMENT);ELSIF DICTIONARY_OBJ_TYPE = 'INDEX' THENV_STATEMENT := 'CREATE INDEX IDX_T1 ON T1 (C1)';DBMS_CAPTURE_ADM.PROPAGATE(V_STATEMENT);END IF; END; /
- 创建同步进程:
BEGINDBMS_CAPTURE_ADM.CREATE_CAPTURE(CAPTURE_NAME => 'CAPTURE_EXTRACT',QUEUE_NAME => 'QUEUE_EXTRACT',RULE_SET_NAME => 'RULE_SET_EXTRACT',STATUS => 'ENABLED');DBMS_APPLY_ADM.CREATE_APPLY(APPLY_NAME => 'APPLY_EXTRACT',QUEUE_NAME => 'QUEUE_EXTRACT',STATUS => 'ENABLED',APPLY_USER => 'APPLY',TABLE_CONFLICT_ACTION => 'REPLACE'); END; / BEGINDBMS_CAPTURE_ADM.ADD_TABLE_RULE(CAPTURE_NAME => 'CAPTURE_EXTRACT',SCHEMA_NAME => 'TEST',TABLE_NAME => 'T1',OPERATION_MASK => DBMS_CAPTURE_PASSTHRU_INSERT + DBMS_CAPTURE_PASSTHRU_UPDATE + DBMS_CAPTURE_PASSTHRU_DELETE); END; /
- 测试数据同步:
INSERT INTO T1 VALUES (1, 'A', SYSDATE); UPDATE T1 SET C2 = 'B' WHERE C1 = 1; DELETE FROM T1 WHERE C1 = 1;
6. 使用 LogMiner 实现增量数据抽取
LogMiner 是 Oracle 提供的一种工具,可以用于捕获数据库的变更日志,从而实现增量数据抽取。具体步骤如下:
- 配置 LogMiner:
- 在源数据库中启用 LogMiner 功能。
- 设置 LogMiner 参数,如日志文件的存储路径和保留时间。
- 设计 ODI 抽取流程:
- 在 ODI Studio 中创建新的数据集成项目。
- 定义数据源和目标系统,配置数据库连接信息。
- 选择 “Oracle 9i/10g/11g Consistent (LOGMINER)” 知识模块。
- 实现增量抽取:
- 设置增量抽取的起始时间点,ODI 将从此时间点开始读取数据库的变更记录。
- 配置数据映射和转换规则,确保源数据正确映射到目标数据结构。
- 执行数据集成任务,ODI 将自动读取 LogMiner 生成的变更记录,并抽取相应的增量数据。
- 验证数据一致性:
- 确保抽取的数据与源数据库中的数据一致。
7. 提取 XML 子节点值
如果需要从 Oracle 数据库中的 XML 数据中提取子节点值,可以使用 XMLType
和 extractValue
函数,或使用 XMLTable
函数。例如:
- 使用
XMLType
和extractValue
函数:SELECT extractValue(xml_column, '//nodeName') AS nodeValue FROM xml_table;
- 使用
XMLTable
函数:SELECT * FROM xml_table, XMLTable('//nodeName' PASSING xml_column COLUMNS nodeValue VARCHAR2(100) PATH '.') x;
总结
从 Oracle 数据库中抽取数据的方法多种多样,具体选择哪种方法取决于数据抽取的需求、数据量大小以及是否需要实时性等。对于简单的数据抽取任务,可以使用 SQL 语句或导出工具;对于复杂的数据抽取任务,可以使用 Oracle GoldenGate 或 ODI 等数据集成工具。同时,增量式抽取和 LogMiner 技术可以有效提高数据抽取的效率和实时性。
相关文章:
ETL 数据抽取
ETL ETL 数据抽取 ETL(Extract, Transform, Load)是数据集成和处理的重要过程,其中数据抽取(Extract)是第一步,负责从各种数据源中提取数据。以下是ETL数据抽取的详细说明和常用工具: 1. 数据…...
FANUC机器人系统镜像备份与恢复的具体步骤(图文)
FANUC机器人系统镜像备份与恢复的具体步骤(图文) 镜像备份: 如下图所示,进入文件—工具—切换设备,找到插入的U盘UT1, 如下图所示,进入U盘目录后,创建目录,这里目录名称为11, 如下图所示...
MindsDB - 构建企业数据源 AI 对话
一、关于 MindsDB MindsDB是世界上最有效的解决方案,用于构建与混乱的企业数据源对话的AI应用程序。把它想象成图书管理员Marie Kondo。 github : https://github.com/mindsdb/mindsdb官网:https://www.mindsdb.com/官方文档:https://docs.…...
正则表达式(python版最全面,最易懂)
正则表达式 正则表达式英文称regular expression 定义:正则表达式是一种文本模式匹配的工具,用于字符串的搜索,匹配和替换。在excel,word以及其他的文本编辑器都可直接适配。 一、基本匹配规则 字面值字符:例如字母、数字、空格…...
QT 使用QTableView读取数据库数据,表格分页,跳转,导出,过滤功能
文章目录 效果图概述功能点代码分析导航栏表格更新视图表格导出表格过滤 总结 效果图 概述 本案例用于对数据库中的数据进行显示等其他操作。数据库的映射,插入等功能看此博客框架:数据模型使用QSqlTableModel,视图使用QTableView࿰…...
golang标准库path/filepath使用示例
文章目录 前言一、常用方法示例1.将相对路径转换为绝对路径2.获取路径中最后一个元素3.获取路径中除去最后一个元素的部分4.路径拼接5.将路径拆分为目录和文件名两部分6.返回一个相对路径7.文件路径遍历8.根据文件扩展名过滤文件9.使用正则表达式进行路径匹配 前言 path/filep…...
【日志篇】(7.6) ❀ 01. 在macOS下刷新FortiAnalyzer固件 ❀ FortiAnalyzer 日志分析
【简介】FortiAnalyzer 是 Fortinet Security Fabric 安全架构的基础,提供集中日志记录和分析,以及端到端可见性。因此,分析师可以更有效地管理安全状态,将安全流程自动化,并快速响应威胁。具有分析和自动化功能的集成…...
12 分布式事务
分布式事务产生的原因 我们拿mysql数据库来说,当数据库为单体数据库的时候,我们打开事务,执行sql为预执行阶段,最后commit时通过日志控制最终全部提交后存储到磁盘中,如果commit失败,可以通过日志控制回滚…...
移远通信多模卫星通信模组BG95-S5获得Skylo网络认证,进一步拓展全球卫星物联网市场
近日,全球领先的物联网整体解决方案供应商移远通信正式宣布,其支持“卫星蜂窝”多模式的高集成度NTN卫星通信模组BG95-S5已成功获得NTN网络运营商Skylo的网络认证。BG95-S5也成为了获得该认证的最新款移远卫星通信模组。 BG95-S5模组顺利获得Skylo认证&a…...
51.WPF应用加图标指南 C#例子 WPF例子
完整步骤: 先使用文心一言生成一个图标如左边使用Windows图片编辑器编辑,去除背景使用正方形,放大图片使图标铺满图片使用格式工程转换为ico格式,分辨率为最大 在资源管理器中右键项目添加ico类型图片到项目里图片属性设置为始终…...
OpenEuler学习笔记(三):为什么要搞OpenEuler?
为什么要搞OpenEuler? 技术自主可控需求 在信息技术领域,操作系统是关键的基础软件。过去,很多关键技术被国外厂商掌控,存在技术“卡脖子”的风险。OpenEuler的出现可以为国内提供一个自主可控的操作系统选择。例如,在…...
Apache Hive--排序函数解析
在大数据处理与分析中,Apache Hive是一个至关重要的数据仓库工具。其丰富的函数库为数据处理提供了诸多便利,排序函数便是其中一类非常实用的工具。通过排序函数,我们能够在查询结果集中为每一行数据分配一个排名值,这对于数据分析…...
LLMs之Dataset:中文互联网基础语料2.0的简介、下载和使用方法、案例应用之详细攻略
LLMs之Dataset:中文互联网基础语料2.0的简介、下载和使用方法、案例应用之详细攻略 目录 中文互联网基础语料2.0的简介 1、特点 中文互联网基础语料2.0的下载和使用方法 中文互联网基础语料2.0的案例应用 中文互联网基础语料2.0的简介 2025年1月发布࿰…...
深入剖析iOS网络优化策略,提升App性能
一、引言 在当今移动互联网时代,iOS 应用的网络性能直接关系到用户体验。无论是加载速度缓慢、频繁的网络错误,还是高额的流量消耗,都可能导致用户流失。因此,iOS 网络优化成为开发者提升应用质量、增强用户满意度的关键环节。本文…...
unity2022以上导出到AndroidStudio后更新步骤
1、unity里面Export出unityLibrary 2、导出apk,里面才包含libil2cpp(新版unity无法直接导出libil2cpp 3、注释AS项目app下的build.gradle里面包含unityLibrary的代码 4、注释AS项目settings.gradle包含unityLibrary的代码 5、删除AS项目里面的unityLibrary文件夹 6、…...
03JavaWeb——Ajax-Vue-Element(项目实战)
1 Ajax 1.1 Ajax介绍 1.1.1 Ajax概述 我们前端页面中的数据,如下图所示的表格中的学生信息,应该来自于后台,那么我们的后台和前端是互不影响的2个程序,那么我们前端应该如何从后台获取数据呢?因为是2个程序…...
表单中在不设置required的情况下在label前加*必填标识
参考:https://blog.csdn.net/qq_55798464/article/details/136233718 需求:在发票类型前面添加*必填标识 我最开始直接给发票类型这个表单类型添加了验证规则required:true,问题来了,这个发票类型它是有默认值的,所以我点击保存…...
Mac 使用 GVM 管理多版本 Go 环境
使用 GVM 管理多版本 Go 环境 在本文中,我们将使用 gvm(Go Version Manager)工具管理本地多个 Go 语言版本。gvm 功能类似于 Python 的 Anaconda,可以方便地切换不同版本的 Go 环境,非常适合需要多版本开发与测试的场…...
3DsMax设置中文界面
按键盘上的“Win”键,直接输入3dsmax,选择Simplified Chinese打开,之后就都是中文了...
【PyCharm】连接 Git
【PyCharm】相关链接 【PyCharm】连接 Git【PyCharm】连接Jupyter Notebook【PyCharm】快捷键使用【PyCharm】远程连接Linux服务器【PyCharm】设置为中文界面 要在 PyCharm 中连接 Git,确保您的开发环境已经安装了 Git,并且 PyCharm 能够访问它。 以下…...
使用Python和PIL裁剪图片以适应屏幕宽高比
在本教程中,我们将介绍如何使用Python和PIL(Python Imaging Library)库来裁剪图片,使其适应特定的屏幕宽高比。我们将详细解释代码的每个部分,并展示如何根据不同的裁剪模式来调整图片。 1. 安装PIL库 首先ÿ…...
Django简介与虚拟环境安装Django
目录 1.Django简介 1.1 Django 的核心特点 1.2 Django 的核心组件 1.3 Django 的应用场景 1.4 总结 2.基础环境建立 2.1 创建虚拟环境 2.1.1 使用 virtualenv 创建虚拟环境 2.1.2 使用 venv 创建虚拟环境 2.2 激活虚拟环境 2.2.1 在 Windows 上 2.2.2 在 macOS 或 …...
python实现pdf转word和excel
一、引言 在办公中,我们经常遇收到pdf文件格式,因为pdf格式文件不易修改,当我们需要编辑这些pdf文件时,经常需要开通会员或收费功能才能使用编辑功能。今天,我要和大家分享的,是如何使用python编程实现…...
Ubuntu 24.04 LTS 更改软件源
Ubuntu 24.04 LTS 修改软件源...
从CRUD到高级功能:EF Core在.NET Core中全面应用(三)
目录 IQueryable使用 原生SQL使用 实体状态跟踪 全局查询筛选器 并发控制使用 IQueryable使用 在EFCore中IQueryable是一个接口用于表示可查询的集合,它继承自IEnumerable但具有一些关键的区别,使得它在处理数据库查询时非常有用,普通集…...
浅谈云计算22 | Kubernetes容器编排引擎
Kubernetes容器编排引擎 一、Kubernetes管理对象1.1 Kubernetes组件和架构1.2 主要管理对象类型 二、Kubernetes 服务2.1 服务的作用与原理2.2 服务类型 三、Kubernetes网络管理3.1 网络模型与目标3.2 网络组件3.2.1 kube-proxy3.2.2 网络插件 3.3 网络通信流程 四、Kubernetes…...
C 语言的void*到底是什么?
一、void* 的类型任意性 void* 是一种通用指针类型。它可以指向任意类型的数据。例如,它可以指向一个整数(int)、一个浮点数(float)、一个字符(char)或者一个结构体等。在C语言中,当…...
前端【3】--CSS布局,CSS实现横向布局,盒子模型
盒子分类 1、块级盒子 2、内联级盒子 3、内联块级盒子 4、弹性盒子 5、盒子内部分区 方法一:使用 float 普通盒子实现横向布局 方法二:使用 display: inline-block 内联块级元素实现横向布局 方法三:使用弹性盒子 flexbox࿰…...
JavaEE
一.web开发概述 1.服务器 解释1:服务器是一款软件,可以向其他发送请求,服务器会做出一个响应。可以在服务器中部署文件,让其他人访问。 解释2:也可以把运行服务器软件的计算机称为服务器 2.安装服务器 Tomcat官方…...
C语言之文本加密程序设计
🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 文本加密程序设计 摘要:本文设计了一种文本加密程序,旨在提高信息安…...
Spring-Data-Redis连接模式
Redis可以在各种设置中操作。每个操作模式都需要特定的配置,这些配置将在以下部分中进行解释。 一、Redis 单机模式 最简单的入门方法是将Redis Standalone与单个Redis服务器一起使用, 配置LettuceConnectionFactory或JedisConnectionFactor࿰…...
详细介绍下linux内核的高端地址
在32位系统中,内核空间通常占据1GB,用户空间占3GB,这主要是基于历史原因、内存管理需求和系统安全性考虑。 历史原因:早期的UNIX系统就采用了将内核空间和用户空间分离的设计,在32位系统设计时,延续了这种…...
ThinkPhp项目解决静态资源请求的跨域问题的解决思路
背景:我在前端使用vue语言开发的,请求的后端是用ThinkPhp项目开发的。我vue项目里的请求php接口,自带header参数的跨域问题通过网上查询到的server端配置方法已经解决了。我使用的 是中间件的配置方法: <?php//admin 项目 配…...
通过图形界面展现基于本地知识库构建RAG应用
1. 客户需求 快速完成概念验证(PoC)通过图形界面快速完成演示本地私有数据对比不同模型和成本,决定如何部署 2. 阿里云基于本地知识库构建RAG应用 参考方案: 百炼本地知识库方案 解决方案: FastAPI Gradio Llamaindex qwen-plus 主要三大…...
GCPAAS/DashBoard:完全免费的仪表盘设计,基于Vue+ElementUI+G2Plot+Echarts,开源代码,简单易用!还在等什么呢
嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 GCPAAS/DashBoard,一款基于SpringBoot、MyBatisPlus、ElementUI、G2Plot、Echarts等技术栈的仪表盘设计器,具备仪表盘目录管理…...
深度学习笔记——循环神经网络RNN
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍面试过程中可能遇到的循环神经网络RNN知识点。 文章目录 文本特征提取的方法1. 基础方法1.1 词袋模型(Bag of Words, BOW)工作原…...
【Linux系统编程】—— 深度解析进程等待与终止:系统高效运行的关键
文章目录 进程创建再次认识fork()函数fork()函数返回值 写时拷贝fork常规⽤法以及调用失败的原因 进程终⽌进程终止对应的三种情况进程常⻅退出⽅法_exit函数exit函数return退出 进程等待进程等待的必要性进程等待的⽅法 进程创建 再次认识fork()函数 fork函数初识࿱…...
EPSANet2021笔记
来源: EPSANet: An Efficient Pyramid Squeeze Attention Block on Convolutional Neural Network 相关工作: #注意力机制 #多尺度特征表示 创新点: 贡献: 建立了长距离通道依赖关系有效获取利用不同尺度特征图的空间信息 问…...
CTTSHOW-WEB入门-信息搜集11-20
web11 1. 题目: 2. 解题步骤及思路:本题的flag已经给出,主要考点是考察域名的查询,通过查询有时候也可以得到一些有用的信息。 3. 相关知识点:查询域名可以使用nslookup命令使用方法如下:(windo…...
2025年1月19日(理论力学动静法)
动静法(Dynamic-Static Method)是理论力学中常用的一种分析方法,用来求解多自由度系统的平衡问题,尤其适用于静力学分析和动力学分析之间的转化。动静法通过引入虚拟的动力学效应,将静力学问题转化为一个动力学问题&am…...
iOS 性能优化:实战案例分享
摘要: 本文将深入探讨 iOS 性能优化的重要性,并通过一系列实际开发案例,展示如何解决常见的性能问题,包括内存管理、CPU 性能、网络性能、UI 性能和启动性能等方面的优化,帮助 iOS 开发者打造更流畅、高效的应用程序。…...
基于本地消息表实现分布式事务
假设我们有一个电商系统,包含订单服务和库存服务。当用户下单时,需要在订单服务中创建订单,同时在库存服务中扣减库存。这是一个典型的分布式事务场景,我们需要保证这两个操作要么都成功,要么都失败,以保证数据的最终一致性。 项目结构: 订单服务(Order Service)库存服务(Inv…...
select函数
系统调用 select()可用于执行 I/O 多路复用操作,调用 select()会一直阻塞,直到某一个或多个文件描述符成为就绪态(可以读或写)。其函数原型如下所示: #include <sys/select.h> int select(int nfds, fd_set *re…...
自然语言处理——自注意力机制
一、文字表示方法 在自然语言处理中,如何用数据表示文字是基础问题。独热编码(One-hot Encoding )是一种简单的方法,例如对于 “我”“你”“他”“猫”“狗” 等字,会将其编码为如 “我 [1 0 0 0 0 ……]”“你 [0 …...
C语言初阶--函数
目录 1. 函数是什么? 2. C语言中函数的分类 2.1 库函数 2.2 自定义函数 3. 函数的参数 3.1 实际参数(实参) 3.2 形式参数(形参) 4. 函数调用 4.1 传值调用 4.2 传址调用 练习:写一个函数判断一个…...
探索基于机器学习的信用评分:从数据到洞察
友友们好! 我的新专栏《Python进阶》正式启动啦!这是一个专为那些渴望提升Python技能的朋友们量身打造的专栏,无论你是已经有一定基础的开发者,还是希望深入挖掘Python潜力的爱好者,这里都将是你不可错过的宝藏。 在这个专栏中,你将会找到: ● 深入解析:每一篇文章都将…...
Ubuntu 24.04 LTS 通过 docker desktop 安装 seafile 搭建个人网盘
准备 Ubuntu 24.04 LTSUbuntu 空闲硬盘挂载Ubuntu 安装 Docker Desktop [我的Ubuntu服务器折腾集](https://blog.csdn.net/jh1513/article/details/145222679。 安装 seafile 参考资料 Docker安装 Seafile OnlyOffice 并配置OnlyOffice到Seafile,实现在线编辑…...
【Golang 面试题】每日 3 题(三十六)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…...
Linux虚拟机安装与FinalShell使用:探索Linux世界的便捷之旅
文章目录 软件准备安装 VMware 虚拟机下载CentOS 光盘镜像文件选择适合的 CentOS 版本选择合适的镜像文件 本教程工具版本 第一部分:安装 Linux 虚拟机1. 启动 VMware 并创建新虚拟机2. 默认硬件兼容性设置3. 安装操作系统的设置4. 选择操作系统类型与版本5. 为虚拟…...
leetcode19-删除链表的第n结点
leetcode 19 思路 要删除倒数第n个元素,那么就要找到倒数第n1个元素,那么我们需要两个指针来记录,首先快指针需要先走n1步,然后快慢指针一起进行移动,直到快指针为null的时候,此时慢指针恰好走到倒数第n…...