文章目录

  • 前言
  • 1. 传统数据库的增量与全量
    • 1.1 Oracle
    • 1.2 Mysql
  • 2. 大数据框架的增量与全量
    • 2.1 业务数据
    • 2.2 日志数据

前言

本文简单示例传统数据库与大数据系统下数据的增量采集与全量采集


1. 传统数据库的增量与全量

1.1 Oracle

存量:dump文件
建立共享目录

create directory mydump as '/data/sharedata/mydump';
select * from dba_directories;
grant all on directory mydump to system;
grant export full database to system;

dump导入命令(用户名/密码@服务名)

impdp \'/ as sysdba\' directory=mydump dumpfile=mydb.dmp table_exists_action=replace

dump导出命令(用户名/密码@服务名)

expdp \'/ as sysdba\' SCHEMAS=TEST directory=mydump dumpfile=mydb.dmp logfile=mydb.log

增量:sqlloader / merge

  1. 编写control文件[xxx.ctl]
LOAD DATA
INTO TABLE "[TABLE_NAME_TMP]"—增量数据先导入到一张临时表-
APPEND
FIELDS TERMINATED BY "|"
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(COLUMNS,COLUMNS,COLUMNS,
COLUMNS "TO_CHAR(TO_DATE(:COLUMNS ,'yyyymmdd'),'yyyymmdd')")
  1. 编写xxx.sh文件[xxx.sh]
#!/bin/bash
#每日增量数据
sqlplus -s $username/$passwd@$tns <<EOC
TRUNCATE [TABLE_NAME_TMP];--导入之前先清理增量表,保证数据只是增量
commit;
exit;
EOC
sqlldr $username/$passwd@$tns control=$dir/xxx.ctl log=$dir/xxx.log bad=$dir/xxx.bad data=$dir/$dile_name errors=$errorCount parallel=true bindsize=750000 readsize=750000 streamsize=750000 rows=50000 > /tmp/xxx.resultsqlplus -s $username/$passwd@$tns <<EOC
MERGE INTO [TABLE_NAME_TARGET] A
USING [TABLE_NAME_TMP] B
ON (A.MERGE_COLUMN=B.MERGE_COLUMN AND A.MERGE_COLUMN = B.MERGE_COLUMN)
WHEN MATCHED THEN
UPDATE SET
A.COLUMNS=B.COLUMNS,
A.COLUMNS=B.COLUMNS,
A.COLUMNS=B.COLUMNS
WHEN NOT MATCHED THEN
INSERT VALUES(
B.COLUMNS,
B.COLUMNS,
B. COLUMNS
);
--无变更的合并,有变更的覆盖

1.2 Mysql

存量:load data

load data local infile “/dir/file_name” into table TABLE_NAME([option]);

option 可以是以下选项:

  1. FIELDS TERMINATED BY ‘string’(字段分隔符,默认为制表符’\t’);
  2. FIELDS [OPTIONALLY] ENCLOSED BY ‘char’ 字段引用符,如果加 OPTIONALLY 选项则只会做用在char, varchar和text等字符型字段上,其他类型字段默认不使用引用符
  3. FIELDS ESCAPED BY ‘char’(转义字符,默认为’’);
  4. LINES STARTING BY ‘string’(每行前都加此字符串,默认’’);
  5. LINES TERMINATED BY ‘string’(行结束符,默认为’\n’);
  6. IGNORE number LINES(忽略输入文件中的前 n 行数据);
  7. (col_name_or_user_var,…) (按照列出的字段顺序和字段数量加载数据);
  8. SET col_name = expr,… 将列做一定的数值转换后再加载

增量:canal
CANAL需要开启binlog日志。框架是自动识别binlog中的变更然后同步的。
具体操作详见: https://blog.csdn.net/qq_37067752/article/details/107687306

2. 大数据框架的增量与全量

2.1 业务数据

业务数据从量级上来看是比较偏小的;况且业务数据大多存储在传统关系型数据库中,因此直接参考传统数据库增量与全量采集即可。

2.2 日志数据

存量:flume
flume架构[TailDir Source多目录采集,支持断点续传;Kafka Channel可省略Sink]

配置Flume.conf[示例]

增量:sqoop
[Sqoop可以实现RMDB到大数据之间的数据传递,既可以增量也可以全量。这里只示例RMDB到HDFS的增量采集]

