首页
学习
活动
专区
工具
TVP
发布

Hadoop数据仓库

专栏作者
514
文章
714960
阅读量
109
订阅数
MySQL全局遍历替换特征字符串
需求:将一个MySQL实例(如10.10.10.1:3306)范围内所有字段数据中的 .letssing.net 替换为 .kaixinvv.com。
用户1148526
2023-03-08
1.8K0
维度模型数据仓库(十三) —— 退化维度
(五)进阶技术         8. 退化维度         本篇讨论一种称为退化维度的技术。该技术减少维度的数量,简化维度数据仓库的模式。简单的模式比复杂的更容易理解,也有更好的查询性能。当一个维度没有数据仓库需要的任何数据时就可以退化此维度。需要把退化维度的相关数据迁移到事实表中,然后删除退化的维度。         退化订单维度         本节说明如何退化订单维度,包括对数据仓库模式和定期装载脚本的修改。使用维度退化技术时你首先要做的识别数据,分析从来不用的数据列。例如,订单维度的order_number列就可能是这样的一列。但如果用户想看事务的细节,还需要订单号。因此,在退化订单维度前,要把订单号迁移到sales_order_fact表。图(五)- 8-1显示了迁移后的模式。
用户1148526
2022-12-02
2.8K0
维度模型数据仓库(九) —— 角色扮演维度
(五)进阶技术         4. 角色扮演维度         当一个事实表多次引用一个维度表时会用到角色扮演维度。例如,一个销售订单有一个是订单日期,还有一个交货日期,这时就需要引用日期维度表两次。         本篇将说明两类角色扮演维度的实现,分别是表别名和数据库视图。这两种都使用了MySQL的功能。表别名是在SQL语句里引用维度表多次,每次引用都赋予维度表一个别名。而数据库视图,则是按照事实表需要引用维度表的次数,建立相同数量的视图。         修改数据库模式         使用清单(五)-4-1里的SQL脚本修改数据库模式。分别给数据仓库里的事实表sales_order_fact和源数据库中订单销售表sales_order增加request_delivery_date_sk和request_delivery_date列。图(五)- 4-1 显示了修改后的模式。
用户1148526
2022-12-02
4260
维度模型数据仓库(七) —— 按需装载
(五)进阶技术         2. 按需装载         前面已经做了“初始装载”和“定期装载”。还有一种需要熟悉的装载类型,按需装载。所谓“按需装载”指的是,在正常调度之外,当源数据有效时或者数据仓库需要时进行装载。例如,促销销售源数据只有在促销期内有效,而在其它时间是无效的。         在“准备数据仓库模拟环境”中讨论的“生成日期维度数据”可以看做是一种按需装载。数据仓库预先装载了日期,当日期用完时,需要再次运行预装载。         本篇的主题是按需装载,首先修改数据库模式,然后在dw数据库上执行按需装载。使用促销期场景进行说明。定期装载不适合促销期场景,因为促销期数据并不是按调度装载。下面是需要装载的促销期内容,存储在名为一个promo_schedule.csv的CSV平面文件中。 PROMOTION CODE,PROMOTION NAME,START DATE,LAST DATE SO,Special Offer,2015-04-01,2015-04-10 DP,Disk Promotion,2015-05-05,2015-05-20 MS,Month Special,2015-06-01,2015-06-30 MS,Monitor Promotion,2015-07-10,2015-07-15 BS,Back to School,2015-08-10,2015-08-30         注意源数据提供了促销周期,而不是单个的促销日期。示例假设只需要装载今后新的促销数据,而在数据仓库中不需要促销期的历史数据。         修改数据库模式         图(五)- 2-1 显示了修改后的模式,date_dim表增加了promo_ind列,用来标识该日期是否为促销日期。使用清单(五)-2-1里的SQL脚本修改数据库模式。脚本中还建立了一个促销过渡表,用来装载促销期CSV文件的内容。
用户1148526
2022-12-02
3930
维度模型数据仓库(六) —— 增加列
(五)进阶技术         1. 增加列         数据仓库最常碰到的扩展是给一个已经存在的维度表和事实表添加列。本篇先讨论如果需要增加列,模式会发生怎样的变化。然后进一步说明如何在客户维度和销售订单事实表上添加列,并在新列上应用SCD2。假设需要在客户维度中增加送货地址属性,并在销售订单事实表中增加数量度量值。
用户1148526
2022-12-02
5800
维度模型数据仓库(三) —— 准备数据仓库模拟环境
(二)准备数据仓库模拟环境         上一篇说了很多数据仓库和维度模型的理论,从本篇开始落地实操,用一个小而完整的示例说明维度模型及其相关的ETL技术。示例数据库和ETL的SQL实现是在《Dimensional Data Warehousing with MySQL: A Tutorial》基础上做了些修改,增加了Kettle实现的部分。本篇详细说明数据仓库模拟实验环境搭建过程。         操作系统:Linux 2.6.32-358.el6.x86_64         数据库:MySQL 5.6.14 for Linux 64位         Kettle:GA Release 5.1.0         实验环境搭建过程:         1. 设计ERD         2. 建立源数据数据库和数据仓库数据库         3. 建立源库表         4. 建立数据仓库表         5. 建立过渡表         6. 生成源库测试数据         7. 生成日期维度数据         源数据数据库初始ERD如图(二)- 1所示         数据仓库数据库初始ERD如图(二)- 2所示         执行清单(二)- 1里的SQL脚本完成2-7步的任务
用户1148526
2022-12-02
9700
维度模型数据仓库(二) —— 维度模型基础
        既然维度模型是数据仓库建设中的一种数据建模方法,那不妨先看一下几种主流的数据仓库架构。
