自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 ETL - 收尾

收尾现在我们已经准备好了转换,但是一个接一个地执行转换会很不方便。我们可以创造一项工作来为我们完成这些转换。创建一个名为 “数据迁移.kjb” 的新作业。添加 Start 步骤,它是一个执行开关。添加变换。在步骤配置中,您可以选择一个转换文件。选择我们创建的第一个转换。使用第二个转换创建另一个步骤。现在加上表示成功的步骤,标志着工作的完成。步骤之间的联系如截图所示,点击运行就可以了...

2019-03-20 17:20:42 294

原创 ETL - 实战 Kettle 第三讲

前(fei)言(hua)在填充数据的时候,如果是测试数据,我们会经常发现有重复数据,这时候我们可以在表输入中,使用 distinct 语句去重,但是如果几行重复数据中,有一些诸如创建时间、更新时间等无关字段不同时,语句去重就达不到目的,这时候,我们就可以用PDI提供的去除重复记录步骤来实现,它的方便不在于能去除重复行数据,甚至可以去重指定字段,你只需在需要去重的步骤后添加即可。搜索步骤去除重...

2019-03-20 17:20:34 435

原创 ETL - 实战 Kettle 第二讲

前(fei)言(hua)现在我们开始较为复杂的转换,我们需要来自两个数据库的关联数据。我们需要来自旧数据库的订单数据,还需要来自新数据库的客户表主键 id 和 name 来填充外键。我们将创建两个表输入、一个记录集连接(关联)和一个表输出。创建一个新的转换,另存为“订单客户关联数据迁移”。创建一个步骤表输入,新建数据库连接,为该步骤指定一个名称,编写查询,也可以直接点击获取SQL查询语句按...

2019-03-20 17:20:26 427

原创 ETL - 实战 Kettle 第一讲

PDI 主要有两个部件,一个是转换,另一个是作业,他们之间不同的是作业是同步的,即每一步骤都要等待前一步骤完成,而转换是所有步骤异步运行。对于我们的实战项目,要先将数据迁移填充至新客户表,因为订单表需要客户表的主键id作为它的外键,所以我们首先需要一个作业和两个转换,作业将会一个一个执行转换,第一个转换是迁移客户表数据,第二个则是将订单表拆分,和客户表关联。让我们创建一个新的转换,并填充旧...

2019-03-20 17:20:16 725 2

原创 ETL - 什么是 Kettle 及如何安装

前(fei)言(hua)Kettle 使用突破性的元数据驱动方法,提供强大的提取、转换和加载(ETL)功能。那什么是 ETL 呢,维基百科概括的很好:ETLETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。......

2019-03-20 17:20:07 380

原创 ETL - 准备数据库

为了接下去的教程,我们需要先准备数据库,通过新旧数据库的迁移,来演示如何使用 PDI 工具。让我们创建如下数据库结构:旧数据库:订单表:CREATE TABLE `order` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `code` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8m...

2019-03-20 17:19:42 499

原创 RabbitMQ小记(二)——公平调度vs循环调度

公平调度 vs 轮询调度默认情况下,RabbitMQ将按顺序将每个消息发送给下一个使用者。平均每个消费者将获得相同数量的消息。这种分发消息的方式称为循环。在这种模式下,调度不一定像我们希望的那样工作。例如,在两个工人(消费者)的情况下,当信息很多或很少,会出现一个工人将不断忙碌,另一个将几乎不做任何工作的情况。RabbitMQ 对此一无所知,仍然会均匀地分发消息。这是因为RabbitMQ 只是在...

2019-03-02 16:23:18 789 1

原创 RabbitMQ小记(一)——消息确认和消息持久化

