自定义博客皮肤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的专栏

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

  • 博客(431)
  • 论坛 (3)
  • 收藏
  • 关注

原创 Kettle构建Hadoop ETL实践(九):事实表技术

目录一、事实表概述二、周期快照1. 修改数据仓库模式2. 创建快照表数据装载Kettle转换三、累计快照1. 修改数据库模式2. 修改增量抽取销售订单表的Kettle转换3. 修改定期装载销售订单事实表的Kettle转换4. 修改定期装载Kettle作业6. 测试四、无事实的事实表1. 建立新产品发布的无事实事实表2. 初始装载无事实事实表3. 修改定期装载Kettle作业4. 测试定期装载作业五、迟到的事实1. 修改数据仓库模式2.

2020-11-25 16:20:30 3241 5

原创 Kettle构建Hadoop ETL实践(八-2):维度表技术

目录4. 递归五、退化维度1. 退化订单维度2. 修改定期装载脚本3. 测试修改后的定期装载六、杂项维度1. 新增销售订单属性杂项维度2. 修改定期装载Kettle作业3. 测试修改后的定期装载七、维度合并1. 修改数据仓库模式2. 修改定期装载Kettle作业3. 测试修改后的定期装载八、分段维度1. 年度销售订单星型模式2. 初始装载3. 定期装载九、小结4. 递归 数据仓库中的关联实体经常表现为一种“父—子”...

2020-11-09 11:39:08 220

原创 Kettle构建Hadoop ETL实践(八-1):维度表技术

目录一、增加列1. 修改数据库模式2. 修改Sqoop作业项3. 修改定期装载维度表的转换4. 修改定期装载事实表的转换5. 测试二、维度子集1. 建立包含属性子集的子维度2. 建立包含行子集的子维度3. 使用视图实现维度子集三、角色扮演维度1.修改数据库模式2. 修改Kettle定过期装载作业3. 测试4. 一种有问题的设计四、层次维度1. 固定深度的层次2. 多路径层次3. 参差不齐的层次 前面文章中,我们用K...

2020-11-09 10:58:46 4938

原创 Kettle构建Hadoop ETL实践(七):定期自动执行ETL作业

目录一、使用crontab1. crontab权限2. crontab命令3. crontab文件4. crontab示例5. crontab环境6. 重定向输出二、使用Oozie1. Oozie体系结构2. CDH 6.3.1中的Oozie3. 建立定期装载工作流(1)修改资源配置(2)启动Sqoop的share metastore service(3)连接metastore创建sqoop job(4)定义工作流(5)部署工作流(6)建立

2020-10-16 18:59:50 1860 3

原创 Kettle构建Hadoop ETL实践(六):数据转换与装载

目录一、数据清洗1. 处理“脏数据”2. 数据清洗原则3. 数据清洗实例(1)身份证号码格式检查(2)去除重复数据(3)建立标准数据对照表二、Hive简介1. Hive的体系结构2. Hive的工作流程3. Hive服务器(1)配置HS2(2)临时目录管理(3)HS2的Web用户界面(Hive2.0.0引入)(4)查看Hive版本4. Hive优化三、初始装载1. 系统初始化2. 装载过渡区3. 装载维度表4. 装载事...

2020-10-13 16:44:25 2731 1

原创 Kettle构建Hadoop ETL实践(五):数据抽取

目录一、Kettle数据抽取概览1. 文件抽取(1)处理文本文件(2)处理XML文件2. 数据库抽取二、变化数据捕获1. 基于源数据的CDC2. 基于触发器的CDC3. 基于快照的CDC4. 基于日志的CDC三、使用Sqoop抽取数据1. Sqoop简介2. 使用Sqoop抽取数据3. Sqoop优化(1)调整Sqoop命令行参数(2)调整数据库四、小结 本篇介绍如何利用Kettle提供的转换步骤和作业项实现Hadoop数...

2020-09-29 14:37:17 1097 1

原创 Kettle构建Hadoop ETL实践(四):建立ETL示例模型

目录一、业务场景1. 操作型数据源2. 销售订单数据仓库模型设计二、HIVE相关配置1. 选择文件格式2. 选择表类型3. 支持行级更新4. Hive事务支持的限制三、建立数据库表1. 源数据库表2. RDS库表3. TDS库表四、装载日期维度数据五、小节 从本篇开始,介绍使用Kettle实现Hadoop数据仓库的ETL过程。我们会引入一个典型的订单业务场景作为示例,说明多维模型及其相关ETL技术在Kettle上的具体实现。本篇首先介...

