自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 kettle实现SQL中的union合并数据(追加流)

以前项目稍微比较复杂,需要在多个不同的数据库中抽取数据,然后实现数据合并,因为数据不在同一个库中,实现合并只能利用多个表输入控件先拿到数据,然后再在Kettle中合并,使用过kettle的数据合并控件,一言难尽,当初踩了很多坑,已经忘记了,后来终于找到一个不错的方式实现了想要达到的SQL中的union功能。下面举一个简单的例子TB_Aaabb111TB_B...

2019-10-15 17:49:17 8112 1

原创 MongoDB日期处理

MongoDB日期处理,截取年月日查询

2022-05-21 16:11:34 1101

原创 MongoDB字符串截取和分组统计

Mongodb对元素中的字符串内容进行截取,并进行分组统计

2022-05-21 15:58:55 1954

原创 mysql的json解析函数JSON_EXTRACT

mysql的json解析函数JSON_EXTRACTMYSQl自带的解析函数JSON_EXTRACT,用JSON_EXTRACT函数解析出来的函数会包含双引号例子t_table表里面source字段是以json格式写的值为{ "info" : { "color" : "白色", "inner_color" : "米色", "number" : "12345678", "registration_date" : "2012-11" },"accessory" : [ "1", "4", "5", "

2022-05-11 15:29:58 2287

原创 MYSQL从库延迟提高从库效率

主从复制延期设置从库的sycn_binlog提高复制效率Mysql配置参数sync_binlog说明MySQL提供一个sync_binlog参数来控制数据库的binlog刷到磁盘上去。默认,sync_binlog=0,表示MySQL不控制binlog的刷新,由文件系统自己控制它的缓存的刷新。这时候的性能是最好的,但是风险也是最大的。因为一旦系统Crash,在binlog_cache中的所有binlog信息都会被丢失。如果sync_binlog>0,表示每sync_binlog次事务提交,MyS

2021-02-09 11:14:13 328

原创 mysql锁和阻塞排查

mysql锁和事务排查SELECT NOW(), (UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(a.trx_started)) diff_sec, b.id, b.user, b.host, b.db, c.lock_type, c.lock_table, c.lock_indexFROM information_schema.innodb_trx a INNER JO

2021-02-09 11:01:43 366

原创 MYSQL的字段内容含换行符的查询和处理

导入一批数据到MySQL时,由于导入表中title字段(varchar类型)的数据含有换行符,在前端显示的时候,没有显示换行而是把换行符显示出来“\n”。现在需求是替换掉数据库里面存的换行符。导入title内容:Lr调色教程㊳|???雪山森系|电影风Hi查询含有换行符的数据SELECT * from t_tablewhere title LIKE '%\\\\n%';数据库显示的隐藏的换行符:Lr调色教程㊳|???雪山森系|电影风\n\nHi替换换行符为空格UPDATE ct_tab

2021-01-30 17:08:37 5259

原创 kettle信息发送钉钉

由于其他的作业比较多,想要在job中加入一个转化发送消息到钉钉,其他的配置说明直接获取系统的信息。这样也避免直接修改其他的转换和大量的工作量。步骤:1、新建一个转换拉取获取系统信息、获取变量、JavaScript代码、获取access_token组件。2、获取系统信息设置拿到需要的信息,比如作业的读写更新删除行数,job的日志内容这个日志内容同在作业执行页面下输出的日志,所以可以在执行作业时选择是详细日志、基本日志还是错误日志。3、获取变量获取变量主要是想要去拿到job的名称,文件名。按

2021-01-27 18:28:42 1088

原创 kettle当转化出错时发送邮件

kettle不管是在job还是转换时出错之后如果没有做错误处理那么所有的程序都会停止,所以在设置发送邮件时只设置一个在运行出错时就不会收到邮件。作业设置作业的设置如下:当转换正常时程序会执行发送邮件3不执行错误时发送邮件,报错时执行的是错误时发送邮件。正常和错误的发送邮件设置一样,节点链接方式改为错误时执行即可。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ueq3gYv-1598436367210)(https://imgblog.csdnimg.cn/2020

2020-08-26 18:07:42 1515

原创 kettle设置邮件发送

1、job中拖一个start–发送邮件控件2、发送邮件控件填写端口一般默认是253、设置邮件消息,不需要可以不用设置

2020-08-26 18:03:53 997

原创 kettle默认情况下把空字符串当作NULL处理

kettle默认情况下把空字符串当作NULL处理,这个问题在sqlserver会存在,最终只好找到修改配置的办法:在C:\Users\用户名.kettle目录中找到kettle.properties文件,增加:KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y重启Kettle,就可以了。...

2020-08-26 16:09:27 936

原创 自增序列作为主键时出现违反约束条件问题

这一类的问题主要是插入数据时系统会给一个自增的序列号,但是这个自增的序列号已经存在表中,比如写入的时候数据库给的id值是10,但是表中已经有10这个id了,这个时候就会出现违反约束条件问题插入已存在的id,导致插入数据失败,可以查询当前插入的序列号确认是不是这类问题。有时候会出现插入第一次失败多执行几次就成功,大多数也是这个问题引起的。解决方法如下。1、查看当前插入的序列号SELECT IDENT_CURRENT('TABLE_NAME');2、查看表中最大的id值为多少SELECT MAX(id

2020-08-25 12:02:19 816

原创 Xtrabackup增量备份的恢复

环境:Linux 服务器:1.135增量备份的恢复主要3个步骤1、恢复完全备份2、恢复增量备份到完全备份(开始恢复的增量备份要添加–redo-only参数,到最后一次增量备份去掉–redo-only参数)3、对整体的完全备份进行恢复,回滚那些未提交的数据备份在另外一台测试上面做了一个全量备份和两个增量的备份,把数据传到1.135上开始恢复。全量备份的文件目录是:/data/mysql_backup/xtrabackup/full/2020-08-19_15-12-39/ 增量备份的文件目录

2020-08-25 11:47:06 394

原创 Xtrabackup全量备份和恢复实战

环境:Linux服务器:1.135全量备份创建一个文件夹存放备份文件[root@135mysql /data/mysql_backup/xtrabackup]# mkdir xtraback_up_135准备全量备份,备份文件放到/data/mysql_backup/xtrabackup/xtraback_up_135/[root@135mysql ~]# innobackupex \--defaults-file=/etc/my.cnf --user=root --password=12

2020-08-25 11:30:14 316

原创 SQL server存储模糊查询

SQL存储模糊查询查询执行命令

2020-08-24 17:39:01 187

原创 kettle动态SQL写法--上一个流程获取值做为下一个流程的条件

不同表数据作为过滤条件过滤查询想要实现逻辑是通过上一个流程获取条件放入到下一个流程中抽取数据。表一:tab1表二:tab2根据表一aa字段值过滤表二。select * from tab2 where aa in (select aa from tab1);流程表一数据输入表二数据输入过滤过滤条件用的是用"?"占位符表示传入的变量备注:一、如果传过来的变量不止一行数据必须勾选上执行每一行,不然执行会失败。因为勾选执行每一行,那么执行SQL的次数就是前一个流程输出的值的总行数,

2020-08-10 15:17:45 3556

原创 kellte定时任务-后台运行配置方式bat (下)

初步的配置查看:kellte定时任务-后台运行配置方式bat (上)日志按日期生成在windows上时间参数获取set "ymd=%date:~,4%-%date:~5,2%-%date:~8,2%"echo %ymd% cmd上运行的效果如果日志需要按天分可以修改bat内容在里面添加set “ymd=%date:,4%-%date:5,2%-%date:~8,2%”,并且在日志...

2019-11-15 18:14:31 389

原创 kellte定时任务-后台运行配置方式bat (上)

在数据仓库环节ETL定时任务是一个必不可少的一个环节,因为定时任务取决与你的ETL程序抽取业务数据的频率程度(日、周、季、月、年),一般情况下都采用T+1方式来抽取数据。关于Kettle定时任务需要调用脚本来执行“作业”与“转换”对应脚本名“Kitchen”与“Pan”,如果是NT系统则找.bat结尾,Linux系统则找.sh结尾相应脚本。默认情况下采用T+1方式抽取数据到目标表,也可以通过...

2019-11-15 18:12:53 709

原创 SQL server日期转换

SELECT DATEADD(mm, DATEDIFF(m, 0, getdate()), 0) '当月第一天' ,DATEADD(mm, DATEDIFF(m, 0, getdate())+1, 0) '下月第一天' ,DATEADD(ms, -2, DATEADD(mm, DATEDIFF(m, 0, getdate()) + 1, 0)) '当月最后时间点' ...

2019-11-14 19:35:58 215

原创 SQL server利用CTE删除重复数据且保留一条

想要根据表中的某一个字段或者是其他几个字段删除重复的数据并且保留一条,可以用CTE+row_number的方式做删除例子:--创建临时表CREATE TABLE #tt ( id INT IDENTITY(1, 1) ,aa NVARCHAR(5) ); --插入数据 INSERT INTO #tt ( aa )VALUES ...

2019-11-14 19:22:56 347

原创 解决触发器批量插入时只有第条一数据生效问题

如果是批量插入数据则要声明一个表来拿到这批插入的数据。如果只是声明一个变量值,则只能拿到第一条数据,所以这就会导致批量数据插入时触发器无效的原因。实际例子:--创建表CREATE TABLE test_1 ( FID INT ,TYPEID VARCHAR(36) ); -- 添加一个插入数据后触发的触发器 CREATE TRIGGER TG_test...

2019-11-14 19:03:36 1863

原创 SQL Server按5分钟分组统计数据

–先把时间分组然后标号– 分组划分:(小时*60+分钟)/ 分钟值SELECT ( DATEPART(hh,GETDATE()) * 60 + datepart(mi,GETDATE()) ) /5例子:把时间分组放到临时表--创建临时表获取分组区域CREATE table #tab(start_time DATETIME,end_time DATETIME,num INT...

2019-11-14 18:35:52 1487

翻译 kettle取昨天时间&设置任意时间变量案例

参考: https://blog.csdn.net/xiaohai798/article/details/418678351、新建转换-核心对象-输入-获取系统信息拖动到右边的面板中-双击编辑获取系统信息-写入名称-选择类型,可以选择系统日期2、核心对象 - 脚本-JavaScript代码 拖到右边面板中- 点击获取系统信息 按住shift拖向JavaScript代码-双击编辑JavaScr...

2019-10-29 12:13:41 1566

原创 Kettle输入流(表输入、CSV)

Kettle表输入,简单从CSV表将数据插入/更新到数据准备CSV文件,具体字段如下namesexago店小二男19阿花女19阿妹女20花花女31、新建一个转换,命名为name_test_csv,保存到任意一个地方2、选择核心对象,打开输入,从输入里面找到CSV文件输入拖动到右边的面板中3、双击编辑CSV文件输入选择文件,获取字...

2019-10-29 12:00:08 1266

原创 kettle列转行

kettle上的列转化的控件名称叫行转列,翻译错误导致的。行转列的设置举一个简单的例子原数据为aabbccdd11b1c1d22bunll2d33b3cnull需要转换成的样式aabb11b22b33b1c1d3cnull1、kettle流程2、列转化的设置(行转列...

2019-10-29 11:32:56 683

原创 Kettle创建一个简单的转换文件

新建转换1、右击转换 -> 新建DB连接建立数据库连接的过程与其他数据库管理软件连接数据库类似。例子:连接SQLServer服务器右击DB连接 -> 新建->填写设置和连接名称->点击测试查看是否连接成功->点击确认保存连接SQLServer服务有两种方式MS SQL Server和MS SQL Server(Native)这两种方式连接有些差异...

2019-10-16 14:35:25 913

翻译 kettle基本信息介绍

Kettle介绍Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle目前包含五个产品:Spoon、Pan、Chef、Kitchen、Encr。SPOON: 是一个图形用户界面,允许你通过图形界面来设计...

2019-10-16 11:14:46 338

翻译 如何查看jdk安装路径

1.开始–点击运行(或者搜索),输入:cmd2.然后在命令提示符中,输入:java -version查看安装的jdk版本号 假如看到有版本提示那么安装成功3.如果忘记了java jdk的安装路径,可在命令提示符中输入:java -verbose ,在命令行的最后显示安装路径C:\Program Files\Java\jre6\binC:\Program Files\Java\jre...

2019-10-16 10:46:12 7657

原创 kettle安装部署

kettle安装部署kettle是绿色版本的不需要安装1、最新版本的下载地址为:http://community.pentaho.com/projects/data-integration/2、打开kettle。首先解压下载下来的压缩包如:pdi-ce-7.1.0.0-12.zip,解压之后打开文件夹找到Spoon.bat 然后打开3、在数据库链接的过程中,可能会报某个数据库连接找不...

2019-10-15 17:17:58 183

空空如也

空空如也

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

TA关注的人

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