• 今天整点大数据应用的开发。做一个定时校验的Job ​Kettle自行百度,做ETL的。下面就开始吧。 首先kettle,开发系统时间的转换,这步很关键的,兄弟: ​具体代码也贴出来,这个是设置环境变量, ​接下来,看分割...




    今天整点大数据应用的开发。做一个定时校验的Job






    ​Kettle自行百度,做ETL的。下面就开始吧。

    首先kettle,开发系统时间的转换,这步很关键的,兄弟:

     移除点击此处添加图片说明文字

    ​具体代码也贴出来,这个是设置环境变量,

     移除点击此处添加图片说明文字

    ​接下来,看分割时间的js代码段,

     移除点击此处添加图片说明文字

    能看懂吧,就是获取系统信息,切割时间,为昨天的时间,这么是为了后期跑任务的。

    接下来开发任务job,

     移除点击此处添加图片说明文字

     移除点击此处添加图片说明文字

    ​然后看一下sql脚本,

     移除点击此处添加图片说明文字

    ​老规矩,签了隐私政策,得弄花了。

    好了前面两个转换好了,接着来,前面两个装换,一个是做系统时间环境变量获取的,另一个是设置dtNew变量的,并且获取mysql、hive表的昨日数据。

    接下来,开发另一个任务,就是appid的渠道日活,appid日活,日活占比:

     移除点击此处添加图片说明文字

    ​如所见,需要到处到excel中,来做查看,

    看一下sql脚本:

     移除点击此处添加图片说明文字

    整合转换并且运行:

     移除点击此处添加图片说明文字

    ​到此,那么kettle部分开发完了,我们可以设置一个时间了:

     移除点击此处添加图片说明文字

    ​start部分,设置时间为每天的,10点20,保存。

    接着,设置返回邮件,这步很重要,你总得让kettle告诉你什么时候结束吧。

     移除点击此处添加图片说明文字

    接下来,搞大家伙了,因为是自己的工作,我没有放到服务器上,而是打算本地windows启动服务,开始制作bat脚本,那我就不做介绍了,直接粘贴脚本,为了公司隐私,直接马赛克一些:

     移除点击此处添加图片说明文字

    ​好了,看一下效果:

     移除点击此处添加图片说明文字

    接着,这个bat脚本,我们需要windows的计划任务,不了解的自行百度哦:

     移除点击此处添加图片说明文字

    会了吧,

     移除点击此处添加图片说明文字

     移除点击此处添加图片说明文字

     移除点击此处添加图片说明文字

    so easy,

    结束之后:

    来看一下,

     移除点击此处添加图片说明文字

    ​接下来,干嘛呢?就是等了,我们设置了定时10点28开始调用bat程序,然后我们等28启动bat,启动之后,10点30调用kettle,ok。稍后给看结果。

    那么这套windows开发,当然很方便很舒服,但是也有弊端,就是调用了程序之后,因为bat脚本我们pause,所以bat会持续在桌面,当然,bat里面我们定义log位置,我是喜欢将bat暂留,也有人喜欢一闪而过的感觉,那么我们不管,bat的自己定制也都在脚本中示例了,这里不赘述。稍后下午打算整一套linux服务器的demo帖做记录。

    再次补充,理论意义上,kettle的理念是可以完成绝大部分大数据企业的需求的,包括实时的需求,

    好了谈话间,就启动了bat了。截图:

     移除点击此处添加图片说明文字

    应用自启动,还可以。

    now loading。。。。。。

    等10点30,看日志,并且等excel生成,我们就可以对比了。

    稍后,邮件也会发送到我们的新浪邮箱,稍后都会截图展示成果的:

     移除点击此处添加图片说明文字

    时间已经来到了10点半,我们看,日志打出:

     移除点击此处添加图片说明文字

    那么我们去检查bat中盘符数据excel:

     移除点击此处添加图片说明文字

    ​已经生成了,等待邮件:

     移除点击此处添加图片说明文字

    ​foxmail的f4,收取所有邮件:

     移除点击此处添加图片说明文字

     移除点击此处添加图片说明文字

    ​邮件也来了,

     移除点击此处添加图片说明文字

    ​开发结束,是不是很快。开发者,就是要速度快,我们应当学习能力超强,迅速适应所有的需求,理论意义上,如果需求是造火箭,那么应当在规定时间内,设计、开发、测试、维护都能做。

    展开全文
  • 写在前面: 博主是一名软件工程系大数据应用开发专业大二的学生,昵称来源于《爱丽丝梦游仙境》中的Alice和自己的昵称。作为一名互联网小白,写博客一方面是为了记录自己的学习历程,一方面是希望能够帮助到很多和...

    写在前面: 博主是一名软件工程系大数据应用开发专业大二的学生,昵称来源于《爱丽丝梦游仙境》中的Alice和自己的昵称。作为一名互联网小白,写博客一方面是为了记录自己的学习历程,一方面是希望能够帮助到很多和自己一样处于起步阶段的萌新。由于水平有限,博客中难免会有一些错误,有纰漏之处恳请各位大佬不吝赐教!个人小站:http://alices.ibilibili.xyz/ , 博客主页:https://alice.blog.csdn.net/
    尽管当前水平可能不及各位大佬,但我还是希望自己能够做得更好,因为一天的生活就是一生的缩影。我希望在最美的年华,做最好的自己

            上一篇博客《还不会使用大数据ETL工具Kettle,你就真的out了!》博主已经为大家介绍了Kettle简单的使用操作,也确实谈到了后面会出较复杂操作的教程,其中当数与大数据组件之前的一些操作。所以本篇博客,博主为大家带来Kettle集成配置大数据的教程,为下一篇Kettle的进阶操作做铺垫!

    在这里插入图片描述


    Kettle集成大数据

    1. 修改配置文件

    我们打开Kettle安装目录下的pentaho-big-data-plugin文件夹
    data-integration\plugins\pentaho-big-data-plugin
    修改plugin.properties文件,把active.hadoop.configuration的值设置成:cdh514
    在这里插入图片描述

    2. 移动jar包路径

    我们进入到cdh15文件夹的lib目下
    data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\cdh514\lib
    可以发现里面有两个文件夹和一堆jar包
    在这里插入图片描述
    我们只需要做的是把clientpmr这两个文件夹里的jar包拿出来放置到它们父目录,也就是图中所示目录下。

    3.上传集群核心配置文件到本地并替换

    因为后续我们需要kettle连接集群的大数据相关组件,所以这一步需要将集群上相关的核心配置文件上传到window本地,在kettle的目录下进行替换操作!

    操作路径为:
    data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\cdh514

    本步骤中,我们需要替换的配置文件有

    在这里插入图片描述
    是不是很眼熟,这不都是hadoop集群上的核心配置文件吗
    在这里插入图片描述
    是的,我们打开集群,进入到Hadoop的etc/hadoop目录下
    cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
    开始往windows端上传文件
    sz yarn-site.xml hdfs-site.xml mapred-site.xml core-site.xml

    进入到hive的目录
    cd /export/servers/hive-1.1.0-cdh5.14.0/conf
    同理
    sz hive-site.xml

    为了后续也能正常使用hbase,这里的操作也与上面一致
    cd /export/servers/hbase-1.2.0-cdh5.14.0/conf
    sz hbase-site.xml

    然后将文件全部复制到data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\cdh514下替换即可
    在这里插入图片描述


    执行到这里,我们来测试一下环境是否整合好了

    4.测试

    1. 新建一个集群(new Cluster)

    在这里插入图片描述

    2. 配置集群信息

    在这里插入图片描述
    看到步骤2这样测试显示的结果,说明我们的环境就整合好了~
    在这里插入图片描述


            本篇只是环境整合篇,还未涉及到与Kettle任何实质性的操作,因此就到这就先结束了。下一篇博客博主将为大家详细介绍更多Kettle的转换操作,敬请期待!

            如果对你有所帮助,记得点赞评论关注三连|ू・ω・` )
    在这里插入图片描述

    展开全文
  • 目录 一、Kettle整合Hadoop 1、 整合步骤 2、Hadoop file input组件 3、Hadoop file output组件 ...3、hive中读取数据 4、把数据保存到hive数据库 5、Hadoop Copy Files组件 6、执行Hive的HiveSQL语句 三...

    目录

    一、Kettle整合Hadoop

    1、 整合步骤

    2、Hadoop file input组件

    3、Hadoop file output组件

    二、Kettle整合Hive

    1、初始化数据

    2、 kettle与Hive 整合配置

    3、从hive 中读取数据

    4、把数据保存到hive数据库

    5、Hadoop Copy Files组件

    6、执行Hive的HiveSQL语句

    三、Kettle整合HBase

    1、HBase初始化

    2. HBase input组件

    3、HBase output组件


    一、Kettle整合Hadoop

    环境  kettle 8.2 版本

    kettle国内镜像下载地址:http://mirror.bit.edu.cn/pentaho/Pentaho%208.2/client-tools/ 

    1、 整合步骤

    1. 确保Hadoop的环境变量设置好HADOOP_USER_NAME为root

    2. 从hadoop下载核心配置文件

    /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/hdfs-site.xml
    /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/core-site.xml

    3. 把hadoop核心配置文件放入kettle目录

    data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp26

    4. 修改 data-integration\plugins\pentaho-big-data-plugin\plugin.properties文件

    • 修改plugin.properties
    active.hadoop.configuration=hdp26

    5. 创建Hadoop clusters

     

       打红色的对勾的缺一不可,node01  失效要  配置 windows 的 hosts 映射

    2、Hadoop file input组件

    需求:从Hadoop文件系统读取/hadoop/test/1.txt文件,把数据输入到Excel中

    1.  配置Hadoop File Input组件

     

     

    2. Excel 配置输出路径 即可

    3、Hadoop file output组件

    需求:读取 user.json 把数据写入到hdfs文件系统的的/hadoop/test/2.txt中。

    1. 配置 JSON 输入组件

    2. 配置Hadoop file output组件

    二、Kettle整合Hive

    1、初始化数据

    1. 连接hive

    2. 创建并切换数据库

    show databases; 			-- 查询数据库
    
    drop database test cascade; -- 强制删除数据库
    
    create database test;		-- 创建数据库
    use test;					-- 切换数据库

    3. 创建表

    CREATE TABLE a (
       a int,
       b int
    )
    ROW format delimited
    fields terminated BY ','
    stored AS  TEXTFILE;

    4. 创建数据文件

    vim a.txt
    1,11
    2,22
    3,33

    5. 从文件中加载数据到表

    load data local inpath '/export/datas/a.txt' overwrite into table a;

    2、 kettle与Hive 整合配置

    1. 从虚拟机下载Hadoop的jar包

    /export/servers/hadoop-2.7.5/share/hadoop/common/

    2. 把jar包放置在\data-integration\lib目录下

    3. 重启kettle,重新加载生效

    3、从hive 中读取数据

    • hive数据库是通过jdbc来进行连接,可以通过表输入控件来获取数据。

    需求:从hive数据库的test库的a表中获取数据,并把数据保存到Excel中。

    实现步骤:

    1. 设计一下kettle组件结构

    2. 配置表输入组件

    3. 配置表输出

    4、把数据保存到hive数据库

    hive数据库是通过jdbc来进行连接,可以通过表输出控件来保存数据。

    需求:从Excel中读取数据,把数据保存在hive数据库的test数据库的 a 表。

    实现步骤:

    1. 配置 Excel输入组件

    2. 配置表输出组件

    5、Hadoop Copy Files组件

    Kettle作业中的Hadoop Copy Files作业项可以将本地的文件上传到HDFS,也可以向Hive导入数据。

    需求:资料\kettle测试数据\weblogs_parse.txt文件导入到Hive表中

    资源下载地址:http://wiki.pentaho.com/download/attachments/23530622/weblogs_parse.txt.zip?version=1&modificationDate=1327068013000

    实现步骤:

    1. 创建表

    ---创建weblogs表语句
    
    create table test.weblogs (
    client_ip    string,
    full_request_date string,
    day    string,
    month    string,
    month_num int,
    year    string,
    hour    string,
    minute    string,
    second    string,
    timezone    string,
    http_verb    string,
    uri    string,
    http_status_code    string,
    bytes_returned        string,
    referrer        string,
    user_agent    string
    )
    row format delimited
    fields terminated by '\t';

    2. 配置Hadoop copy files

    3. 测试数据是否已经抽取到Hive中

    数据比较多  , 笔记本 内存有很小 ,跑起来 太费劲了

    6、执行Hive的HiveSQL语句

    Kettle中可以执行 Hive 的HiveSQL语句,使用作业的SQL脚本。

    需求:聚合查询weblogs表(以IP和年月分组统计的PV数据),同时建立一个新表保存查询数据。

    实现步骤:

    1. 拖取组件,配置 SQL 组件

    2. 测试数据是否生成


    三、Kettle整合HBase

    1、HBase初始化

    从hbase集群中复制  hbase-site.xml 文件到 kettle 安装目录下的 “plugins/pentaho-big-data-plugin/hadoop-configurations/hdp26”  目录下。

    1. 进入HBase shell, 查看状态

    2. 创建表,并查看

    -- 创建表
    create 't1','f1'
    
    -- 查看表
    describe 't1'
    
    -- 添加数据
    put 't1','rowkey001','f1:name','zhangsan'
    
    -- 获取数据
    get 't1','rowkey001'

    2. HBase input组件

    Kettle提供了HBase input控件来读取HBase数据库中的数据。

    需求:读取HBase数据库中表里面的数据,把数据保存到Excel

    实现步骤:

    1. 准备一些测试数据

    create 't_user','cf'
    
    put 't_user','392456197008193000','cf:name','张三'
    put 't_user','392456197008193000','cf:age','20'
    put 't_user','392456197008193000','cf:gender','0'
    put 't_user','392456197008193000','cf:province','北京市'
    put 't_user','392456197008193000','cf:city','昌平区'
    put 't_user','392456197008193000','cf:region','回龙观'
    put 't_user','392456197008193000','cf:phone','18589407692'
    put 't_user','392456197008193000','cf:birthday','1970-08-19'
    put 't_user','392456197008193000','cf:hobby','美食;篮球;足球'
    put 't_user','392456197008193000','cf:register_date','2018-08-06 09:44:43'
    
    put 't_user','267456198006210000','cf:name','李四'
    put 't_user','267456198006210000','cf:age','25'
    put 't_user','267456198006210000','cf:gender','1'
    put 't_user','267456198006210000','cf:province','河南省'
    put 't_user','267456198006210000','cf:city','郑州市'
    put 't_user','267456198006210000','cf:region','郑东新区'
    put 't_user','267456198006210000','cf:phone','18681109672'
    put 't_user','267456198006210000','cf:birthday','1980-06-21'
    put 't_user','267456198006210000','cf:hobby','音乐;阅读;旅游'
    put 't_user','267456198006210000','cf:register_date','2017-04-07 09:14:13'
    
    put 't_user','892456199007203000','cf:name','王五'
    put 't_user','892456199007203000','cf:age','24'
    put 't_user','892456199007203000','cf:gender','1'
    put 't_user','892456199007203000','cf:province','湖北省'
    put 't_user','892456199007203000','cf:city','武汉市'
    put 't_user','892456199007203000','cf:region','汉阳区'
    put 't_user','892456199007203000','cf:phone','18798009102'
    put 't_user','892456199007203000','cf:birthday','1990-07-20'
    put 't_user','892456199007203000','cf:hobby','写代码;读代码;算法'
    put 't_user','892456199007203000','cf:register_date','2016-06-08 07:34:23'
    
    put 't_user','492456198712198000','cf:name','赵六'
    put 't_user','492456198712198000','cf:age','26'
    put 't_user','492456198712198000','cf:gender','2'
    put 't_user','492456198712198000','cf:province','陕西省'
    put 't_user','492456198712198000','cf:city','西安市'
    put 't_user','492456198712198000','cf:region','莲湖区'
    put 't_user','492456198712198000','cf:phone','18189189195'
    put 't_user','492456198712198000','cf:birthday','1987-12-19'
    put 't_user','492456198712198000','cf:hobby','购物;旅游'
    put 't_user','492456198712198000','cf:register_date','2016-01-09 19:15:53'
    

    2. 配置 HBase Input 组件

     

     

    返回到  configure query ,  下面 我们使用 "create a tuple template " 模板 导出到  Excel中的 数据并没有 展开,可能不是我们想要的结果, 我们自己 设计映射 字段关系。

     

    查看结果

     我们使用 "create a tuple template " 模板 导出到  Excel中的 数据并没有 展开,不是我们想要的结果, 我们自己 设计映射 字段关系,因为  HBase 的设计 就是  rowkey 的  column Family 下有很多的 column 自动生成 的模板 是 不能将数据 展开的。

    3、HBase output组件

    Kettle提供了“HBase output”控件来保存数据到 HBase 数据库中。

    需求:从 user.json 中读取数据,把数据保存在HBase的t_user_2表中实现步骤:

    [
        {
            "id": "392456197008193000",
            "name": "张三",
            "age": 20,
            "gender": 0,
            "province": "北京市",
            "city": "昌平区",
            "region": "回龙观",
            "phone": "18589407692",
            "birthday": "1970-08-19",
            "hobby": "美食;篮球;足球1",
            "register_date": "2018-08-06 09:44:43"
        },
        {
            "id": "267456198006210000",
            "name": "李四",
            "age": 25,
            "gender": 1,
            "province": "河南省",
            "city": "郑州市",
            "region": "郑东新区",
            "phone": "18681109672",
            "birthday": "1980-06-21",
            "hobby": "音乐;阅读;旅游",
            "register_date": "2017-04-07 09:14:13"
        },
        {
            "id": "892456199007203000",
            "name": "王五",
            "age": 24,
            "gender": 1,
            "province": "湖北省",
            "city": "武汉市",
            "region": "汉阳区",
            "phone": "18798009102",
            "birthday": "1990-07-20",
            "hobby": "写代码;读代码;算法",
            "register_date": "2016-06-08 07:34:23"
        },
        {
            "id": "492456198712198000",
            "name": "赵六",
            "age": 26,
            "gender": 2,
            "province": "陕西省",
            "city": "西安市",
            "region": "莲湖区",
            "phone": "18189189195",
            "birthday": "1987-12-19",
            "hobby": "购物;旅游",
            "register_date": "2016-01-09 19:15:53"
        },
        {
            "id": "392456197008193000",
            "name": "张三",
            "age": 20,
            "gender": 0,
            "province": "北京市",
            "city": "昌平区",
            "region": "回龙观",
            "phone": "18589407692",
            "birthday": "1970-08-19",
            "hobby": "美食;篮球;足球1",
            "register_date": "2018-08-06 09:44:43"
        },
        {
            "id": "392456197008193000",
            "name": "张三",
            "age": 20,
            "gender": 0,
            "province": "北京市",
            "city": "昌平区",
            "region": "回龙观",
            "phone": "18589407692",
            "birthday": "1970-08-19",
            "hobby": "美食;篮球;足球1",
            "register_date": "2018-08-06 09:44:43"
        }
    	
    ]

    实现步骤:

    1. 配置HBase output组件

    2.  配置kettle数据流与HBase映射关系

         表不能存在 创建 即可 ,不用提前创建

    查看结果

       到目前  位置,我们就 将  kettle  与 Hadoop,Hive, HBase 整合完成,并且 演示了 基本的案例操作。 

    遇到的问题:

    •  IP 的在 Windows在映射 在 System32  中的  hosts 中添加 
    • zookeeper  ,HBase  启动 正常 ,报错了  去看看是否挂掉,HMaster  时间久了不用, 好像就挂了 

     

     

     

     

     

    展开全文
  • 作者:Grey 原文地址:... 需求: 将Oracle数据库中某张表历史数据导入MySQL的一张表里面。 源表(Oracle):table1 目标表(MySQL):table2 数据量:20,000,000 思...

           

    作者:Grey

    原文地址: http://www.cnblogs.com/greyzeng/p/5524614.html

           

             

    需求:

    将Oracle数据库中某张表历史数据导入MySQL的一张表里面。

    源表(Oracle):table1

    目标表(MySQL):table2

    数据量:20,000,000

           

    思路:

    由于服务器内存资源有限,所以,无法使用Kettle一次性从源表导入目标表千万级别的数据,考虑采用分页导入的方式来进行数据传输,即:

    根据实际情况设置一个每次处理的数据量,比如:5,000条,然后根据总的数据条数和每次处理的数据量计算出一共分几页,

    假设总数据量有:20,000,000,所以页数为:20,000,000/5,000=4,000页

    注: 若存在小数,小数部分算一页,比如:20.3算21页

           

    步骤:

    根据需求的条件,首先对数据进行分页:

    数据量:20,000,000

    每页数据量:5,000

    页数:4,000

    源表(Oracle):table1

    目标表(MySQL):table2

           

    主流程:transfer_table1_to_table2.kjb

           

    流程说明:
    transfer_table1_to_table2.kjb: 主流程

    build_query_page.ktr: 构造页数游标

    loop_execute.kjb: 根据页数来执行数据导入操作

           

    我们分别来看各个部分的构成:

           

    build_query_page.ktr: 构造页数游标

    这一步中,我们需要构造一个类似这样的数据结构:

    其中P_PAGE是表头,其余为页码数,

    注: 在这里取页码数我通过这个表的rownum来构造

    SQL:

    select rownum as P_PAGE from mds.mds_balances_hist where rownum<=4000

    具体实现如下图:

           

    loop_execute.kjb: 根据页数来执行数据导入操作

    在上一步中,我们构造了页数,在这步中,我们遍历上一步中的页码数,通过页码数找出相应的数据集进行操作,

    其中包括set_values.ktr和execute_by_page.ktr两个转换

    loop_execute.kjb具体实现如下:

           

    set_values.ktr:表示获取从上一步中获得的页数

           

    execute_by_page.ktr:表示根据页数进行数据导入操作

    其中query_by_page采用Oracle经典三层嵌套分页算法:

    SELECT b.rn,b.* FROM

    (

    SELECT A.*, ROWNUM RN

    FROM (SELECT * FROM table1) A

    WHERE ROWNUM <= (${VAR_P_PAGE}*5000)

    ) b

    WHERE RN >= ((${VAR_P_PAGE}-1)*5000+1)

    注: ${VAR_P_PAGE}为每次获取的页码数。

    select_field为设置需要导入的列名:

    output_target目的是输出到目标表table2:

    因为要遍历上一次执行的结果,那么需要在transfer_table1_to_table2.kjb的loop_execute.kjb中做如下设置:

           

    最后,执行transfer_table1_to_table2.kjb即可。

           

    总结:

    通过上述方法,我们可以很好的解决内存不足的情况下,大数据量在不同的数据库之间的导入工作。

       

    FAQ:

    • 在Kettle导入大量数据的过程中,可能会出现连接断开的现象:

    http://forums.pentaho.com/showthread.php?74102-MySQL-connection-settings-at-java-level

    (Idle connection timeout if we keep kettle idle for 8hours).

    解决办法:

    转载于:https://www.cnblogs.com/greyzeng/p/5524614.html

    展开全文
  • 现在需要对以往数据进行整合并进行数据迁移 确定目标表 数据源及数据量如下 待迁移数据 目标表与Z0_工单_整理备份 的字段是一致的。为了方便后续操作(增删改查、数据迁移、增量备份)需要新增几个字段 1、...

    现在需要对以往数据进行整合并进行数据迁移

    确定目标表

          数据源及数据量如下

    原始待迁移数据
    待迁移数据

          目标表与 Z0_工单_整理备份 的字段是一致的。为了方便后续操作(增删改查、数据迁移、增量备份)需要新增几个字段

        1、 id 作为主键,方便更新、删除等修改操作
        2、 inserTime 数据插入时间,记录更新频次
        3、 updateTime 时间戳,记录最近一次更改时间,方便后期数据迁移、增量备份
        4、 source 数据来源,方便后期数据溯源及数据维护

    确定好目标表字段后将原始表内的字段进行一一对应。

    字段映射

         1、字段分类

    •     保留字段,不对字段做任何修改保留字段名称
    •     更名字段,保留字段内容,但要对字段名称进行修改
    •     删除字段,目前业务不再需要字段,删除

          2、字段类型及干扰数据

                   数据由于历史问题,可能存在不规范的情况。
                   比如:时间格式内存在汉字;字符串编码格式与当前不一致。

                    解决思路:

    •    将所有字段按照字符串进行迁移(使得数据量变大,但可以保证数据平稳迁移,迁移后需要对不规范数据进行修改)
    •    进行错误处理,如果量不大,可手工将数据入库。
    •     提前设置编码格式,ETL当中规范数据值类型(解决方式截图如下)

     优化

         1、  数据库引擎优化

              更改存储引擎InnoDB-》MyISAM,数据插入速度提升一倍,亲测有效

         2、查询优化 

    useServerPrepStmts=true
    cachePrepStmts=true    
    SQL SERVER查询优化

           3、插入优化 

    MYSQL 插入优化
    KETTLE 表输入优化

          4、JVM 优化

               根据本地计算机硬件情况,分配JVM内存,我本地是16G

    KETTLE SPOON.BAT 优化

           5、 灵性优化

                找个没人操作数据库的时段,很重要,效率提升超级明显。

    • 结果展示

            236w 数据不到十分钟迁移完毕,硬件再好点速度会更快。奈何本地条件有限

    结果展示
    展开全文
  • ​ 对业务新增用户收集入库的行为,需要开发。 ...分号,导致了我们把方式换来换去,到后来我才看到,原来不能加引号啊,但是我把时间变量替换成时间常量却可以编译通过,这是个坑,陨石巨坑。...
  • 比如oracle数据库中同步一张表的数据到Mysql中,通常的做法就是 分页查询源端的表,然后通过 jdbc的batch 方式插入到目标表,这个地方需要注意的是,分页查询时,一定要按照主键id来排序分页,避免重复插入。...
  • 我们已经对数据清洗有了一定概念:“数据清洗确保无法辨认的数据不会进入数据仓库。无法辨认的数据将影响到数据仓库中通过联机分析处理(OLAP)、数据挖掘和关键绩效指标(KPI)所产生的报表。”数据清洗, 是整个数据...
  • 数据交换工具Kettle

    2008-05-29 17:31:00
    网上搜集了一些关于开源数据交换工具Kattle的文章,特收藏如下:文章一:ETL和Kettle简介ETL即数据抽取(Extract)、转换(Transform)、装载(Load)的过程。它是构建数据仓库的重要环节。数据仓库是面向主题的、...
  • 数据抽取 整个抽取过程包括一个job和两个trans,先来看看整个job吧: 1、首先是数据库的表名抽取trans:作用是读取数据库的表名并以此记录。 1.1配置表输入。可以查看到mysql的所有的...
  • 大数据开发流程:从数据采集-》数据清洗-》数据处理(分析,计算···)我们采集过来的数据是有问题的,其中可能有脏数据或者无效数据,所以我们想要进行数据处理之前,就要对采集...
  • 最近在使用Kettle进行ETL的工作,现在总结一下。需求是将MYSQL中的表数据增量备份到HIVE仓库中,第一次是全量。我只想给大伙来点实用的,避免大家踩坑。Kettle是一个基于图形化的ETL工具,也可以用于集成各种作业,...
  • kettle抽取数据到impala

    2020-04-27 11:37:50
    1.首先确认数据来源,查询获取需要抽取的数据 2.kettle中,抽取源数据上传到HDFS指定路径下,如果hive表 是STORED AS TEXTFILE 上述 FILE_NAME 根据日期指定数据存放在HSFS上的具体位置,相应日期存放相应...
  • 里面这么配置这儿要注意,标致字段可以用默认,等会要用到2,添加过滤记录其中一定要配置上面的标准字段然后数据数据流就可以了这儿为什么要这么过滤呢,原因是我再debug时发现的合并标识这儿会将...
1 2 3 4 5 ... 18
收藏数 347
精华内容 138