2020-09-04 18:03:37 592

原创 Kettle构建Hadoop ETL实践(三):Kettle对Hadoop的支持

目录一、Hadoop相关的步骤与作业项二、连接Hadoop1. 连接Hadoop集群(1)开始前准备(2)配置步骤2. 连接Hive3. 连接Impala4. 建立MySQL数据库连接三、导入导出Hadoop集群数据1. 向HDFS导入数据2. 向Hive导入数据3. 从HDFS抽取数据到MySQL4. 从Hive抽取数据到MySQL四、执行HiveQL语句五、执行MapReduce1. 生成聚合数据集(1)准备文件与目录(2)建立一个

2020-09-01 15:26:57 1140 8

原创 Kettle构建Hadoop ETL实践(二):安装与配置

目录一、安装1. 安装环境(1)选择操作系统(2)安装规划2. 安装前准备(1)安装Java环境(2)安装GNOME Desktop图形界面(3)安装配置VNC远程控制(4)在客户端安装vncviewer3. 安装运行Kettle(1)下载和解压(2)运行Kettle程序(3)创建Spoon快捷启动方式二、配置1. 配置文件和.kettle目录(1).spoonrc(2)jdbc.properties(3)kettle.properti

2020-08-24 18:18:05 1026

原创 快速安全清理MySQL binlog

一、问题提出 之前写过一篇名为“快速安全删除MySQL大表”的博客,讲解如何在不影响线上数据库服务的前提下删除大表。实际上清理MySQL binlog也会遇到同样的问题。例如,我们每个binlog文件的大小是1G。最初的做法是,每天凌晨2:30执行下面的操作清理10天前binlog:mysql -uroot -p123456 -s /data/3306/mysqldata/mysql.sock -e "purge master logs before date_sub( now( )...

2020-08-21 14:47:32 1115

原创 Kettle构建Hadoop ETL实践(一):ETL与Kettle

目录一、ETL基础1. 数据仓库架构中的ETL2. 数据抽取(1)逻辑抽取(2)物理抽取(3)变化数据捕获3. 数据转换4. 数据装载5. 开发ETL系统的方法二、ETL工具1. ETL工具的产生2. ETL工具的功能(1)连接(2)平台独立(3)数据规模(4)设计灵活性(5)复用性(6)扩展性(7)数据转换(8)测试和调试(9)血统和影响分析(10)日志和审计三、Kettle简介1. Kettle设计原则2

2020-08-13 18:21:32 2293 2

转载 分布式之数据库和缓存双写一致性方案解析

引言为什么写这篇文章?首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于是博主战战兢兢,顶着被大家喷的风险,写了这篇文章。文章结构本文由以下三个部分组成1、讲解缓存更新策略2、对每种策略进行缺点分析3、针对缺点给出改进方案正文先做一

2020-07-30 16:55:10 261

原创 新书上架,毛遂自荐!

all in one:全面介绍复制、中间件、集群、存储四类各种MySQL高可用技术。 step by step:各种方案安装配置部署的详细步骤。 troubleshooting and test:问题复现、解决与性能对比测试。

2020-07-20 14:49:38 558

原创 DBeaver连接hive、impala、phoenix、HAWQ、redis

目录一、DBeaver简介二、下载与安装三、连接hive四、连接impala五、连接phoenix六、连接HAWQ七、连接redis 伴随着技术的不断发展与进步,我们会接触和使用越来越多的数据源。从经久不衰的MySQL、Oracle、SQLserver、DB2等关系数据库,到方兴未艾的MongoDB、Redis、Cassandra等NoSQL产品,再到屡见不鲜的各种大数据组件,如Hive、Impala、HBase、Phoenix、Spark,以及林林总总的时序数...

2020-06-15 11:38:17 1778 1

原创 Kettle与Hadoop(九)提交Spark作业

实验目的:配置Kettle向Spark集群提交作业。实验环境:Spark History Server:172.16.1.126Spark Gateway:172.16.1.124172.16.1.125172.16.1.126172.16.1.127PDI:172.16.1.105Hadoop版本:CDH 6.3.1Spark版本:2.4.0-cdh6.3.1PDI版本:8.3Kettle连接CDH参见“https://wxy0327.blog.csdn.net/a

2020-06-10 10:29:06 685

