【NIFI】实现MySQL->ORACLE数据同步

【NIFI】实现MySQL->ORACLE数据同步

需求

实现MySQL->ORACLE数据同步
MySQL表名:eb_merchant_admin
ORACLE表名:EB_MERCHANT_ADMIN

配置流程

在这里插入图片描述
与oralce->oralce的类似,如果想了解 oracle->oracle 请参考【NIFI】实现ORACLE->ORACLE数据同步

1、QueryDatabaseTable:用于读取数据
2、ConvertAvroToJSON:读取数据转换JSON
3、ConvertJSONToSQL: 转换插入语句
4、PutSQL: 执插入语句
5、ConvertJSONToSQL: 转换更新语句
6、PutSQL: 执更新语句

这里只对和ORACLE不一样的地方做出标注,

1、QueryDatabaseTable

在这里插入图片描述
Database Type:MySQL(当然也可以使用默认值)

4、PutSQL 插入

在这里插入图片描述

  • 这里如果填写了 SQL Statement 则使用填写的,不使用上游传递下来的
  • INSERT INTO EB_MERCHANT_ADMIN (MERCHANT_ADMIN_ID, MER_ID, ACCOUNT, PWD, REAL_NAME, PHONE, LAST_IP, LAST_TIME, "roles", LOGIN_COUNT, "level", IS_DEL, STATUS, CREATE_TIME) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
  • 之所以填写是因为,MySQL表中存在2个字段roleslevel,是ORACLE数据库的关键字
  • 在oracle创建字段名称时,需要用双引号括起来

如果碰到MySQL字段使用ORACLE关键字时可以这么处理

6、PutSQL 更新

和步骤4是一样的,处理方式,将ConvertJSONToSQL生成的SQL简单处理,然后填写SQL Statement

