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

利用java语言,怎样开发和利用各种开源库和内部/自定义框架,实现“提取-转换-加载”(ETL)流程的自动化

一、ETL 架构设计的核心要素​
在企业级数据处理场景中,ETL(Extract-Transform-Load)流程自动化是数据仓库、数据湖建设的核心环节。基于 Java 生态的技术栈,我们可以构建分层解耦的 ETL 架构,主要包含以下四层结构:​

  1. 数据源适配层(Extractor Layer)​
    负责对接多样化数据源,支持关系型数据库(MySQL/Oracle)、NoSQL(MongoDB/Cassandra)、文件系统(HDFS/S3)、消息队列(Kafka/RabbitMQ)等。通过 Java SPI 机制实现数据源插件化,允许动态扩展新数据源。​
  2. 数据转换层(Transformer Layer)​
    实现数据清洗(空值处理、格式校验)、转换(数据类型映射、维度建模)、 enrichment(外部数据关联)等逻辑。采用策略模式定义不同转换策略,支持通过配置文件或 DSL 动态编排转换规则。​
  3. 数据加载层(Loader Layer)​
    支持批量加载(Bulk Load)和增量加载(CDC,Change Data Capture),提供事务管理、重试机制和幂等性保证。针对大数据场景,集成 Hadoop MapReduce、Spark Core 等分布式计算框架。​
  4. 控制管理层(Control Layer)​
    负责流程调度(定时任务 / 事件触发)、状态监控(指标采集 / 日志追踪)、异常处理(容错恢复 / 断点续传)。通常集成工作流引擎(Apache Airflow/Netflix Conductor)或自研调度系统。​
    二、核心开源库的选型与应用​
  5. 数据提取层技术实现​
    1.1 关系型数据库提取​
    JDBC 标准接口:使用java.sql.Connection配合PreparedStatement实现通用查询,推荐封装自定义JdbcExtractor工具类,支持参数化查询和连接池管理(Apache Commons DBCP/HikariCP)​
    MyBatis 增强:通过 Mapper 接口实现复杂 SQL 映射,利用ResultMap处理多表关联结果集转换,示例配置:​


    SELECT o.*, u.username ​
    FROM orders o ​
    LEFT JOIN users u ON o.user_id = u.id ​
    WHERE o.create_time >= #{startTime}​


    1.2 非结构化数据提取​
    Apache Tika:处理文档解析(PDF/Word/Excel),支持提取文本内容及元数据:​

    TikaConfig config = TikaConfig.getDefaultConfig();​
    AutoDetectParser parser = new AutoDetectParser(config);​
    Metadata metadata = new Metadata();​
    ContentHandler handler = new BodyContentHandler(-1);​
    parser.parse(inputStream, handler, metadata);​
    String content = handler.toString();​

    JSON/XML 解析:使用 Jackson(ObjectMapper)或 XStream 实现结构化转换,支持动态 Schema 映射。​
  6. 数据转换层最佳实践​
    2.1 通用转换工具集​
    Apache Commons Lang:提供字符串处理(StringUtils)、类型转换(ConvertUtils)等基础工具​
    MapStruct:通过注解生成类型安全的对象映射代码,减少手动转换样板代码:​

    @Mapper(componentModel = “spring”)​
    public interface OrderMapper {​
    OrderMapper INSTANCE = Mappers.getMapper(OrderMapper.class);​

    @Mapping(source = “orderId”, target = “id”)​
    @Mapping(source = “user.email”, target = “userEmail”)​
    DataWarehouseOrder toDwOrder(SourceOrder order);​
    }​

    2.2 复杂转换逻辑实现​
    Spring Batch ItemProcessor:实现ItemProcessor接口处理批量数据转换,支持事务性处理和错误隔离:​

    public class DataValidationProcessor implements ItemProcessor<RawData, CleanData> {​
    @Override​
    public CleanData process(RawData item) throws Exception {​
    // 数据校验、格式转换、业务规则应用​
    if (StringUtils.isBlank(item.getEmail())) {​
    throw new ValidationException(“Email cannot be empty”);​
    }​
    return new CleanData(item.getId(), item.getEmail().toLowerCase());​
    }​
    }​

    规则引擎集成:引入 Drools 或 Aviator 表达式引擎,支持通过规则文件动态配置转换逻辑,实现业务规则与代码分离。​
  7. 数据加载层优化策略​
    3.1 批量加载技术​
    JDBC Batch Insert:使用addBatch()和executeBatch()提升写入效率,配合rewriteBatchedStatements=true参数(MySQL 优化):​

    conn.setAutoCommit(false);​
    String sql = “INSERT INTO dw_table (col1, col2) VALUES (?, ?)”;​
    try (PreparedStatement pstmt = conn.prepareStatement(sql)) {​
    for (DataRow row : dataBatch) {​
    pstmt.setObject(1, row.getCol1());​
    pstmt.setObject(2, row.getCol2());​
    pstmt.addBatch();​
    }​
    pstmt.executeBatch();​
    conn.commit();​
    }​

    大数据平台对接:通过 Hadoop API 实现 HDFS 文件写入,或使用 Spark DataFrame 的write.mode(“append”).saveAsTable()实现数据湖加载。​
    3.2 增量加载实现​
    基于时间戳:记录上次加载时间,通过WHERE update_time > ?过滤增量数据​
    数据库日志解析:使用 Debezium 监控数据库 CDC 日志,支持 MySQL Binlog、PostgreSQL WAL 解析,实现准实时数据捕获。​
    三、自定义框架设计关键技术​
  8. 元数据管理模块​
    设计MetadataRepository接口,支持存储数据源连接信息、转换规则、ETL 任务配置等元数据,通常基于 Spring Data JPA 实现数据库持久化:​

    @Entity​
    public class EtlJob {​
    @Id​
    @GeneratedValue(strategy = GenerationType.IDENTITY)​
    private Long id;​
    private String jobName;​
    private String extractorClass;​
    private String transformerClass;​
    private String loaderClass;​
    // 任务调度配置、监控指标等字段​
    }​
  9. 流程编排引擎​
    实现轻量级工作流引擎,支持定义 ETL 任务的依赖关系和执行顺序,核心组件包括:​
    JobExecutor:负责任务实例化和线程管理​
    StepProcessor:处理单个 ETL 步骤的执行上下文(输入输出数据、错误处理策略)​
    Listener机制:提供BeforeStepListener、AfterStepListener用于日志记录和指标上报​
  10. 监控与报警体系​
    Metrics 采集:集成 Micrometer 监控框架,记录吞吐量(TPS)、延迟(Latency)、错误率等指标​
    异常处理:实现RetryTemplate重试机制,配合CircuitBreaker熔断策略防止数据源过载​
    报警通知:通过 Email/Slack/Webhook 发送任务失败通知,支持自定义报警阈值和通知模板​
    四、自动化实现的最佳实践​
  11. 配置化驱动开发​
    通过 YAML/JSON 配置文件定义 ETL 流程,减少硬编码,示例配置:​

    etl-job:​
    name: order_etl​
    extractor:​
    type: jdbc​
    datasource: mysql_order_db​
    query: "SELECT * FROM orders WHERE create_time >= ?"​
    params: [“2023-01-01 00:00:00”]​
    transformer:​
    • type: data-cleaner​
      rules: [“email=toLowerCase”, “status=map(1=VALID, 2=EXPIRED)”]​
    • type: dimension-lookup​
      table: dim_users​
      key: user_id​
      loader:​
      type: hdfs​
      path: /datawarehouse/orders​
      format: parquet​
      partition-by: [“year”, “month”]​
  12. 测试驱动开发(TDD)​
    单元测试:使用 Mockito 模拟数据源,测试转换逻辑的正确性​
    集成测试:通过 Testcontainers 启动真实数据库实例,验证完整 ETL 流程​
    性能测试:使用 JMeter 压测批量加载性能,优化批处理大小(Batch Size)和线程池配置​
  13. 持续集成与部署​
    CI 流水线:通过 Jenkins/GitHub Actions 自动构建、测试、打包 ETL 作业​
    容器化部署:使用 Docker 封装 ETL 应用,支持 Kubernetes 集群调度,实现弹性扩展​
    五、典型应用场景​
  14. 传统数据仓库 ETL​
    场景:从多个业务系统(ERP/CRM)抽取数据,清洗转换后加载到 Oracle Data Warehouse​
    技术栈:Spring Batch + MyBatis + Apache Commons DBCP​
    关键优化:采用分区并行处理(Parallel Chunk Processing)提升大表处理效率​
  15. 数据湖实时入湖​
    场景:将 Kafka 中的用户行为日志实时清洗,转换为 Parquet 格式存入 AWS S3​
    技术栈:Apache Flink + Jackson + Hadoop S3 Client​
    关键技术:使用 Flink 的 Event Time 和 Watermark 处理乱序事件,保证数据一致性​
  16. 主数据管理(MDM)​
    场景:整合多源异构主数据(客户 / 产品数据),清洗后加载到 MDM 系统​
    技术栈:Apache Camel + Drools + Spring Data JPA​
    关键技术:通过 Camel 路由定义数据流转,利用 Drools 实现复杂业务规则校验​
    六、未来发展方向​
  17. 云原生 ETL​
    基于 Spring Cloud Stream 实现事件驱动架构,支持 Kafka、AWS Kinesis 等云消息服务​
    利用 FaaS(Function as a Service)架构拆分 ETL 步骤,通过 AWS Lambda / 阿里云函数计算实现 Serverless 化​
  18. 低代码开发平台​
    开发可视化 ETL 配置界面,支持通过拖拽方式编排数据源、转换规则、加载目标​
    实现元数据自动发现(通过 JDBC Metadata API 扫描数据库表结构)​
  19. 智能 ETL 优化​
    引入机器学习预测数据流量,动态调整批处理大小和并发线程数​
    利用自然语言处理解析业务需求,自动生成 ETL 配置文件​
    通过合理组合 Java 生态的开源工具(Spring Batch、Apache Camel、Flink)与自定义框架(元数据管理、流程引擎),企业能够构建高效可靠的 ETL 自动化平台。关键在于实现三个分离:数据源与业务逻辑分离、转换规则与代码实现分离、控制流与数据流分离,最终达成 “一次配置,多次运行” 的自动化目标。在实践中需根据数据规模(GB 到 PB 级)、实时性要求(批处理到流处理)、技术栈现状选择合适的技术组合,同时注重可观测性建设和异常处理机制,确保 ETL 流程的健壮性和可维护性