原创 Kettle与Hadoop(八)执行Oozie作业

1. 打开PDI,新建一个作业,如图1所示。图12. 编辑'Oozie job executor'作业项,如图2所示。图2 说明:CDH631是已经建好的Hadoop集群连接,参见“https://wxy0327.blog.csdn.net/article/details/106406702#%E4%BA%8C%E3%80%81%E8%BF%9E%E6%8E%A5Hadoop%E9%9B%86%E7%BE%A4”。 'Enable Blocking'选项将阻止转换的其...

2020-06-09 10:12:55 491

原创 Kettle与Hadoop(七)执行Sqoop作业

目录一、Sqoop export二、Sqoop import一、Sqoop export1. 建立一个作业,将HDFS文件导出到MySQL数据库。(1)打开PDI,新建一个作业,如图1所示。图1(2)编辑'Sqoop export'作业项,如图2所示。图2 说明:CDH631是已经建好的Hadoop集群连接,参见“https://wxy0327.blog.csdn.net/article/details/106406702#%E4%BA%8C%E...

2020-06-08 10:17:55 513 1

原创 Kettle与Hadoop(六)执行HiveQL语句

1. 建立hive表,导入原始数据,过程参考https://blog.csdn.net/wzy0623/article/details/106471124#2.%20%E5%90%91Hive%E5%AF%BC%E5%85%A5%E6%95%B0%E6%8D%AE。2. 建立一个作业,查询hive表,并将聚合数据写入一个hive表。(1)打开PDI,新建一个作业,如图1所示。图1(2)编辑'SQL'作业项,如图2所示。图2 说明:hive_cdh631是已经建好...

2020-06-04 10:20:05 296

原创 Kettle与Hadoop(五)执行MapReduce

目录一、示例1——格式化原始web日志1. 准备文件与目录2. 建立一个用于Mapper的转换3. 建立一个调用MapReduce步骤的作业,使用mapper转换,仅运行map作业。4. 执行作业并验证输出二、示例2——生成聚合数据集1. 准备文件与目录2. 建立一个用于Mapper的转换3. 建立一个用于Reducer的转换4. 建立一个调用MapReduce步骤的作业,调用mapper和reducer转换。5. 执行作业并验证输出参考:一、示例1——格

2020-06-02 15:16:14 333

原创 Kettle与Hadoop(四)导入导出Hadoop集群数据

目录一、向Hadoop集群导入数据(Hadoop copy files)1. 向HDFS导入数据2. 向Hive导入数据二、从Hadoop集群抽取数据1. 把数据从HDFS抽取到RDBMS2. 把数据从Hive抽取到RDBMS参考:一、向Hadoop集群导入数据(Hadoop copy files)1. 向HDFS导入数据从下面的地址下载web日志示例文件,解压缩后的weblogs_rebuild.txt文件放到/root/big_data目录下。http://wi

2020-06-01 14:14:59 394

原创 Kettle与Hadoop(三)连接Hadoop

目录一、环境说明二、连接Hadoop集群三、连接Hive四、连接Impala五、后续(建立MySQL数据库连接) Kettle可以与Hadoop协同工作。让我们从简单的开始,本文介绍如何配置Kettle访问Hadoop集群(HDFS、MapReduce、Zookeeper、Oozie等),以及Hive、Impala等数据库组件。所有操作都以操作系统的root用户执行。一、环境说明1. Hadoop 已经安装好4个节点的CDH 6.3.1,IP地...

2020-05-28 16:04:06 796

原创 Kettle与Hadoop(二)Kettle安装配置

目录一、安装Java二、安装Kettle三、运行Kettle程序1. 安装Linux图形环境2. 安装配置VNC Server3. 在客户端使用vncviewer连接系统4. 执行spoon.sh四、给Spoon创建一个桌面快捷启动方式五、配置1. 配置文件和.kettle目录(1).spoonrc(2)jdbc.properties(3)kettle.properties(4)kettle.pwd(5)repositories.xml(6)s

2020-05-28 10:36:06 850

原创 Kettle与Hadoop(一)Kettle简介

目录一、Kettle设计原则二、转换1. 步骤2. 转换的跳3. 并行4. 数据行5. 数据转换(1)Date和String的转换(2)Numeric和String的转换(3)其它转换三、作业1. 作业项2. 作业跳3. 多路径和回溯4. 并行执行5. 作业项结果四、转换或作业的元数据五、数据库连接1. 一般选项2. 特殊选项3. 关系数据库的力量4. 连接和事务5. 数据库集群六、工具七、资源库八、虚拟