用户1148526
2022-12-02
7790
维度模型数据仓库(一) —— 概述
        最近看了三本关于数据仓库的书,很有收获,也很受启发。这三本书分别是《数据仓库工具箱(第三版)》、《Dimensional Data Warehousing with MySQL: A Tutorial》和《Pentaho Kettle解决方案》。在仔细研读了这三本书之后,感觉就像是一本书的三个层次。Ralph Kimball的经典著作数据仓库工具箱阐述的是维度建模方法论和按不同行业建模的示例。Dimensional Data Warehousing with MySQL在维度模型的基础上,用MySQL基本的SQL语句实现了各种常见场景下的ETL。而Kettle则是完全以Ralph Kimball提出的34个ETL子系统为理论基础开发出来的工具,以提供GUI的方式实现ETL。三本书的作者都是各自领域的杰出人物,是当之无愧的大神,内容的质量自不必说。但是也有些美中不足,比如工具箱这本书翻译的佶屈聱牙,让人颇为费解。Dimensional Data Warehousing with MySQL中有些错误,可能是印刷原因吧(此书没有中文版),有些按书中代码执行得不到想要的结果。倒是Kettle这本书,译者也是长期从事ETL开发的专业人员,不但翻译的通俗易懂,还适当添加了译者注,指出书中的一些过时的说法,至少对我来说受益匪浅。         有了以上的这些体会,我自然而然地产生一种想法:把几本书中所讲内容用一个完整的示例系统地实验一遍,使用SQL和Kettle两种方式来实现。一来对维度建模方法加深一下印象,二来也是对前段学习的一个总结,三是作为以后做数据仓库相关工作的不时之需。这是第一阶段要做的事情,第二阶段准备用Data Vault模型再做一遍,研究一下这种较新的建模方法。 内容组织: (一)维度模型基础 (二)准备数据仓库模拟环境 (三)初始装载 (四)定期装载 (五)进阶技术 1. 增加列 2. 按需装载 3. 维度子集 4. 角色扮演维度 5. 快照 6. 维度层次 7. 多路径和参差不齐的层次 8. 退化维度 9. 杂项维度 10. 多重星型模式 11. 间接数据源 12. 无事实的事实表 13. 迟到的事实 14. 维度合并 15. 累积的度量 16. 分段维度
用户1148526
2022-12-02
4820
MySQL查询求中位数最简单的写法
        讨论:MySQL本身没有提供中位数函数。网上有许多写法,基本是笛卡尔积与窗口函数两类,但都不是很理想。
用户1148526
2022-10-28
1.3K0
ShardingSphere实践(9)——tpcc-mysql 压测
MySQL版本:5.7.34 ShardingSphere-Proxy:5.1.2
用户1148526
2022-09-21
7100
ShardingSphere实践(8)——影子库
        在基于微服务的分布式应用架构下,业务需要的多个服务是通过一系列的服务、中间件的调用来完成,所以单个服务的压力测试已无法代表真实场景。在测试环境中,如果重新搭建一整套与生产环境类似的压测环境,成本过高,并且往往无法模拟线上环境的复杂度以及流量。因此,业内通常选择全链路压测的方式,即在生产环境进行压测,这样所获得的测试结果能够准确地反应系统真实容量和性能水平。