相关文章:

利用java语言,怎样开发和利用各种开源库和内部/自定义框架,实现“提取-转换-加载”(ETL)流程的自动化

一、ETL 架构设计的核心要素​ 在企业级数据处理场景中&#xff0c;ETL&#xff08;Extract-Transform-Load&#xff09;流程自动化是数据仓库、数据湖建设的核心环节。基于 Java 生态的技术栈&#xff0c;我们可以构建分层解耦的 ETL 架构&#xff0c;主要包含以下四层结构&am…...

人工智能在PET-CT中的应用方向探析

人工智能(AI)在正电子发射断层扫描-计算机断层扫描(PET-CT)中的应用正逐步改变医学影像诊断的格局,其核心价值体现在提升诊断效率、优化成像质量、促进精准医疗等方面。近年来,随着深度学习、计算机视觉以及多模态数据融合技术的迅猛发展,AI技术在PET-CT全流程中的渗透愈…...

pod 创建私有库指南

步骤 参考&#xff1a;iOS Pod 私有库创建指南-百度开发者中心 下面主要是对参考链接里面的解释&#xff1a; 创建两个仓库&#xff1a; 一个叫podframe.git&#xff0c;用来存放自定义的framework&#xff0c;比如TestPodFrame.framework一个叫podspec.git&#xff0c;用来…...