<think>好的,我现在需要回答用户关于数据中台如何进行数据采集的问题。用户之前已经询问过如何建立数据中台,现在进一步询问数据采集的具体方法。我需要确保回答详细且有条理,覆盖用户可能关心的各个方面。 首先,我应该回顾之前的回答,确定是否已经涉及数据采集的部分。在之前的回答中,数据采集被列为数据中台架构中的数据接入层的一部分,提到了多源异构数据采集,以及技术选型中的典型组件如Hadoop生态和实时计算引擎。但用户现在希望更详细地了解数据采集的具体方法,所以需要深入展开。 接下来,我需要考虑数据采集的主要方面,包括数据来源、采集方式、技术工具、挑战及解决方案等。用户可能想知道如何从不同来源获取数据,包括内部系统、外部数据、物联网设备等,以及如何确保数据的实时性、完整性和准确性。 然后,我需要组织这些信息,使其结构清晰。可能的分类包括数据来源类型、采集方式(批量、实时、增量)、技术工具(如Flume、Kafka、Sqoop)、数据采集流程、挑战与解决方案等。 同时,要注意使用用户容易理解的语言,避免过于技术化的术语,但必要时需解释关键概念。例如,解释CDC(变更数据捕获)或ETL(抽取、转换、加载)等术语。 此外,还需要考虑数据采集中的常见问题,如数据异构性、实时性要求、数据量大、质量问题和安全性等,并提供对应的解决策略,比如使用适配器、分布式架构、数据清洗工具和加密措施等。 最后,应该给出一个实际的例子或流程说明,帮助用户更好地理解数据采集的实施步骤。例如,从需求分析到数据接入,再到后续处理的整个流程。 在检查过程中,确保覆盖所有关键点,没有遗漏重要内容,并且信息准确无误。同时,保持回答的结构化,使用标题和列表来提高可读性。</think>数据中台的数据采集是实现数据汇聚的核心环节,需要解决多源异构数据的**全量抽取、实时同步、质量保障**等问题。以下是数据中台进行数据采集的详细方法与关键技术要点: --- ### **一、数据来源的全面覆盖** 1. **企业内部系统** - 业务系统(ERP、CRM、OA等)的结构化数据 - 日志文件(服务器日志、应用日志等) - 数据库MySQLOracle、HBase等) - 消息队列(Kafka、RabbitMQ等) 2. **外部数据整合** - 第三方API(社交媒体、电商平台、政府开放数据- 合作伙伴数据(通过数据交换协议) - 公开数据集(行业报告、舆情数据等) 3. **物联网与设备数据** - 传感器数据(时序数据流) - 边缘计算节点预处理后的数据 - 工业设备状态监控数据 4. **非结构化数据** - 文档(PDF、Word)、图片、音视频 - 网页爬虫数据(需合规采集) --- ### **二、数据采集的核心方式** 1. **批量采集(Batch)** - **适用场景**:T+1离线数据同步 - **技术工具**:Sqoop、DataX、Kettle - **典型流程**: ```markdown 1. 定时触发全量/增量任务 2. 通过JDBC/ODBC连接源数据库 3. 按分片策略并行抽取数据 4. 写入HDFS/Hive等存储层 ``` 2. **实时采集(Streaming)** - **适用场景**:交易流水、用户行为日志 - **技术方案**: - **日志类**:Filebeat + Kafka(日志实时收集) - **数据库变更**:Debezium(基于CDC捕获数据变更) - **消息队列**:Kafka Connect + Flink(流式处理) 3. **增量采集(Delta)** - **实现方式**: - **时间戳**:按最后更新时间戳增量抽取 - **触发器**:数据库触发器记录变更 - **日志解析**:MySQL Binlog、Oracle Redo Log解析 --- ### **三、关键技术组件与工具** | **工具类型** | **代表工具** | **核心能力** | |--|---------------------------------------| | 数据库同步 | Sqoop、DataX | 异构数据库间高效传输 | | 日志采集 | Flume、Logstash | 多源日志聚合与标准化 | | 实时流采集 | Kafka Connect、Debezium | 低延迟捕获数据库变更事件 | | 文件传输 | NIFI、DistCp | 大文件分块传输与校验 | | API采集 | Python Requests、Airflow | 调度第三方API并处理限流/鉴权 | --- ### **四、数据采集的关键挑战与解决方案** 1. **数据异构性** - **解决方案**: - 开发统一数据接入层,支持多种协议(JDBC、HTTP、FTP等) - 使用Schema Registry管理数据格式(如Avro、Protobuf) 2. **实时性要求** - **优化手段**: - 采用分布式采集架构(如Flink CDC) - 设置多级缓存(Kafka作为缓冲层) 3. **海量数据吞吐** - **应对策略**: - 分片并行采集(如按时间/主键分片) - 压缩传输(Snappy、GZIP) 4. **数据质量问题** - **保障措施**: - 采集时字段校验(非空、格式、阈值) - 记录元数据血缘(追踪数据来源与处理过程) 5. **安全与合规** - **实施要点**: - 敏感数据脱敏(如手机号加密) - 遵守GDPR等法规(采集权限控制) --- ### **五、典型数据采集流程** ```mermaid graph TD A[需求分析] --> B{确定数据源类型} B -->|结构化| C[配置数据库连接器] B -->|半结构化| D[日志采集Agent部署] B -->|非结构化| E[文件传输工具配置] C --> F[全量/增量策略选择] D --> G[日志格式化解析] E --> H[元数据提取] F --> I[数据写入缓冲区] G --> I H --> I I --> J[数据质量检查] J -->|通过| K[持久化到数据湖] J -->|异常| L[告警并触发重试] ``` --- ### **六、最佳实践建议** 1. **统一接入规范**:制定《数据接入标准文档》,明确字段命名、数据类型、采集频率等 2. **自动化运维**:通过Prometheus+Grafana监控采集任务健康状态(延迟、吞吐量、错误率) 3. **灰度发布机制**:新数据源接入时,先小流量验证再全量运行 4. **容灾设计**:采集断点续传、异常数据隔离重试机制 通过系统化的数据采集体系,数据中台可实现**多源数据的高效汇聚**,为后续的数据治理、资产化和服务化提供坚实基础。实际落地时需根据企业技术栈和业务需求,选择适配的采集工具与架构方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值