用户1148526
2022-08-30
1.2K1
ShardingSphere实践(7)——数据加密
        安全控制一直是治理的重要环节,数据加密属于安全控制的范畴。无论对互联网公司还是传统行业来说,数据安全一直是极为重视和敏感的话题。数据加密是指对某些敏感信息通过加密规则进行数据的变形,实现敏感隐私数据的可靠保护。涉及客户安全数据或者一些商业性敏感数据,如身份证号、手机号、卡号、客户号等个人信息按照相关部门规定,都需要进行数据加密。
用户1148526
2022-06-14
1.5K0
Data Vault初探(五) —— 定期装载_SQL
说明: 1. 定期装载的周期为每天一次。 2. 每天装载自上次装载后的变化数据 3. 建立源数据库的过渡表用于CDC 4. 建立cdc_time表用于基于时间戳的CDC 5. 因为源库上只有订单销售表有时间属性,所以除了sales_order和sales_order_item拉取变化数据外,其它表都整体拉取到过渡区。实际环境中建议在源表设计上应该有created和last_updated两个时间戳类型的字段。 6. 下表汇总了源库各表的CDC方式
用户1148526
2022-06-14
1950
Data Vault初探(三) —— 建立Data Vault模型
本示例源数据库是一个订单销售的普通场景,共有省、市、客户、产品类型、产品、订单、订单明细7个表。ERD如下图所示。
用户1148526
2022-06-14
1.1K0
维度模型数据仓库(二十) —— 累积的度量
(五)进阶技术         15. 累积的度量         本篇说明如何实现累积月底金额,并对数据仓库模式和初始装载、定期装载脚本做相应地修改。累积度量是半可加的,而且它的初始装载比前面做的要复杂的多。         可加、半可加、不可加事实         事实表中的数字度量可划分为三类。最灵活、最有用的度量是完全可加的,可加性度量可以按照与事实表关联的任意维度汇总。半可加度量可以对某些维度汇总,但不能对所有维度汇总。差额是常见的半可加度量,除了时间维度外,它们可以跨所有维度进行加法操作。另外,一些度量是完全不可加的,例如比率。         修改模式         建立一个新叫做month_end_balance_fact的事实表,用来存储销售订单金额的月底累积值。month_end_balance_fact表在模式中构成了另一个星型模式。新的星型模式除了包括这个新的事实表,还包括两个其它星型模式中已有的维度表,即product_dim和month_dim。图(五)- 15-1显示了新的模式。注意这里只显示了相关的表。
用户1148526
2022-06-14
4790
维度模型数据仓库(十九) —— 维度合并
(五)进阶技术         14. 维度合并         随着数据仓库中维度的增加,会发现有些通用的数据存在于多个维度中。例如,客户维度的客户邮编相关信息、送货邮编相关信息和工厂维度里都有邮编、城市和州。本篇说明如何把三个维度里的邮编相关信息合并到一个新的邮编维度。         修改数据仓库模式 为了合并维度,需要改变数据仓库模式。图(五)- 14-1显示了修改后的模式。新增了一个zip_code_dim表,sales_order_fact和production_fact表的结构也做了相应的修改。注意图中只显示了与邮编维度相关的表。
用户1148526
2022-06-14
5250
ShardingSphere实践(5)——性能测试
        从业务角度考虑,分为直连、单路由、主从、分库分表四个基本应用场景,对 ShardingSphere-Proxy 和 MySQL 进行性能对比。ShardingSphere官方文档中说明支持Sysbench和BenchmarkSQL 5.0,但是BenchmarkSQL 5.0本身不支持MySQL数据库(需要自行修改源码重新编译),因此别无选择只能使用Sysbench进行性能基准测试。
用户1148526
2022-06-05
1.2K0
ShardingSphere实践(4)——读写分离
        ShardingSphere最重要的功能模块是数据分片,从规则到实现都比较复杂。其他功能相对来说比较简单,本篇介绍ShardingSphere的读写分离功能。
用户1148526
2022-06-05
4320
(二)ShardingSphere-Proxy集群式安装
        从上一篇介绍的产品路线已知,ShardingSphere当前对数据库接入端主要提供了JDBC和Proxy两款产品。ShardingSphere-JDBC面向开发人员,以jar包形式提供服务,因此不需要安装,只要部署好相关jar包和数据库系统提供的JDBC驱动程序,再做适当配置即可使用。ShardingSphere-Proxy面向DBA和运维人员,以代理方式提供服务,有中心静态入口,需要安装部署过程。
用户1148526
2022-05-26
1.5K0
MySQL实现条件唯一性
当status_x<>5时,obj_x的值唯一,否则可以重复。在MySQL中不支持这样的功能,但可以通过虚拟列来实现。看下面一个简单例子。
用户1148526
2022-05-19
7580
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档