操作系统之shell实现(下)

&#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习C语言的相关知识。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更…...

【设计模式】深入解析代理模式(委托模式):代理模式思想、静态模式和动态模式定义与区别、静态代理模式代码实现

代理模式 代理模式&#xff0c;也叫委托模式。 Spring AOP 是基于动态代理来实现 AOP 的 定义 为其他对象提供一种代理 以控制对这个对象的访问。它的作用就是通过提供一个代理类&#xff0c;让我们在调用目标方法的时候&#xff0c;不再是直接对目标方法进行调用&#xff0c;而…...

Element Plus表格组件深度解析:构建高性能企业级数据视图

一、架构设计与核心能力 Element Plus的表格组件&#xff08;el-table&#xff09;基于Vue 3的响应式系统构建&#xff0c;通过声明式配置实现复杂数据渲染。其核心设计理念体现在三个层级&#xff1a; 数据驱动&#xff1a;通过data属性绑定数据源&#xff0c;支持动态更新与…...

Mongodb分布式文件存储数据库

文章目录 一、MongoDB 简介基本信息特点内部组件 二、MongoDB 部署1. 安装依赖2. 解压部署并配置环境变量3. 修改配置文件以及启动服务4.数据库权限管理 三、MongoDB 管理1. 角色权限2. 操作命令用户管理命令常用命令&#xff08;Mongo4.2.8&#xff09;数据库相关用户相关集合…...