2020-05-26 14:59:08 585

原创 Kettle工具——Spoon、Kitchen、Pan、Carte

目录1. Spoon2. Kitchen和Pan(1)命令行参数(2)例子3. Carte Kettle里有不同的工具,用于ETL的不同阶段。主要工具如下:Spoon:图形化工具,用于快速设计和维护复杂的ETL工作流。 Kitchen:运行作业的命令行工具。 Pan:运行转换的命令行工具。 Carte:轻量级的(大概1MB)Web服务器,用来远程执行转换或作业,一个运行有Carte进程的机器可以作为从服务器,从服务器是Kettle集群的一部分。1. Spoo...

2020-05-25 10:39:42 450

原创 Kettle数据库连接中的集群与分片

目录1. 在数据库连接中使用集群2. 创建数据库分区schemas3. 启用数据库分区4. 例子(1)将三个mysql实例的数据导入到另一个mysql实例(2)将一个mysql实例的数据分发到三个mysql实例(3)将三个mysql实例的数据导入到另三个mysql实例(4)将三个mysql实例的数据导入相同实例的不同表中 本文介绍Kettle 8.3中数据库分区的使用。1. 在数据库连接中使用集群 在Kettle的数据库连接对话框中,可...

2020-05-21 17:22:49 336

原创 彻底搞清 Kettle 数据分发方式与多线程

Kettle转换中,各步骤之间行集(row set)的发送有分发和复制两种方式,本文讨论这两种方式的区别,以及它们与Kettle多线程的关系。我们用一个简单的例子辅助说明,Kettle版本为8.3。定义一个转换,以t1表作为输入,输出到表t2和t3。t1表中有1-10十个整数。当创建第二个跳(hop)时,会弹出一个警告窗口,如图1所示。图1 表输入步骤将向两个表输出步骤发送数据行,此时可以选择采用分发或复制两种方式之一,缺省为复制方式。分发方式执行后,t2、t3表的数...

2020-05-20 16:58:50 998

原创 phoenix中日期与时间戳的相关转换

