Debezium vs OGG vs Tapdata:如何实时同步 Oracle 数据到 Kafka 消息队列?

随着信息时代的蓬勃发展,企业对实时数据处理的需求逐渐成为推动业务创新和发展的重要驱动力。在这个快速变化的环境中,许多企业选择将 Oracle 数据库同步到 Kafka,以满足日益增长的实时数据处理需求。本文将深入探讨这一趋势的背后原因,并通过一个真实的客户案例来强调实时性在业务场景中的重要性。

为什么:理解 Oracle - Kafka 的实时同步需求

先来看一个典型的业务场景。实时库存管理需要迅速响应库存变化,以确保及时的补货和订单处理。通过将 Oracle 数据同步到 Kafka,可以实现实时捕获库存变更,并将这些变更事件传递给下游业务,如订单系统、报表系统等。如此一来,企业得以更加灵活、实时地管理库存,从而提高供应链效率。

为什么要同步至 Kafka?

再结合 Oracle 以及 Kafka 的自身特性,我们不难总结出 Oracle 到 Kafka 数据同步背后的实际需求,这通常涉及到满足实时数据需求、支持大规模数据处理、构建事件驱动体系结构以及提高整体系统性能等。以下是一些常见原因总结:

  • 实时数据流:作为一个分布式消息队列系统,Kafka 能够提供高吞吐量和低延迟的实时数据处理。通过将 Oracle 数据库同步到 Kafka,可以实现对数据的实时捕获和处理,使得企业能够更快地响应数据变化。

  • 高可用性:Kafka 通过分布式来实现高可用性,一个 Kafka 集群通常包含多个 Broker,每个 Broker 负责存储一部分的数据副本,这样即使某个 Broker 出现故障,其他 Broker 也可以继续工作,从而保证服务的可用性。

  • 可扩展性:Kafka 基于其分布式架构、消费者组、分区和副本机制、水平扩展能力、高并发处理能力和容错性等方式实现了可扩展性,从而能够处理大规模的消息数据,满足高吞吐量和高并发的需求。

  • 高效查询: Kafka 凭借顺序写入、索引、二分查找和内存缓存等技术,得以高效处理大规模的消息流,并保持高性能和低延迟,从而实现高效的数据读取。

  • 高并发写入: Kafka 的设计理念注重高并发的数据写入,采用了多种技术,如零拷贝技术、批量处理、消息压缩、异步处理等,提高了数据传输的效率和处理的速度,能够处理大规模的数据流。充分利用 Kafka 的高并发写入能力,有助于业务系统处理大量的写入请求,适用于需要高吞吐量的业务,比如日志记录、事件溯源等。

  • 解耦数据生产者和消费者:Kafka 的消息队列模型有助于解耦数据生产者和消费者之间的关系,可以使数据库的变更与实际数据使用者(应用程序、分析系统等)之间形成松耦合,从而提高整个系统的灵活性。

  • 支持事件驱动架构:通过将 Oracle 数据同步到 Kafka,可以构建基于事件的架构。数据库的变更可以作为事件流式传输,触发系统中其他组件的动作,从而实现更灵活、敏捷的业务流程。

  • 数据集成: Kafka 作为中间件,能够协调不同系统之间的数据流,可以轻松实现与其他数据源和目标的集成,促使系统更好地适应复杂的数据处理和交换需求。

为什么需要实时?

与此同时,数据同步的实时性在这个过程中被不断强调,还是举几个简单的例子:

  • 实时报表和监控系统: 对于需要实时监控和报表展示的业务,如运营监控、性能监控等,及时获取数据库中的数据变更是关键。通过实时同步到 Kafka,保障这些监控系统的数据时刻处于最新状态。

  • 事件驱动架构: 许多现代应用采用事件驱动架构,通过发布-订阅模型进行系统集成。在这种情况下,实时同步数据到 Kafka 是保证事件的及时传播和处理的关键。

  • 用户体验: 在需要实时交互和响应的应用中,用户期望看到最新的数据状态。例如,在在线协作或实时通讯应用中,用户需要实时看到其他用户的操作和变更。

至此,我们已经大致了解了 Oracle 到 Kafka 数据实时同步的重要性,下面再来看一些常见的同步方案。