UML 通信图对象协作:共享汽车系统交互脉络

目录 一、通信图的定义与特点 二、通信图的构成要素 三、通信图的优势 四、通信图的实践应用 五、以共享汽车系统通信图为例 &#xff08;一&#xff09;参与者及交互起点 &#xff08;二&#xff09;预订环节交互 &#xff08;三&#xff09;支付流程交互 &#xff0…...

安宝特分享|AR智能装备赋能企业效率跃升

AR装备开启智能培训新时代 在智能制造与数字化转型浪潮下&#xff0c;传统培训体系正面临深度重构。安宝特基于工业级AR智能终端打造的培训系统&#xff0c;可助力企业构建智慧培训新生态。 AR技术在不同领域的助力 01远程指导方面 相较于传统视频教学的单向输出模式&#x…...

中间系统-基础

OSI七层模型&#xff0c;TCP/IP四层模型。 在OSI模型中我们将具有报文转发的网络节点叫做IS&#xff0c;即中间系统的意思&#xff0c;类似于TCP/IP模型中的路由器。 在OSI模型中我们将没有路由能力或者转发能力的设备叫做ES&#xff0c;即端系统的意思&#xff0c;类似于TCP/I…...

【Linux】用户权限

shell命令 1. Linux本质上是一个操作系统&#xff0c;但是一般的用户不能直接使用它&#xff0c;而是需要通过外壳程序shell&#xff0c;来与Linux内核进行沟通。 2. shell的简单定义&#xff1a;命令行解释器。主要包含以下作用&#xff1a; 将使用者的命令翻译给核心处理。将…...

晶振详解:原理、作用、种类、应用与选型要点

一、晶振的基本定义 晶振&#xff08;Crystal Oscillator&#xff09; 是利用石英晶体的压电效应产生稳定频率的电子元件&#xff0c;其核心功能是为数字系统提供高精度时钟信号。 核心公式&#xff1a; 串联谐振频率&#xff08;fs&#xff09; 1 / (2π√(L1C1)) &#xff…...

【数字图像处理】立体视觉基础(2)

相机标定 【1】相机标定的概念 相机参数&#xff1a;相机成像的几何模型的参数 相机标定&#xff1a;求解参数的过程 【2】相机标定的作用 &#xff08;1&#xff09;求出相机的内、外参数&#xff0c;以及畸变参数 &#xff08;2&#xff09;校正镜头畸变影响&#xff0c;…...

智能座舱测试内容与步骤

智能座舱的测试步骤通常包括以下环节&#xff1a; 1.测试环境搭建与准备 • 硬件需求分析&#xff1a;准备测试车辆、服务器与工作站、网络设备以及传感器和执行器模拟器等硬件设备。 • 软件需求分析&#xff1a;选择测试管理软件、自动化测试工具、模拟软件和开发调试工具等。…...

每日算法-250422

每日算法 - 250422 1561. 你可以获得的最大硬币数目 题目 思路 贪心 解题过程 根据题意&#xff0c;我们想要获得最大的硬币数目。每次选择时&#xff0c;有三堆硬币&#xff1a;最大的一堆会被 Alice 拿走&#xff0c;最小的一堆会被 Bob 拿走&#xff0c;剩下的一堆&#xf…...

XSS的应用

免责声明&#xff0c;本博客只是用来自身学习记录&#xff0c;不要运用里面的代码去进行违法犯罪行为。 XSS 首先需要知道的是xss误区&#xff0c;就是在不确定是否有XSS的情况下&#xff0c;不应该是直接上攻击payload&#xff0c;例如<script>alert(123)</script&…...

FastAPI WebSocket 聊天应用详细教程

项目简介 这是一个基于 FastAPI 和 WebSocket 实现的实时聊天应用&#xff0c;支持一对一聊天、离线消息存储等功能。 技术栈 后端&#xff1a;FastAPI (Python)前端&#xff1a;HTML、JavaScript、CSS通信&#xff1a;WebSocket认证&#xff1a;简单的 token 认证 项目结构…...

【C语言】动态内存的常见错误

前言&#xff1a; 在上章节中讲解了动态内存的概念和管理的核心函数。 在本章节继续为大家介绍动态内存的常见错误&#xff0c;让大家更好的理解运用。 补充&#xff1a;使用内存函数需要头文件<stdlib.h> 对NULL指针的解引用操作 当使用malloc、calloc或realloc等函…...