Message acknowledgment(消息确认)完成一项任务需要几秒钟。您可能想知道,如果其中一个使用者启动了一个很长的任务,但执行过程中挂了,只完成了部分任务,那么会发生什么情况。Spring AMQP 默认采用保守的消息确认方法。如果侦听器抛出异常,容器调用:channel.basicReject(deliveryTag, requeue)默认情况下,Requeue(重新分配到...

2019-03-02 16:03:59 234

原创 easypoi 导出 demo

List<exportDTO> list = new ArrayList<>();ExportParams params = new ExportParams();workbook = ExcelExportUtil.exportBigExcel(params, SupplierAfterExportDTO.class, list);File savefile = ...

2019-02-26 14:23:48 1109

原创 @Bean 和 @Autowired

@Bean 和 @Autowired 做了两件完全不同的事情:@Bean 告诉 Spring:“这是这个类的一个实例,请保留它,并在我请求时将它还给我”。@Autowired 说:“请给我一个这个类的实例,例如,一个我之前用@Bean注释创建的实例”。@SpringBootApplicationpublic class Application { @Autowired Boo...

2019-02-23 22:41:48 11621 2

原创 什么是 Spring Bean ?

Bean 定义在Spring中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。bean是由Spring IoC容器实例化、组装和以其他方式管理的对象。这个定义非常简明扼要,但是忽略了一个重要的东西——Spring IoC容器。让我们深入了解一下它是什么以及它带来的好处。IoC容器简单地说,控制反转,或简称IoC,是一个对象定义其依赖关系而不创建依赖关系的过程。此对象将...

2019-02-23 21:21:55 601

转载 SpringBoot 最简单的 HelloWorld 程序是如何从 main 方法一步一步跑起来的

在 Application 的 main 方法压根没有任何地方引用 HelloController 类,那么它的代码又是如何被服务器调用起来的呢?这就需要深入到 SpringApplication.run() 方法中看个究竟了。不过即使不看代码,我们也很容易有这样的猜想,SpringBoot 肯定是在某个地方扫描了当前的 package,将带有 RestController 注解的类作为 MVC...

2019-01-27 15:35:35 939

转载 com.alibaba.fastjson.JSONException: parse enum AppType error, value : {"type":3}

使用@JSONType后,无法反序列化,需要自己写反序列化,比如:package com.alibaba.json.bvt.serializer.enum_;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.annotation.JSONT...

2019-01-23 11:20:51 3730 1

原创 使用 Docker 运行 MySQL 数据库

安装 Docker for Windows拉取镜像:docker pull mysql启动 MySQL 实例:docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:latestCommandDescriptiondocker container lsList cont...

2019-01-11 15:05:01 366 2

原创 Java 基础笔记 - 泛型

泛型类在实例化时必须指出具体的类型,也就是向类型参数传值,格式为:className variable<dataType1, dataType2> = new className<dataType1, dataType2>();也可以省略等号右边的数据类型,即:className variable<dataType1, dataType2&amp

2019-01-04 16:41:42 315 1

原创 Java 静态变量和静态方法的总结

静态变量和静态方法的总结:一个类的静态方法只能访问静态变量;一个类的静态方法不能够直接调用非静态方法;如访问控制权限允许,静态变量和静态方法也可以通过对象来访问,但是不被推荐;静态方法中不存在当前对象,因而不能使用 this,当然也不能使用 super;静态方法不能被非静态方法覆盖;构造方法不允许声明为 static 的;局部变量不能使用static修饰。静态方法中不存在当前对...

2019-01-03 14:33:11 376

原创 如何在 vue.js 中实现点击标签进行排序

在 computed 属性中使用 lodash’s orderBy (或者可能是 sortBy):下载 lodash.js代码如下:<p v-for="user in orderedUsers">{{ user.name }}</p><scrip

2018-12-05 14:45:16 2712

原创 如何在 vue.js 中实现鼠标 hover(悬停)改变 background-color

vue.js 事件处理用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。代码如下:<div id="demo"> <div @mouseover="mouseOver" @mouseleave="mouseLeave" :style=&am

2018-12-05 14:25:47 31431 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除