缓慢变化维 (Slowly changing dimension)】的更多相关文章

开篇介绍 在从 OLTP 业务数据库向 DW 数据仓库抽取数据的过程中,特别是第一次导入之后的每一次增量抽取往往会遇到这样的问题:业务数据库中的一些数据发生了更改,到底要不要将这些变化也反映到数据仓库中?在数据仓库中,哪些数据应该随之变化,哪些可以不用变化?考虑到这些变化,在数据仓库中的维度表又应该如何设计以满足这些需要. 很显然在业务数据库中数据的变化是非常自然和正常的,比如顾客的联系方式,手机号码等信息可能随着顾客的所在地的更改发生变化,比如商品的价格在不同时期有上涨和下降的变化.那么在业务…
      维度建模的数据仓库中,有一个概念叫Slowly Changing Dimensions,中文一般翻译成"缓慢变化维",经常被简写为SCD.缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流失发生缓慢的变化.这种随时间发生变化的维度我们一般称之为缓慢变化维,并且把处理维度表的历史变化信息的问题称为处理缓慢变化维的问题,有时也简称为处理SCD的问题. 个人感觉wiki上对缓慢变化维的定义比较详细,所以翻译此文并加入个人的观点看法.原文请参照 :http…
在从 OLTP 业务数据库向 DW 数据仓库抽取数据的过程中,特别是第一次导入之后的每一次增量抽取往往会遇到这样的问题:业务数据库中的一些数据发生了更改,到底要不要将这些变化也反映到数据仓库中?在数据仓库中,哪些数据应该随之变化,哪些可以不用变化?考虑到这些变化,在数据仓库中的维度表又应该如何设计以满足这些需要. 很显然在业务数据库中数据的变化是非常自然和正常的,比如顾客的联系方式,手机号码等信息可能随着顾客的所在地的更改发生变化,比如商品的价格在不同时期有上涨和下降的变化.那么在业务数据库中,…
开篇介绍 关于 Slowly Changing Dimension 缓慢渐变维度的理论概念请参看 数据仓库系列 - 缓慢渐变维度 (Slowly Changing Dimension) 常见的三种类型及原型设计 本篇文章总结了实现缓慢渐变维度的几种方式,并且分析了 Changing Attribute 和 Historical Attribute 输出的逻辑过程. 示例一:SSIS 中使用 Slowly Changing Dimension 控件 示例二:使用 SQL 中 Merge 语句实现简…
BI中维表的增量更新一般有2种: Type 1:覆盖更改.记录的列值发生变化,直接update成最新记录. Type 2:历史跟踪更改.记录值发生变化,将该记录置为失效,再insert一条新的记录. 这两种其实都可以通过sql的left join来实现,不过DataStage给我们提供一个组件,可以很好的实现这个功能,这就是slowly changing dimension. 1 缓慢变化维表示例 如图1所示,是一个常用的缓慢变化维,该表的进数逻辑为: 当记录新插入到改表时,STARTDATE是…
缓慢变化维(Slowly changing Dimensions)指的是维表中的维度字段值会随着时间或业务调整,而在后续的分析中,历史数据仍然要使用旧的维度值,新的数据会使用当前维度值.在数据仓库建设过程中,ODI提供有专门的SCD 集成模块,更方便的对维表进行更新. 源和目标模型定义 本示例基于src_customer表,下面是目标维表的定义:…
假设有一张居民维表,需要记录居民状态的变更历史,根据Kimball建模理论,设计居民维表如下: 另外在ODS中有居民信息的每日快照表(每天都记录一份居民的全量信息):O_USERINFO 如何将ODS中的O_USERINFO的每日批次数据加载到居民维表D_RESIDENT_SCD中,需注意两个表必须在同一个数据源中. 在HHDI中新建数据抽取任务,也可采用执行SQL任务,在源表查询语句中写入以下SQL: SELECT     O.ID RESIDENTID,     O.NAME,     O.…
SCD缓慢变化维,比如一个用户维表,用户属性会变化,但是不会变化很剧烈,可能一年只会变化一两次,也不会所有用户的属性都会有变化,只有少量的数据发生变化,所以叫缓慢变化维.这种问题就是由于维度的变化所造成的. 解决方式: 是否保留历史数据 保留多久历史数据 历史状态如何与事实表关联 SCD1 保留最新状态 注册日期 用户编号 手机号码 2019-01-01 0001 111111 2019-01-01 0002 222222 2019-01-01 0003 333333 2019-01-01 00…
这里简单讲下SCD 在讲之前贴上两个有用的链接地址.作者的两篇文件讲解了SCD是什么以及应用 http://www.cnblogs.com/biwork/p/3363749.html http://www.cnblogs.com/biwork/p/3371338.html Slow Changing Dimension翻译过来就叫缓慢渐变维度.它被应用于数据仓库中对维度表数据的加载.因为数据总是在不断增长和变化的,在第一次完全加载数据后需要处理增量加载数据的处理场景,以及数据是否需要保留历史数据…
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>宽度缓慢变化</title> <style> #chg { width: 200px; height: 120px; background-color: #390; mar…
有时候我们可能会想要改变某个资源信息的长宽度,比如改变某个div的宽度,而且需要让这个宽度缓慢改变,而不是突然就改变了.这时候你可能会想到使用jquery的animate()函数,不过这个方法既得引用jquery,又得使用函数,有点太简单粗暴了,今天介绍一种更为方便而且优雅的方法,那就是使用CSS3的“transition”属性. 在w3school上对“transition”属性有详细的解释,可以设置变化的时间,比如: div { transition:width 2s; } 在用js来改变元…
[公告]本博客于2015年10月起不再更新 新博客文章主要发表在商业智能BI社区: http://www.flybi.net/blog/biwork 博客地图自动分类 文章目录方便更好的导航,阅读文章. 分享与下载 微软产品下载大全(操作系统,SQL SERVER,Office)http://www.itellyou.cn/ 微软示例数据库下载  Microsoft Demo Database Download 微软 DEMO  下载     Microsoft Demo Download SQ…
微软 BI ETL 架构设计 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架 如何管理和记录 SSIS 各个 Task 的开始执行时间和结束时间以及 Task 中添加|删除|修改的记录数 微软 BI SSIS 系列 微软BI 之SSIS 系列 - 在 SSIS 中读取 SharePoint List 微软BI 之SSIS 系列 - 利用 SSIS 模板快速开发 SSIS Package 微软BI 之SSIS 系列 - Lookup 组件的使用与它的几种缓存模式 - Full…
大家可以根据对应的视频课程名称查找相关的辅助阅读博客,有少量辅助阅读博客和视频课程讲解内容相同,大部分都是拓展总结部分.希望大家在学完每一个视频课程之后看看相关博客内容,这样可以在知识面和深度上继续得到提升!此博客内容将持续更新,并会同步到群里让大家知晓! 系列课程一 微软BI SSIS 2012 ETL 控件与案例精讲 访问课程地址请点击 - 微软BI SSIS 2012 ETL 控件与案例精讲 访问课程免费试看部分请点击 - [免费部分] 文件处理类 - 12 001_从数据库导出数据到平面…
LOOKUP TRANSFORMATION的使用点评: LOOKUP基本用法不熟的话请参考下附属信息. 用法感受: 1 LOOKUP的作用跟我们以前在EXCEL的函数功能类似,就是隔表取值.优点就是用ETL工具可以设置CACHE,大量的 数据也可以实现这个功能.数据量大的话要设置CACHE ENABLE并调高CACHE SIZE的值. 2 LOOKUP 有CONNECTED 和UNCONNECTED的两种,根据需要而用,如果很多字段要取对应的这个值的话,就用UNCONNECTED.在具体项目中要…
LOOKUP TRANSFORMATION的使用点评: LOOKUP基本用法不熟的话请参考下附属信息. 用法感受: 1 LOOKUP的作用跟我们以前在EXCEL的函数功能类似,就是隔表取值.优点就是用ETL工具可以设置CACHE,大量的 数据也可以实现这个功能.数据量大的话要设置CACHE ENABLE并调高CACHE SIZE的值. 2 LOOKUP 有CONNECTED 和UNCONNECTED的两种,根据需要而用,如果很多字段要取对应的这个值的话,就用UNCONNECTED.在具体项目中要…
开源ETL工具kettle系列之常见问题 摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. Join我得到A 数据流(不管是基于文件或数据库),A包含field1 , field2 , field3 字段,然后我还有一个B数据流,B包含field4 , field5 , field6 , 我现在想把它们 ‘加’ 起来, 应该怎么样做.这是新手最容易犯错的一个地方,A数据流跟B数据流能够Joi…
数据仓库建设--OLAP和数据立方体概念 http://student-lp.iteye.com/blog/2263154 OLAP(On-LineAnalysis Processing)在线分析处理是一种共享多维信息的快速分析技术:利用多维数据库技术使用户从不同角度观察数据:用于支持复杂的分析操作,侧重于对管理人员的决策支持,可以满足分析人员快速.灵活地进行大数据复量的复杂查询的要求,并且以一种直观.易懂的形式呈现查询结果,辅助决策. 2.相关概念 (1)维 是人们观察数据的特定角度,是考虑问…
开源ETL工具kettle系列之常见问题 摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. Join我得到A 数据流(不管是基于文件或数据库),A包含field1 , field2 , field3 字段,然后我还有一个B数据流,B包含field4 , field5 , field6 , 我现在想把它们 ‘加’ 起来, 应该怎么样做.这是新手最容易犯错的一个地方,A数据流跟B数据流能够Joi…
http://blog.csdn.net/cissyring/archive/2008/05/29/2494130.aspx 1. Join 我得到A 数据流(不管是基于文件或数据库),A包含field1 , field2 , field3 字段,然后我还有一个B数据流,B包含field4 , field5 , field6 , 我现在想把它们 ‘加’ 起来, 应该怎么样做. 这是新手最容易犯错的一个地方,A数据流跟B数据流能够Join,肯定是它们包含join key ,join key 可以是…
LOOKUP TRANSFORMATION的使用点评: LOOKUP基本用法不熟的话请参考下附属信息. 用法感受: 1 LOOKUP的作用跟我们以前在EXCEL的函数功能类似,就是隔表取值.优点就是用ETL工具可以设置CACHE,大量的 数据也可以实现这个功能.数据量大的话要设置CACHE ENABLE并调高CACHE SIZE的值. 2 LOOKUP 有CONNECTED 和UNCONNECTED的两种,根据需要而用,如果很多字段要取对应的这个值的话,就用UNCONNECTED.在具体项目中要…
突发奇想,用了这么久的DataStage,想要写点东西祭奠那逝去的岁月.希望可以坚持一直写完. DataStage系列教程 (Change Capture) DataStage系列教程 (Pivot_Enterprise 行列转换) DataStage系列教程 (Slowly Changing Dimension)缓慢变化维…
小结: 1. Hadoop 文件系统中的存储是不可变的,换句话说,只能插入和追加记录,不能修改数据.如果你熟悉的是关系型数据仓库,这看起来可能有点奇怪.但是从内部机制看,数据库是以类似的机制工作,在一个进程异步地更新数据文件中的数据之前,将所有变更保存在一个不可变的预写式日志(WAL- write-ahead log,Oracle中称为redo log)中. 2. Hadoop上的维度建模 为了解决性能问题,可以利用反规范化将大的维度表放进事实表,以保证数据是同定位的(co-located),而…
开篇介绍 本自测与面试题出自 微软BI SSIS 2012 ETL 控件与案例精讲 (http://www.hellobi.com/course/21) 课程,对于学完本课程的每一课时和阅读完相关辅助阅读博客之后,都需要通过以下自测题来巩固课程中所学习到的基本知识点.具体相关学习方法与面试准备可以参考 微软BI SSIS 2012 ETL 控件与案例精讲课程学习方式与面试准备详解 一文. 自测与面试 200 问 此自测题也可以作为面试题来准备,虽然对于 ETL 控件的面试大多不会考察到这么细的粒…
开篇介绍 微软BI SSIS 2012 ETL 控件与案例精讲 (http://www.hellobi.com/course/21) 课程从2014年9月开始准备,到2014年12月在 天善BI学院 (http://www.hellobi.com)正式上线. 100多天的时间共完成了 51个视频的录制,包含49个原创案例,总共1460余分钟,共计 24 个小时. 每一个案例的准备时间耗时 4 - 5个小时,有的案例的设计,思路的整理耗时 8 个小时 - 16 个小时. 本课程涵盖了微软 BI S…
缓慢变化维(Slowly changing Dimensions)指的是维表中的维度字段值会随着时间或业务调整,而在后续的分析中,历史数据仍然要使用旧的维度值,新的数据会使用当前维度值.在数据仓库建设过程中,ODI 提供有专门的SCD 集成模块,更方便的对维表进行更新.在ODI 12c中实现缓慢变化维SCD2的例子如下. 一.创建测试表格 创建源表,并插入数据 DROP TABLE EMP_SCD2_SRC; CREATE TABLE EMP_SCD2_SRC( EMPNO ) CONSTRAI…
说明:以下是自己的理解答案,不是标准的答案,如有不妥烦请指出.         有些题目暂时没有答案,有知道的请留言,互相学习,一起进步. 133.请描述一下 Conditional Split 的使用方法和使用场景? 它可以写表达式吗? 它可以访问到上游数据的列,变量,以及使用函数吗?    根据不同的列的值,决定数据流的路径,可以写表达式进行判断,只能访问系统变量,用户变量,可以使用函数134.请描述一下 Data Conversion 与 Derived Column 的使用方法,以及它们…
原文:SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表) 作为SQL Server 2016(CTP3.x)的另一个新特性,Temporal Table(历史表)记录了表历史上任何时间点所有的数据改动.Temporal Table其实早在ANSI SQL 2011就提出了,而SAP HANA, DB2和Oracle早已在它们的产品中加入/实现了这一特性.所以说微软其实是落后了几个竞争对手.既然在CTP3.0中加入了,相信…
在本书中,你将学习到以下内容: 规划&设计你的ETL系统 从多种可能的架构中选出最合适的 对实施过程进行管理 管理日常的操作 为ETL过程建立开发/测试/生产环境 理解不同的后台数据结构,包括平面文件.规范化框架.XML框架和星型连接(维度)框架 分析和抽取源数据 创建完整的数据清洗子系统 将数据结构化为维度框架,以便更有效提交给最终用户.商务智能工具.数据挖掘工具.OLAP立方体和分析应用系统 使用同一种技术将数据有效地提交到高度集中的或分布的数据仓库 调整个ETL过程使…
1. What is a logical data mapping and what does it mean to the ETL team? 什么是逻辑数据映射?它对ETL项目组的作用是什么? 答:逻辑数据映射(Logical Data Map)用来描述源系统的数据定义.目标数据仓库的模型以及将源系统的数据转换到数据仓库中需要做操作和处理方式的说明文档,通常以表格或Excel的格式保存如下的信息: 目标表名: 目标列名: 目标表类型:注明是事实表.维度表或支架维度表. SCD类型:对于维度表…