日期转时间戳:select to_char(to_number(to_date('2020-03-01','yyyy-MM-dd','GMT+8'))/1000,'##########');时间戳转日期:to_char(CONVERT_TZ(to_date('1582992000','s'), 'UTC', 'Asia/Shanghai'),'yyyy-MM-dd HH:mm:ss...

2020-04-24 13:51:40 1444

原创 使用MySQL的rlike判断字符串是否匹配

问题提出:表user_experience_wealth_log改名为user_experience_wealth_log_new,该表涉及若干存储过程。为了避免遗漏,需要确认所有相关过程都做了修改,验证方法为不存在包含user_experience_wealth_log的存储过程。问题分析:不能使用简单的 not like '%user_experience_wealth_log%'...

2020-04-24 09:00:57 941

原创 求二进制中1的个数之——HAKMEM算法

问题很简单,求一个整数的二进制中1的个数。方案一:select @i:= 50 i,@i_bin:=bin(@i) i_bin, length(@i_bin)-length(replace(@i_bin,'1','')) len_1;方案二:select @tmp:=50 - ((50 >> 1) & 3681400539) - ((50>>2...

2020-04-16 09:32:46 170 1

原创 MySQL找出未提交事务的信息

目录一、processlist中的未提交事务二、information_schema.innodb_trx中的未提交事务三、performance_schema.events_statements_current中的未提交事务参考: 我们经常会碰到这样的情况,某个事务执行完了未提交,后续再来一个DDL和DML操作,导致后面的session要么处于waiting f...

2020-03-28 08:14:05 342

原创 redis手工分片

目录一、redis环境二、redis手工分片步骤1. 配置级联复制2. 去掉老哨兵监控3. 停止新实例从老实例的复制4. 添加新哨兵监控5. 重启新哨兵6. 添加老哨兵监控7. 重启老哨兵 随着数据量越来越大,一个redis实例可能需要分成多个以形成数据分片。此时通常可以采取两种方式操作:一是启用cluster模式自动完成数据分片;二是手工分片...

2020-03-25 05:43:38 290

原创 在CDH 6.3.1上安装HAWQ 2.4.0

目录一、安装环境二、选择HAWQ主机三、安装前准备1. 建立gpadmin用户和HAWQ主目录2. 创建HAWQ的本地数据目录3. 安装依赖包三、安装HAWQ1. 下载安装包2. 解压并安装四、配置HAWQ1. 创建HAWQ的HDFS数据目录2. 修改配置文件3. 添加slaves4. 将配置文件复制到其它主机五、配置OS内核参数与限制...

2020-03-13 17:41:38 627 1

原创 定期全备redis

首先申明我的观点,redis本身只是缓存,不适合作为数据库使用,有说微博就是拿redis当DB用的,自己去证实吧。如果非要拿redis当数据库,就不得不考虑数据丢失问题,这里讨论两种常见的可能造成数据丢失的情况。 第一种情况是redis实例或所在主机宕机,这可以通过复制来解决,再配以redis哨兵机制,实现自动failover。应用通过哨兵访问redis,当mas...

2020-03-12 07:18:22 434

原创 CDH 6.3.1整合Zeppelin 0.8.2

Zeppelin是一个基于Web的笔记本,可以直接在浏览器中编写代码,对数据进行查询分析并生成报表或图表,做出数据驱动的、交互、协作的文档,并且可以共享笔记。Zeppelin提供了内置的Apache Spark集成,提供的功能有:自动引入SparkContext 和 SQLContext 从本地文件系统或maven库载入运行时依赖的jar包。 可取消Spark作业和展示...

2020-03-11 11:12:22 975

原创 在CDH 6.3中安装Phoenix服务

目录一、下载并安装Phoenix parcel二、安装CSD文件三、在Cloudera Manager中添加Phoenix服务(前提是已经安装了HBase服务)四、配置HBase以用于Phoenix五、验证Phoenix安装参考:一、下载并安装Phoenix parcel1. 登录Cloudera Manager,点“群集”->“Parcel”,进入Parce...

2020-03-10 08:04:44 2166 8

原创 用NC或rsync传文件和目录

目标机(172.16.1.125):nc -l 12345 | tar zxvf -源机(172.16.1.124):tar cfz - * | nc 172.16.1.125 12345

2020-03-02 18:02:26 335

转载 MySQL百万级数据高效导入Redis

DBAplus社群今天以下文章来源于侠梦的开发笔记,作者侠梦前言随着系统的运行,数据量变得越来越大,单纯的将数据存储在MySQL中,已然不能满足查询要求了,此时我们引入Redis作为查询的缓存层,将业务中的热数据保存到Redis,扩展传统关系型数据库的服务能力,用户通过应用直接从Redis中快速获取常用数据,或者在交互式应用中使用Redis保存活跃用户的会话,都可以极大地降低后端关...

2020-03-02 16:16:50 617

原创 Galera Cluster for MySQL 详解(五)——负载均衡

Galera负载均衡器(Galera Load Balancer,GLB)为客户端请求提供了一个简单的TCP连接平衡功能,其与Galera Cluster的关系类似于MySQL Router之于组复制。它从另一个轻量级负载均衡器Pen中汲取灵感,开发考虑了可伸缩性和性能,但仅限于平衡TCP连接。GLB提供了以下几个功能:支持在运行时配置后端服务器。 支持服务器排除(drain...

2020-02-29 14:50:18 641

原创 获取MySQL历史session

MySQL的show processlist命令可以显示当时的会话情况,但很多时候都需要查看出问题当时的状态,可惜MySQL没有提供类似history session这样的功能。于是为了方便问题排查,自己写了一个非常简单的抓取MySQL现场session的脚本,生产数据库已经用了很长时间,感觉对trouble shooting还是挺有用的。脚本文件get_processlist.s...

2020-02-27 07:07:45 685

原创 批量取redis key/value和批量删除key

需求:取出所有前缀为g.at.ga.的string类型的key及其value实现:1. 取出keyredis-cli -p 26379 -a 123456 -n 0 keys g.at.ga.* > a.txt2. 拼出取value的命令sed 's/^/get &/g' a.txt > b.txt3. 取valuecat b.txt | redis-cli -p...

2020-01-23 07:38:55 2386 1

空空如也

wzy0623的留言板

发表于 2020-01-02 最后回复 2020-01-02

如何查看mysql使用的是哪个配置文件

发表于 2008-12-30 最后回复 2015-09-09

CSDN审核荣誉专家需要多长时间啊?

发表于 2007-07-03 最后回复 2007-07-04

空空如也

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

TA关注的人 TA的粉丝

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