数据的增量采集与全量采集相关推荐

  1. 数据采集中的 全量采集,增量采集,差异采集

    内容与下方一样 全量备份: 一般是mysql表的数据做每日快照然后全量导入hive中 增量备份: 获取每天更新的数据和hive中原有的数据进行合并 差异备份:暂时没有遇到,后期遇到就加入说明

  2. kettle中三种类型: 增量不裁剪,增量裁剪,全量

    (1)增量表,全量表,快照表 原图片来源: 什么是增量表,全量表,快照表 - 简书 https://www.jianshu.com/p/d53b44b15655 (2)裁剪不裁剪 参看: SQL TR ...

  3. mysql全量备份与增量备份_Mysql增量备份与全量备份

    mysqldump备份及binlog日志恢复 详情: http://blog.51cto.com/hongge/1862214 1.首先确保已开启binlog日志功能.在my.cnf中包含下面的配置以 ...

  4. 什么是增量表,全量表,快照表?

    按照每天存放的数据以及是否按天分区可以分为增量表,全量表和快照表

  5. Solr的增量更新和全量更新对比

    Solr的增量更新和全量更新 solr的简介 solr是一个采用java语言,基于Lucene的全文搜索引擎. solr的一些原理 solr通过数据库的数据导入到索引库中,并且给数据创建相应的索引,用 ...

  6. 数仓建模-增量表及全量表

    判断一张表是增量表还是全量表,我认为有以下步骤: 1.这张表是基础数据表还是统计数据表(基础数据表一般来自业务系统的明细记录数据,统计数据表则为基于明细记录数据通过各种统计口径的统计表). 2.判断这 ...

  7. 国家统计局2020年统计用区划代码全量采集

    公司业务需要,把相关数据采集了一遍,在此记录. 采集链接:http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020/index.html(可修改对应年 ...

  8. Elasticsearch和MySQL数据同步(logstash-input-jdbc)全量增量方式同步近千万数据

    同步方案: 同步读写:最为简单的方式在将数据写到mysql时,同时将数据写到ES,实现数据的双写. 异步双写(MQ方式):MQ的性能基本比mysql高出一个数量级,所以性能可以得到显著的提高. 定时器 ...

  9. hive增量表和全量表_hive 拉链表 实现全量数据 增量更新

    背景: 数据表字段有IP,IP省份,IP城市,最新访问时间,假如目前一共有100W的IP我第一次初始化的时候完成初始化表插入,然后每天都有5W左右的IP活跃,然后我要更新这5W个IP的记录到初始化的表 ...

最新文章

  1. shell算数表达式运算
  2. OpenGL之深入解析渲染架构和数据传递
  3. 洛谷P1801 黑匣子 双堆套路的使用
  4. Android动态图标包制作教程,安卓手机ico图标制作美化图文教程
  5. 指针辨析:悬垂指针、哑指针、野指针、智能指针
  6. 【luogu1816】忠(RMQ问题、线段树)
  7. Android eclipse unable to launch:The selection can not be launched,and there are no recent launches
  8. 使用TSC打印机打印条码 (1)
  9. 智头条」十四五数字经济发展规划发布,工信部推动充电标准统一
  10. JavaScript嗅探执行神器-sniffer.js,你值得拥有!
  11. 山东省枣庄高新区益洋花园地块场地环境初步调查信息公示
  12. U盘未分配空间合并——U盘分区扩展卷为灰色的
  13. mysql group by COLUMN desc问题
  14. 读《论人类不平等的起源和基础》
  15. 计算机arp 各命令,ARP命令参数详解
  16. Elasticsearch7.x搜索实战
  17. 怎么关闭计算机右侧的硬盘预览,选择性关闭视频文件预览 给Win7硬盘CPU减压
  18. 八图片在线图片设置付费
  19. Autosar BSW开发必知的“术语”+“缩写”概念-1-诊断通信篇
  20. STC89C52单片机红外遥控中断以及代码显示

热门文章

  1. 修改MySQL密码策略
  2. 大数据分析哪款软件好用?如何进行大数据分析
  3. BT种子文件格式和Bencoding编码
  4. AudioTrack 分析
  5. SQLServer数据库出现“无法访问数据库XXX(object问题修复
  6. Java很傻,但是IDE很聪明,Intellij IDEA 是一款好产品
  7. python基础教程:__call__用法
  8. Linux下多个进程可以同时打开同一个文件吗?文件描述符与打开文件的关系?
  9. AForge学习笔记(4):AForge.Genetic
  10. Git详解之必知点----Git、本地仓库、远程仓库、IDEA集成Git