Missashe考研日记-day24

Missashe考研日记-day24 1 专业课408 学习时间&#xff1a;2h30min学习内容&#xff1a; 今天把剩下的两个经典同步问题和管程部分的课看了&#xff0c;然后做课后习题。这部分的重点在PV大题&#xff0c;很多很经典&#xff0c;不过第一轮不打算做大题&#xff0c;把选择题做…...

精益数据分析(13/126):洞察数据关系,灵活调整创业方向

精益数据分析&#xff08;13/126&#xff09;&#xff1a;洞察数据关系&#xff0c;灵活调整创业方向 大家好&#xff01;在创业和数据分析的探索之路上&#xff0c;每一次的学习都是成长的宝贵机会。今天&#xff0c;咱们接着深入学习《精益数据分析》&#xff0c;一起探索相…...

常用python爬虫框架介绍

文章目录 前言1. Scrapy2. BeautifulSoup 与 Requests 组合3. Selenium4. PySpider 前言 Python 有许多优秀的爬虫框架&#xff0c;每个框架都有其独特的特点和适用场景。以下为你详细介绍几个常用的 Python 爬虫框架&#xff1a; Python 3.13.2 安装教程&#xff08;附安装包…...

HarmonyOS:网络HTTP数据请求

导读 场景介绍接口说明request接口开发步骤requestInStream接口开发步骤证书锁定预置应用级证书预置证书公钥哈希值JSON配置文件示例 场景介绍 通过HTTP发起一个数据请求&#xff0c;支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法 接口说明 HTTP数据…...

CoinNexus Chain 推出泰利风暴,开启 Web3.0 智能金融元宇宙科技新时代

4月25日&#xff0c;CoinNexusChain 区块链正式推出开创性的“泰利风暴”&#xff08;Terry Storm&#xff09;&#xff0c;再次展现了其前瞻性的视野和非凡的潜力。这标志着 CoinNexusChain 在 Web3.0 创新浪潮中迈出了重要一步。    Terry是一种创新的 RWA 金融激励机制&…...

编译opencv源码使得opencv-python获得gstreamer支持

我个人习惯在miniconda中使用python版本的opencv&#xff0c;使用pip进行安装时&#xff0c;默认的包并不会有gstreamer支持&#xff0c;我尝试过自己编译opencv-python&#xff0c;编出的包有各种各样的问题。最终还是决定自己从opencv仓库源码自行编译。 安装gstreamer apt…...

眼镜眨巴眨巴-一步几个脚印从头设计数字生命2——仙盟创梦IDE

import cv2 import mediapipe as mp import numpy as np import timemp_drawing mp.solutions.drawing_utils mp_face_mesh mp.solutions.face_mesh# 加载图片 image cv2.imread(wlzc.jpg) # image_height, image_width, _ image.shape# 初始化面部网格模型 with mp_face_…...

django之数据的翻页和搜索功能

数据的翻页和搜素功能 目录 1.实现搜素功能 2.实现翻页功能 一、实现搜素功能 我们到bootstrap官网, 点击组件, 然后找到输入框组, 并点击作为额外元素的按钮。 我们需要使用上面红色框里面的组件, 就是搜素组件, 代码部分就是下面红色框框出来的部分。 把这里的代码复制…...

linux复习

1.关于进程 1.1 概念 用户角度&#xff1a;进程是程序的一次执行实例&#xff0c;也就是正在运行的程序 内核角度&#xff1a;操作系统分配内存和cpu资源的实体 操作系统使用内核数据结构 程序的代码及数据 描述进程&#xff0c;Linux中对应的内核数据结构就是task_struct…...

Post-Processing PropertySource instance详解 和 BeanFactoryPostProcessor详解

PropertySourcesBeanFactoryPostProcessor详解 1. 核心概念 BeanFactoryPostProcessor 是 Spring 框架中用于在 BeanFactory 初始化阶段 对 Environment 中的 PropertySource 进行后处理的接口。它允许开发者在 Bean 创建之前 对属性源进行动态修改&#xff0c;例如添加、删除…...

go 编译的 windows 进程(exe)以管理员权限启动(UAC)

