自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wzy0623的专栏

数据库、数据仓库、大数据

原创 Hive实现自增列的两种方法

多维数据仓库中的维度表和事实表一般都需要有一个代理键,作为这些表的主键,代理键一般由单列的自增数字序列构成。Hive没有关系数据库中的自增列,但它也有一些对自增序列的支持,通常有两种方法生成代理键:使用row_number()窗口函数或者使用一个名为UDFRowSequence的用户自定义函数(U...

2016-12-27 10:02:46

阅读数 32364

评论数 0

原创 Oracle中的三种 UPDATE FROM 的解决方案

表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据。象sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来。虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就可以在update的表达式中引用要更新的表以外的其它数据。例...

2016-12-29 14:00:04

阅读数 22326

评论数 0

原创 从一个用户expdp导出再impdp导入到另一个用户

如果想导入的用户已经存在:1. 导出用户 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp2. 导入用户 impdp user2/pass2 directory=dumpdir dumpfile=user1.dmp REMAP_SCHEM...

2016-12-29 09:43:36

阅读数 19225

评论数 2

原创 使用shell并行执行多个脚本

有没有一种比较通用的并行执行多个SQL脚本的方法呢?每种数据库都提供命令行接口执行SQL语句,因此最容易想到的就是通过初始化多个并发的会话并行执行,每个会话运行一个单独的查询,用来抽取不同的数据部分。以Oracle例如,假设要从订单表抽取数据,订单表已经是按月做了范围分区,分区名称是orders_...

2016-12-28 11:31:26

阅读数 14705

评论数 0

原创 四种CDC方案比较

时间戳方式快照方式触发器方式日志方式能区分插入/更新否是是是周期内,检测到多次更新否否是是能检测到删除否是是是不具有侵入性否否否是支持实时否否是是需要DBA否否是是不依赖数据库是是否否

2016-12-27 16:05:20

阅读数 13038

评论数 1

原创 Kettle之“获取文件名”

收到的需求是这样的:有几百个文本文件,每个文件内容的格式相同,都是有固定分隔符的两列,每个文件有几千行记录。现在需要把这些文件的内容导入一个表,除了文件中的两列,还要存一列记录对应的文件名。  作为一个搞数据库的,导入数据本来是小事一桩,可这有几百个文件要手工逐个处理未免太麻烦了,于是想起了Ket...

2016-12-26 11:07:01

阅读数 12353

评论数 0

原创 在Kettle里使用时间戳实现变化数据捕获(CDC)

1. 建立测试表,插入数据。use test; create table t_color ( id int unsigned not null auto_increment primary key, color varchar(10), create_...

2016-12-26 14:03:21

阅读数 12290

评论数 3

原创 在Kettle里使用参照表进行数据校验(流查询实现)

参照表一个常见的用途就是做数据的查询和检验。提供一个输入字段,如果输入字段里的值没有匹配上,就给对应的数据行做一个错误标志。下面使用城市和邮政编码查询做个例子,演示如何使用计算器步骤和查询步骤来判断地址和邮政编码是否匹配。完整的转换如下图:  首先,需要一些输入数据,本例使用了“自定义常量数据”步...

2016-12-26 16:10:19

阅读数 11191

评论数 1

原创 Oracle中文转拼音函数

    最近两个项目都提出从中文转拼音的需求。我以前的做法是:从微软拼音输入法导出字库,建立中文拼音对照表,然后写一个函数从对照表查拼音。这种方法虽然思路简单,但是返回拼音的错误率太高,而且对每个字都要去查一遍3万记录的对照表,效率也不高。   这两天重新写了一个函数来完成此功能,该函数利用了O...

2016-12-28 15:16:45

阅读数 10007

评论数 7

原创 Oracle sqlldr 如何导入一个日期列

1.LOAD DATAINFILE *INTO TABLE testFIELDS TERMINATED BY X'9'TRAILING NULLCOLS(    c2 "upper(:c2)",    c3 date "yyyymmdd",    c1 &q...

2016-12-29 13:16:25

阅读数 6740

评论数 0

原创 数据质量的六大评估标准(书摘备查)

准确性:哪些数据不能正确的描述对象的属性或已经过期? 合规性:哪些数据是以非标准格式存储的? 一致性:哪些数据值提供了冲突信息? 重复性:哪些数据记录是重复的记录? 及时性:关键数据是否及时传送到目标应用? 完备性:哪些数据根本就不存在?

2016-12-29 10:54:54

阅读数 6290

评论数 0

原创 Kettle之“检查表是否存在”

想用Kettle实现一个非常简单的需求,从MySQL向Oracle导入一个表的数据,如果在oracle里表不存在,先建表再导入数据。这个功能看似非常简单,但对于刚开始接触Kettle的用户来说,可能会有些疑惑。Kettle的转化和作业中都有“检查表是否存在”步骤,但是如果要实现上述的需求,只能用作...

2016-12-26 10:39:30

阅读数 5570

评论数 1

原创 Oracle里二进制与十进制的相互转换

Oracle里有内建函数bin_to_num可以将二进制数转换为十进制数,但这个函数的入参是个数不定的0或1:[sql] view plain copySELECT BIN_TO_NUM (1, 1, 1, 1, 0, 1, 1) FROM DUAL;   有时候入参使用一个二进制字符串会更加方便...

2016-12-28 15:44:35

阅读数 4653

评论数 0

转载 在ORACLE中使用DOM方式解析XML

XML格式:                     Montgomery Burns                     Release the Hounds! 解析代码CREATE OR REPLACE FUNCTION idAttributeOfDocElement(xmldoc VAR...

2016-12-29 10:38:38

阅读数 4546

评论数 0

原创 数据可视化简介

数据可视化在维基百科上是这样定义的:指一种表示数据或信息的技术,它将数据或信息编码为包含在图形里的可见对象,如点、线、条等,目的是将信息更加清晰有效地传达给用户,是数据分析或数据科学的关键技术之一。简单地说,数据可视化就是以图形化方式表示数据。决策者可以通过图形直观地看到数据分析结果,从而更容易理...

2016-12-29 13:23:40

阅读数 4372

评论数 0

原创 在Kettle里使用参照表进行数据校验(子转换实现)

有一种参照表叫数据确认主表。性别编码就是这种参照表的例子。有的系统使用字母M、F和U,分别代表男、女、未知;有的系统使用NULL来代表未知的性别;有的系统使用Male和Female代表男、女;而有的系统则使用完全不同的编码,如0(男)、1(女)或0(未知)、1(男)、2(女),等等。还有更复杂的情...

2016-12-26 16:33:31

阅读数 4151

评论数 0

原创 Hive进行身份证合法性校验

身份证号码格式校验是很多系统在数据集成时的一个常见需求,我们以18位身份证为例,使用一个Hive查询实现身份证号码的合法性验证。该查询结果是所有不合规的身份证号码。按以下身份证号码的定义规则建立查询。  身份证18位分别代表的含义,从左到右方分别表示:1-2 省级行政区代码。3-4 地级行政区划分...

2016-12-27 10:10:07

阅读数 4141

评论数 2

原创 Oracle 触发器中修改字段值

有个需求看着很简单,但也查了许多资料,还是记录下来。需求是这样的:根据一个表中的某些被修改的字段修改其它字段,用触发器实现。示例代码如下:CREATE TABLE t ( ID INT, update_time DATE, other_col VARCHAR2(20) );...

2016-12-28 16:32:03

阅读数 4126

评论数 0

转载 多维数据库概述之一---多维数据库的选择

1. 多维数据库简介多维数据库(Multi Dimesional Database,MDD)可以简单地理解为:将数据存放在一个n维数组中,而不是像关系数据库那样以记录的形式存放。因此它存在大量稀疏矩阵,人们可以通过多维视图来观察数据。多维数据库增加了一个时间维,与关系数据库相比,它的优势在于可以提...

2016-12-28 15:34:22

阅读数 3958

评论数 0

原创 MySQL执行binlog的两种方法

维护mysql的时候,总会遇到数据库恢复的例子。如果把备份集恢复出来相对比较简单。然而如果遇到恢复到时间点的例子,把一个MySQL实例恢复出来之后,需要执行binlog做增量恢复。  常见的办法是用mysqlbinlog解析binlog,将解析出来的内容重定向到mysql命令行执行。在MySQL手...

2016-12-27 16:29:02

阅读数 3861

评论数 1

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