怎么做:数据同步方案对比

手动方案:配合开源工具

实现 Oracle 到 Kafka 数据实时同步的手动方案涉及多个步骤,包括设置 Oracle 数据库、配置 Kafka 环境,以及编写同步程序。下面是一个简单的手动方案示例,主要涉及使用 Debezium 开源工具实现 Oracle 数据库到 Kafka 的实时同步。
在这里插入图片描述
步骤一:准备工作

  1. 安装 Oracle 数据库: 确保已安装并正确配置 Oracle 数据库。
  2. 安装 Kafka: 安装 Kafka 并启动 ZooKeeper 服务,作为 Kafka 的依赖。
  3. 安装并配置 Debezium: Debezium 是一个开源的变更数据捕获工具,用于监听数据库变更并将其发送到 Kafka。下载并配置 Debezium Connector for Oracle。(https://debezium.io/)

步骤二:配置 Oracle 数据库

  1. 启用归档日志: 在 Oracle 数据库中,确保归档日志已启用,这是 Debezium 监听变更的必要条件。
sqlCopy code
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/archivelog';
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='arch_%t_%s_%r.arc';
  1. 创建 CDC 用户: 创建一个专用于 Change Data Capture (CDC) 的用户,并授予必要的权限。
sqlCopy code
CREATE USER cdc_user IDENTIFIED BY cdc_password;
GRANT CONNECT, RESOURCE, CREATE VIEW TO cdc_user;
  1. 启用 CDC: 启用 Oracle 的 CDC 特性,并指定 CDC 用户。
sqlCopy code
EXEC DBMS_CDC_PUBLISH.CREATE_CHANGE_SET('MY_CHANGE_SET', 'CDC_USER');
EXEC DBMS_CDC_PUBLISH.ALTER_CHANGE_SET('MY_CHANGE_SET', 'ADD');
EXEC DBMS_CDC_PUBLISH.CREATE_CAPTURE('MY_CAPTURE', 'CDC_USER');
EXEC DBMS_CDC_PUBLISH.ALTER_CAPTURE('MY_CAPTURE', 'ADD');
EXEC DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE('MY_CHANGE_TABLE', 'CDC_USER', 'MY_CAPTURE', 'MY_CHANGE_SET');

步骤三:配置 Debezium 连接器

  1. 配置 Debezium Connector: 创建一个 JSON 配置文件,指定 Oracle 连接信息、监控的表等信息。
jsonCopy code
{"name": "oracle-connector", // 服务注册连接器时分配给连接器的名称。
"config": {"connector.class": "io.debezium.connector.oracle.OracleConnector", // Oracle连接器类的名称"database.server.name": "my-oracle-server", //为连接器捕获更改的 Oracle 数据库服务器标识并提供命名空间的逻辑名称"database.hostname": "your-oracle-host", //oracle实例地址"database.port": "your-oracle-port", //oracle数据库端口"database.user": "cdc_user", //oracle数据库用户"database.password":"cdc_password", //oracle数据库密码"database.dbname":"your-oracle-database",//要从中捕获更改的数据库的名称"database.out.server.name":"oracle-server", // kafka主题"table.include.list": "CDC_USER.MY_TABLE",//orcle中表进行数据监测输出数据"schema.history.internal.kafka.bootstrap.servers": "192.3.65.195:9092",//此连接器用于将 DDL 语句写入和恢复到数据库历史主题的 Kafka 代理列表"schema.history.internal.kafka.topic": "schema-changes.inventory" // 连接器写入和恢复 DDL 语句的数据库历史主题的名称}}
  1. 启动 Debezium Connector: 使用 Kafka Connect 启动 Debezium Connector。
bashCopy code
bin/connect-standalone.sh config/worker.properties config/debezium-connector-oracle.properties

步骤四:验证同步

  1. 插入数据: 在 Oracle 数据库中插入一些数据。
sqlCopy code
INSERT INTO CDC_USER.MY_TABLE (ID, NAME) VALUES (1, 'John Doe');
  1. 检查 Kafka 主题: 检查 Kafka 中是否有与表变更相关的消息。
bashCopy code
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-oracle-server.CDC_USER.MY_TABLE --from-beginning

此处应该能够看到与插入操作相关的 JSON 消息。

以上只是一个简单的示例,实际情况可能会更加复杂,具体的配置和操作可能取决于 Oracle 和 Debezium 版本的不同。在生产环境中,请务必遵循相关安全和最佳实践。

经典方案:配合 Oracle 官方工具 OGG

使用 Oracle GoldenGate (OGG) 实现 Oracle 到 Kafka 数据实时同步的方案同样包含多个步骤,以下是一个基本示例,以 OGG Classic Replicat 为例。请注意,具体配置仍然会因 Oracle GoldenGate 版本的不同而有所变化。
在这里插入图片描述
步骤一:准备工作

  1. 安装 Oracle GoldenGate: 安装并配置 Oracle GoldenGate 软件。
  2. 安装 Kafka: 安装 Kafka 并启动 ZooKeeper 服务,作为 Kafka 的依赖。

步骤二:配置 Oracle 数据库

  1. 启用归档日志: 确保 Oracle 数据库的归档日志已启用。
sqlCopy code
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/archivelog';
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='arch_%t_%s_%r.arc';

步骤三:配置 OGG Extract 和 Pump

  1. 创建 OGG Extract: 配置 OGG Extract 用于捕获变更数据。
bashCopy code
cd $OGG_HOME
./ggsci
GGSCI> ADD EXTRACT ext1, TRANLOG, BEGIN NOW
GGSCI> ADD EXTTRAIL /trail/et, EXTRACT ext1
GGSCI> ADD EXTRACT dpump, EXTTRAILSOURCE /trail/et
GGSCI> ADD RMTTRAIL /trail/rt, EXTRACT dpump
  1. 配置 OGG Pump: 配置 OGG Pump 用于将捕获的变更数据传输到 Kafka。
bashCopy code
GGSCI> ADD EXTRACT pump1, EXTTRAILSOURCE /trail/rt, BEGIN NOW
GGSCI> ADD RMTTRAIL /trail/pt, EXTRACT pump1
GGSCI> ADD REPLICAT rep1, EXTTRAIL /trail/pt, SPECIALRUN

步骤四:配置 OGG Replicat 和 Kafka

  1. 编辑 OGG Replicat 参数文件: 编辑 Replicat 参数文件,配置连接信息和目标 Kafka 主题。
plaintextCopy code
REPLICAT rep1
USERID ogguser, PASSWORD oggpassword
ASSUMETARGETDEFS
MAP source_table, TARGET kafka_topic, COLMAP (...)
  1. 启动 OGG Replicat: 启动 Replicat 进程。
bashCopy code
./ggsci
GGSCI> START REPLICAT rep1

步骤五:验证同步

  1. 插入数据: 在 Oracle 数据库中插入一些数据。
sqlCopy code
INSERT INTO source_table (ID, NAME) VALUES (1, 'John Doe');
  1. 检查 Kafka 主题: 检查 Kafka 中是否有与表变更相关的消息。
bashCopy code
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kafka_topic --from-beginning

新一代数据实时平台工具:低成本、更简单

以 Tapdata 为例,作为中国的 “Fivetran/Airbyte”, Tapdata 是一个以低延迟数据移动为核心优势构建的现代数据平台,内置 100+ 数据连接器,拥有稳定的实时采集和传输能力、秒级响应的数据实时计算能力、稳定易用的数据实时服务能力,以及低代码可视化操作等。典型用例包括数据库到数据库的复制、将数据引入数据仓库或数据湖,以及通用 ETL 处理等。

Tapdata 是一个专注于实时数据同步的工具,拥有强大且稳定的数据管道能力,可以用来替换类似于 OGG/DSG 这样的同步工具,将数据从 Oracle 、MySQL 这样的数据库同步到同构或者异构类型的数据目标。
在这里插入图片描述
以下是详细的操作教程(演示版本为 Tapdata Cloud):

步骤一:Tapdata 安装与部署

  1. 注册并登录 Tapdata Cloud

  2. 安装并部署 Tapdata: 访问 Tapdata 官方网站,获取操作指引,完成 Tapdata Agent 的安装与部署。

注册 Tapdata Cloud,即刻开启您的实时数据之旅
申请试用 Tapdata 本地部署版本

步骤二:配置数据源和目标

  1. 新建 Oracle 数据源:进入 Tapdata Cloud 连接管理页面,创建数据源 Oracle 的连接并测试通过。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 新建数据目标 Kafka:重复上述操作,在数据源列表中找到 Kafka,参考连接配置帮助创建 Kafka 为数据目标的连接并测试通过:
    在这里插入图片描述
    步骤三:配置 Kafka

1.创建 Kafka Topic: 在 Kafka 中创建一个 Topic,用于接收从 Oracle 同步过来的数据。

bashCopy code
bin/kafka-topics.sh --create --topic my_oracle_topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1

步骤四:开启同步任务

  1. 新建数据同步任务:通过拖拉拽的方式,在 Tapdata 的可视化操作界面中,连接数据源和目标,快速创建 Oracle - Kafka 的数据同步任务
  2. 启动同步任务: 点击源节点与目标节点,分别选择待同步表和目标表后即可启动任务,Tapdata 将开始捕获 Oracle 数据库的数据及变更,并将其发送到 Kafka。

步骤五:验证同步

  1. 插入数据: 在 Oracle 数据库中插入一些数据。
sqlCopy code
INSERT INTO my_table (id, name) VALUES (1, 'John Doe');
  1. 检查 Kafka Topic: 使用 Kafka 命令行工具检查同步的数据是否已经到达 Kafka Topic。
bashCopy code
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my_oracle_topic --from-beginning

如何选:综合对比,选择与自身需求更加匹配的方案

面对如此多的数据同步方案,在做调研时往往涉及多方考虑。综合来看,各个类型的方案各有优劣:

① 手动配置方案
优势:

  1. 定制性: 完全自定义的配置允许满足特定业务场景的要求。
  2. 无额外成本: 不需要额外的软件许可费用。

劣势:

  1. 复杂性: 需要手动处理所有步骤,可能会增加配置和管理的复杂性
  2. 维护难度: 对于复杂的同步需求,手动配置可能导致维护难度增加。
  3. 时间成本: 手动配置需要更多的时间和技术经验。

② 官方工具 OGG
优势:

  1. 成熟稳定: OGG 是 Oracle 提供的官方工具,经过多年的发展和改进,具有稳定性和成熟性。
  2. 可视化管理:OGG 提供了管理界面,简化了配置和监控过程。

劣势:

  1. 资金成本: 付费工具且价格较高,需要一定的成本投入。
  2. .学习成本: 具有一定的学习门槛,尤其是对于初学者而言。

③ Tapdata 方案
优势:

  1. 简化配置: Tapdata 提供了简化的配置界面,降低了配置复杂性,无论是操作还是维护都更加简单
  2. 实时监控: 提供实时监控和报警功能,方便管理和维护。
  3. 低延迟: Tapdata 强调低延迟,根据任务的 tps 对任务进行拆分,适用于对实时性要求较高的场景。
  4. 云原生:支持云版本,对云上生态融合更友好

劣势:

  1. 资金成本:Tapdata 本地部署版本,以及 Tapdata Cloud 到达一定链路数时需要支付额外费用。
  2. 资源占用:需要占用少量的数据库资源进行日志解析

考虑因素:

  • 根据需求选择: 根据具体需求和团队技能,选择适合的方案。手动配置适合对配置有深入理解的团队,OGG适合对稳定性和功能有更高要求的场景,而 Tapdata 则适用于希望快速配置和低延迟的场景。
  • 成本和效率权衡: 考虑购买费用、学习曲线和配置效率之间的权衡。
  • 生态整合: 考虑工具的生态整合,特别是与已有系统和工具的集成。

总体而言,将 Oracle 数据实时同步到 Kafka 为企业提供了更灵活、高效、实时的 数据处理和分析能力,有助于构建现代化的数据架构,适应迅速变化的业务环境。通过选择适合自身业务需求的同步方案,如 Debezium、OGG、Tapdata,并合理配置优化,企业可以更好地满足实时数据处理的需求,提升业务的竞争力和应变能力。在这其中,Tapdata 以其低延迟、易用性、可扩展性和实时监控等特点,为企业实现 Oracle 到 Kafka 的实时同步提供了可靠的解决方案。

产品优势:

  • 开箱即用与低代码可视化操作
  • 内置 100+ 数据连接器,稳定的实时采集和传输能力
  • 秒级响应的数据实时计算能力
  • 稳定易用的数据实时服务能力

【相关阅读】

  • Tapdata Connector 实用指南:云原生数仓场景之数据实时同步到 Databend
  • Tapdata Connector 实用指南:如何将 CRM 数据从 Salesforce 实时同步到 MongoDB 等其他库
  • Tapdata Connector 实用指南:实时数仓场景之数据实时同步至 ClickHouse
  • Tapdata Connector 实用指南:数据入仓场景之数据实时同步到 BigQuery

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue+Element-UI Table表格实现复选框单选效果(隐藏表头上的全选Checkbox)

实现效果 完整代码 <div class"box-pos"><el-table ref"table" :header-cell-style"{ color: #FFF, background: #333 }":cell-style"{ color: #FFF, background: #333 }" :data"grListData" style"width: 1…

01分布式搜索引擎ES

分布式搜索引擎ES 1.初识elasticsearch1.1.了解ES1.2.倒排索引1.3.es的一些概念 2.索引库操作2.1.mapping映射属性2.2.索引库的CRUD 3.文档操作3.1.新增文档3.2.查询文档3.3.删除文档3.4.修改文档3.5.总结 4.RestAPI4.0.导入Demo工程4.1.创建索引库4.2.删除索引库4.3.判断索引库…

Linux环境开发工具之vim

前言 上一期我们已经介绍了软件包管理器yum&#xff0c; 已经可以在linux上查找、安装、卸载软件了&#xff0c;本期我们来介绍一下文本编辑器vim。 本期内容介绍 什么是vim vim的常见的模式以及切换 vim命令模式常见的操作 vim底行模式常见的操作 解决普通用户无法执行sudo问…

Apache Superset

前言 最近在准备一个小的项目&#xff0c;需要对 Hive 的数据进行展示&#xff0c;所以想到了把 Hive 的数据导出到 MySQL 然后用 Superset 进行展示。 Superset 1.1 Superset概述 Apache Superset是一个现代的数据探索和可视化平台。它功能强大且十分易用&#xff0c;可对接…

ASP .Net Core 配置集合 IConfiguration 的使用

&#x1f433;简介 IConfiguration 是 ASP.NET Core 中的一个接口&#xff0c;用于表示配置集合。以下是关于 IConfiguration 的详细介绍&#xff1a; 作用&#xff1a;IConfiguration 允许开发人员从各种来源&#xff08;如文件、环境变量、命令行参数等&#xff09;读取应用…

wireshark 使用实践

1、打开wireshark软件&#xff0c;选择网卡&#xff0c;开始抓包 2、打开浏览器&#xff0c;访问一个http网站&#xff1a;这里我用 【邵武市博物馆】明弘治十一年&#xff08;1498&#xff09;铜钟_文物资源_福建省文 测试&#xff0c;因为它是http的不是https&#xff0c;方…

Oracle19C静默安装教程

文章目录 一、安装前的准备1、安装Linux操作系统2、配置网络源或者本地源3、hosts文件配置 二、准备安装环境1、安装依赖包2、创建oracle用户组3、配置系统内核参数4、关闭selinux5、配置oracle用户环境6、修改用户的Shell限制 三、静默安装Oracle数据库1、创建oracle安装目录2…

申请双软认证需要哪些材料?软件功能测试报告怎么获取?

“双软认证”是指软件产品评估和软件企业评估&#xff0c;其中需要软件测试报告。 企业申请双软认证除了获得软件企业和软件产品的认证资质&#xff0c;同时也是对企业知识产权的一种保护方式&#xff0c;更可以让企业享受国家提供给软件行业的税收优惠政策。 那么&#xff0c;…

[BT]BUUCTF刷题第2天(3.20)

第2天&#xff08;共5题&#xff09; Web [ACTF2020 新生赛]Exec Payload&#xff1a;target127.0.0.1;cat /flag 分号;在许多shell中用作命令分隔符&#xff0c;意味着在执行完前一个命令&#xff08;这里是设置target变量&#xff09;后&#xff0c;接着执行cat /flag命令…

C++项目 -- 负载均衡OJ(一)compile_server

C项目 – 负载均衡OJ&#xff08;二&#xff09;compile_server 文章目录 C项目 -- 负载均衡OJ&#xff08;二&#xff09;compile_server一、compile_server设计1.总体服务流程 二、compiler.hpp三、runner.hpp四、compile_run.hpp五、compile_server.cc5.1.编译功能调试&…

【CNN轻量化】ParameterNet: Parameters Are All You Need 参数就是你所需要的

论文链接&#xff1a;http://arxiv.org/abs/2306.14525 代码链接&#xff1a;https://github.com/huawei-noah/Efficient-AI-Backbones 一、摘要 现有的低FLOPs模型&#xff08;轻量化模型&#xff09;无法从大规模预训练中受益。本文旨在增加大规模视觉预训练模型中的参数数量…

责任链模式(处理逻辑解耦)

前言 使用设计模式的主要目的之一就是解耦&#xff0c;让程序易于维护和更好扩展。 责任链则是将处理逻辑进行解耦&#xff0c;将独立的处理逻辑抽取到不同的处理者中&#xff0c;每个处理者都能够单独修改而不影响其他处理者。 使用时&#xff0c;依次调用链上的处理者处理…

从零到一构建短链接系统(八)

1.git上传远程仓库&#xff08;现在才想起来&#xff09; git init git add . git commit -m "first commit" git remote add origin OLiyscxm/shortlink git push -u origin "master" 2.开发全局异常拦截器之后就可以简化UserController 拦截器可以…

Jackson 2.x 系列【3】解析器 JsonParser

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 源码地址&#xff1a;https://gitee.com/pearl-organization/study-seata-demo 文章目录 1. 前言2. 解析原理3. 案例演示3.1 创建 JsonParser3.2 解析3.3 读取3.4 测试 1. 前…

C语言 指针练习

一、 a、b是两个浮点型变量&#xff0c;给a、b赋值&#xff0c;建立两个指针分别指向a的地址和b的地址&#xff0c;输出两个指针的值。 #include<stdio.h> int main() {float a,b,*p1,*p2;a10.2;b2.3;p1&a;p2&b;printf("a%f,b%f\n",a,b);printf("…

U-Net代码复现--更新中

本文记录自己的学习过程&#xff0c;内容包括&#xff1a; 代码解读&#xff1a;Pytorch-UNet 深度学习编程基础&#xff1a;Pytorch-深度学习&#xff08;新手友好&#xff09; UNet论文解读&#xff1a;医学图像分割&#xff1a;U_Net 论文阅读 数据&#xff1a;https://hack…

Java与Go:指针

在计算机内存中&#xff0c;每个变量都有一个唯一的地址&#xff0c;指针就是用来保存这个地址的变量。通过指针&#xff0c;我们可以间接地访问和修改存储在该地址处的数据。今天我们来聊一聊Java和Go指针&#xff0c;预告一下&#xff0c;我们需要借助C语言做一些小小的比较。…

基于cnn深度学习的yolov5+pyqt+分类+resnet+骨龄检测系统

往期热门博客项目回顾&#xff1a; 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 YOLOv5与骨龄识别 YOLOv5&a…

容器中的大模型(三)| 利用大语言模型:容器化高效地部署 PDF 解析器实践...

作者&#xff1a;宋文欣&#xff0c;智领云科技联合创始人兼CTO 01 简介 大语言模型&#xff08;LLMs&#xff09;正逐渐成为人工智能领域的一颗璀璨明星&#xff0c;它们的强大之处在于能够理解和生成自然语言&#xff0c;为各种应用提供了无限可能。为了让这些模型更好地服务…

网络编程:数据库

一、作业 1> 创建一个工人信息库&#xff0c;包含工号&#xff08;主键&#xff09;、姓名、年龄、薪资。 2> 添加三条工人信息&#xff08;可以完整信息&#xff0c;也可以非完整信息&#xff09; 3> 修改某一个工人的薪资&#xff08;确定的一个&#xff09; 4> …