引言 windows 系统&#xff0c;在打开某些 exe 的时候&#xff0c;会弹出“用户账户控制(UAC)”的弹窗 “你要允许来自xx发布者的此应用对你的设备进行更改吗&#xff1f;” UAC&#xff08;User Account Control&#xff0c;用户账户控制&#xff09;是 Windows 操作系统中的…...

Elasticsearch性能优化实践

一、背景与挑战 基金研报搜索场景中&#xff0c;我们面临以下核心挑战&#xff1a; ​数据规模庞大&#xff1a;单索引超500GB原始数据&#xff0c;包含300万份PDF/Word研报文档​查询性能瓶颈&#xff1a;复杂查询平均响应时间超过10秒&#xff0c;高峰期CPU负载达95%​存储…...

【Web API系列】Web Shared Storage API 深度解析:WindowSharedStorage 接口实战指南

前言 在当今 Web 应用日益复杂的背景下&#xff0c;跨页面数据共享与隐私保护已成为现代浏览器技术演进的重要命题。传统 Web 存储方案&#xff08;如 Cookies、LocalStorage&#xff09;在应对多维度用户特征存储、跨上下文数据共享等场景时&#xff0c;逐渐暴露出技术瓶颈与…...

Eureka、LoadBalance和Nacos

Eureka、LoadBalance和Nacos 一.Eureka引入1.注册中心2.CAP理论3.常见的注册中心 二.Eureka介绍1.搭建Eureka Server 注册中心2.搭建服务注册3.服务发现 三.负载均衡LoadBalance1.问题引入2.服务端负载均衡3.客户端负载均衡4.Spring Cloud LoadBalancer1).快速上手2)负载均衡策…...

智能体MCP 实现数据可视化分析

参考: 在线体验 https://www.doubao.com/chat/ 下载安装离线体验 WPS软件上的表格分析 云上创建 阿里mcp:https://developer.aliyun.com/article/1661198 (搜索加可视化) 案例 用cline 或者cherry studio实现 mcp server:excel-mcp-server、quickchart-mcp-server...

3小时速通Python-Python学习总部署、总预览(一)

目录 Python的关键字有哪些&#xff1a; ​编辑 代码&#xff1a;1-5&#xff1a; 代码&#xff1a;6-10&#xff1a; 代码&#xff1a;11-15&#xff1a; 代码&#xff1a;16-20&#xff1a; 代码&#xff1a;21-25&#xff1a; 代码&#xff1a;26-27&#xff1a; Pyt…...

机器学习基础 - 分类模型之决策树

决策树 文章目录 决策树简介决策树三要素1. 特征的选择1. ID32. C4.53. CART2. 剪枝处理0. 剪枝的作用1. 预剪枝2. 后剪枝QA1. ID3, C4.5, CART 这三种决策树的区别2. 树形结构为何不需要归一化?3. 分类决策树与回归决策树的区别4. 为何信息增益会偏向多取值特征?4. 为何信息…...

Java面向对象的三大特性

## 1. 封装&#xff08;Encapsulation&#xff09; 封装是将数据和操作数据的方法绑定在一起&#xff0c;对外部隐藏对象的具体实现细节。通过访问修饰符来实现封装。 示例代码&#xff1a; java public class Student { // 私有属性 private String name; private int age; …...

【Pandas】pandas DataFrame truediv

Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象&#xff08;如 DataFrame、Series 或标量&#xff09;的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…...

GTS-400 系列运动控制器板(六)----修改编码器计数方向

运动控制器函数库的使用 运动控制器驱动程序、 dll 文件、例程、 Demo 等相关文件请通过固高科技官网下载,网 址为: www.googoltech.com.cn/pro_view-3.html 1 Windows 系统下动态链接库的使用 在 Windows 系统下使用运动控制器,首先要安装驱动程序。在安装前需要提…...

卷积神经网络迁移学习:原理与实践指南

引言 在深度学习领域&#xff0c;卷积神经网络(CNN)已经在计算机视觉任务中取得了巨大成功。然而&#xff0c;从头开始训练一个高性能的CNN模型需要大量标注数据和计算资源。迁移学习(Transfer Learning)技术为我们提供了一种高效解决方案&#xff0c;它能够将预训练模型的知识…...

Django 入门实战:从环境搭建到构建你的第一个 Web 应用

Django 入门实战&#xff1a;从环境搭建到构建你的第一个 Web 应用 恭喜你选择 Django 作为你学习 Python Web 开发的起点&#xff01;Django 是一个强大、成熟且功能齐全的框架&#xff0c;非常适合构建中大型的 Web 应用程序。本篇将通过一个简单的例子&#xff0c;带你走完…...

【后端】构建简洁的音频转写系统:基于火山引擎ASR实现

在当今数字化时代&#xff0c;语音识别技术已经成为许多应用不可或缺的一部分。无论是会议记录、语音助手还是内容字幕&#xff0c;将语音转化为文本的能力对提升用户体验和工作效率至关重要。本文将介绍如何构建一个简洁的音频转写系统&#xff0c;专注于文件上传、云存储以及…...

http通信之axios vs fecth该如何选择?

在HTTP通信中&#xff0c;axios和fetch都是常用的库或原生API用于发起网络请求。两者各有特点&#xff0c;适用于不同的场景。下面详细介绍它们的差异和各自的优势&#xff1a; fetch 特点&#xff1a; 原生支持&#xff1a;fetch是现代浏览器内置的API&#xff0c;不需要额外…...

iostat指令介绍

文章目录 1. 功能介绍2. 语法介绍3. 应用场景4. 示例分析 1. 功能介绍 iostat (input/output statistics)&#xff0c;是 Linux/Unix 系统中用于监控 CPU 使用率和 磁盘 I/O 性能的核心工具&#xff0c;可实时展示设备负载、吞吐量、队列状态等关键指标。 可以使用 man iostat查…...

NLP高频面试题(五十)——大模型(LLMs)分词(Tokenizer)详解

在自然语言处理(NLP)任务中,将文本转换为模型可处理的数字序列是必不可少的一步。这一步通常称为分词(tokenization),即把原始文本拆分成一个个词元(token)。对于**大型语言模型(LLM,Large Language Model,大型语言模型)**而言,选择合适的分词方案至关重要:分词的…...

桌面我的电脑图标不见了怎么恢复 恢复方法指南

在Windows操作系统中&#xff0c;“我的电脑”或在较新版本中称为“此电脑”的图标&#xff0c;是访问硬盘驱动器、外部存储设备和系统文件的重要入口。然而&#xff0c;有些用户可能会发现桌面上缺少了这个图标&#xff0c;这可能是由于误操作、系统设置更改或是不小心删除造成…...

【Qt】控件的理解 和 基础控件 QWidget 属性详解(通俗易懂+附源码+思维导图框架)

每日激励&#xff1a;“不设限和自我肯定的心态&#xff1a;I can do all things。 — Stephen Curry” 绪论​&#xff1a; 通过上一章对信号槽的理解相信你对Qt的认识肯定有了很大的进步&#xff0c;下面将通过本篇文章带你深入的认识Widget控件&#xff08;主窗口&#xff0…...

oracle将表字段逗号分隔的值进行拆分,并替换值

需求背景&#xff1a;需要源数据变动&#xff0c;需要对历史表已存的字段值根据源数据进行更新。如果是单字段存值&#xff0c;直接根据映射表关联修改即可。但字段里面若存的值是以逗号分割&#xff0c;比如旧值&#xff1a;‘old1,old2,old3’&#xff0c;要根据映射关系调整…...

用c语言实现——一个带头节点的链队列,支持用户输入交互界面、初始化、入队、出队、查找、判空判满、显示队列、遍历计算长度等功能

一、知识介绍 带头节点的链队列是一种基于链表实现的队列结构&#xff0c;它在链表的头部添加了一个特殊的节点&#xff0c;称为头节点。头节点不存储实际的数据元素&#xff0c;主要作用是作为链表的起点&#xff0c;简化队列的操作和边界条件处理。 1.节点结构 链队列的每…...

webpack基础使用了解(入口、出口、插件、加载器、优化、别名、打包模式、环境变量、代码分割等)

目录 1、webpack简介2、简单示例3、入口(entry)和输出(output)4、自动生成html文件5、打包css代码6、优化&#xff08;单独提取css代码&#xff09;7、优化&#xff08;压缩过程&#xff09;8、打包less代码9、打包图片10、搭建开发环境&#xff08;webpack-dev-server&#xf…...

【项目】基于MCP+Tabelstore架构实现知识库答疑系统

基于MCPTabelstore架构实现知识库答疑系统 整体流程设计&#xff08;一&#xff09;Agent 架构&#xff08;二&#xff09;知识库存储&#xff08;1&#xff09;向量数据库Tablestore&#xff08;2&#xff09;MCP Server &#xff08;三&#xff09;知识库构建&#xff08;1&a…...