上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 37 下一页
摘要: 渐变维度(SCD)转换提供了一种维护渐变维度或渐变表的方法,渐变维度的分析处理是一个很大的话题。一般一个维度表通常包含一些描述其他信息的离散值,例如,价格,重量,销售地区。问题是如果随着时间的推移这些信息改变我们将如何维护这个表,特别是在数据转移的过程中。例如我们查看AdventureWorks中的product表,如图1图1 通常在联机事务处理(OLTP)数据库中,我们会用一行的数据来保存产品信息。如果产品的售价从10美元上涨到15美元,我们直接更新StandardCost字段为15,这样做完成了任务:现在的售价是多少?但是丢失了历史数据,我们不知道涨价之前的价格是多少?价格上涨了多少?解决 阅读全文
posted @ 2011-07-17 17:42 nd 阅读(5910) 评论(4) 推荐(4) 编辑
摘要: 提到排名函数我们首先可能想到的是order by,这个是排序,不是排名,排名需要在前面加个名次序号的,order by是没有这个功能的。还可能会想到identity(1,1),它也给了一个序号,但是不能保证给出的序号是连续升序的。除非能够保证所有的Insert语句都能够正确成功地完成,并且没有删除操作,实际的使用中大多数的表都不能保证这样。好在SQL Server中提供了一些排名函数来辅助实现这些功能。排名函数按照需要的顺序对数据进行排名,并提供一个值对数据。下面来了解一下这些排序函数功能。 ROW_NUMBERROW_NUMBER函数允许以上升,连续的顺序给每一行数据一个序号,注意ROW_N 阅读全文
posted @ 2011-07-08 19:22 nd 阅读(4998) 评论(16) 推荐(10) 编辑
摘要: 透视今天抽一点时间来看看透视和逆透视语句,简单的说就是行列转换。假设一个销售表中存放着产品号,产品折扣,产品价格三个列,每一种产品号可能有多种折扣,每一种折扣只对应一个产品价格。下面贴出建表语句和插入数据语句。 1 create table SalesOrderDetail( 2 ProductID int /*unique多谢wuu00的提醒*/, 3 UnitPriceDiscount float, 4 ProductPrice float 5 ) 6 insert into SalesOrderDetail values 7 (711,.00,12), 8 (711,.00,13), . 阅读全文
posted @ 2011-07-07 17:23 nd 阅读(4074) 评论(21) 推荐(5) 编辑
摘要: 在模糊查找中我们提到脏数据是怎样进入到表中的事情,主要还是由于一些“Lazy-add”造成的。这种情况我们的肉眼很容易被欺骗,看上去是同一个单词,其实就差那么一个字母,变成了两个不同的单词。一个简单的例子是X-Ray Tech和xRey,我们很有可能认为他们是同一个职务,CT操作员,但是如果让计算机来处理的话,它们是两种截然不同的东西。 和模糊查找一样,模糊分组可以查找出多行中出现的类似的单词进行归类。我们可以使用这些归类得到的结果清洗数据源或者在不修改基础数据的情况下对原表进行修改。模糊分组也需要一个输入字符流,还需要一个OLE DB数据连接,用于存放分析得到的结果。模糊分组任务的编辑界面. 阅读全文
posted @ 2011-07-04 22:21 nd 阅读(2457) 评论(2) 推荐(0) 编辑
摘要: BI项目中经常会有一些提取,转换,数据处理(ELT)的工作,其中最主要的是处理过赃数据。假设在项目中我们向数据库中注入了测试数据,但是通过一个外键从另外一个表中载入数据的时候没有对应的数据,那么这一行就是赃数据。这时候可以使用SQL中的Sound-Ex,full-text,相似度算法等方法查找。这种策略需要花费大量的时间和精力来设计算法,测试,维护,并且它们都是基于词汇的,复用的可能性很小。也可能你会放弃自己处理并把它抛给一些有经验的高手专家来做这些工作,也可能你会在表中添加一些新的数据已达到外健关联的目的,但是这种方法被称作Lazy-add(懒惰的做法)。因为是手工添加数据难免会带来拼写错误 阅读全文
posted @ 2011-06-27 21:30 nd 阅读(4745) 评论(11) 推荐(4) 编辑
摘要: 和关键词提取一样,关键词查找使用相同的算法和统计模型将输入流中的字符串按照名词或者名词词组进行统计,不同的是它参照一个已经存在的词汇表,输出的统计结果也仅限于这个词汇表中的关键词。关键词提取和关键词查找可以搭配使用。定期地使用关键词提取来产生关键词词汇表,也可以在这个词汇表中人为删除或添加想要统计的关键词,最后使用关键词查找来产生最终的统计结果。在上一个章节中我们将统计结果中的“model”从统计结果中删除,然后我们可以将他们整理出来,然后删除重复的,添加一些对有统计价值的关键词。这里假设我们想统计有哪些模型招致客户的不满以致留言评价,但是我们想只保留模型的名称,而不是类似“model XX- 阅读全文
posted @ 2011-06-24 21:04 nd 阅读(1805) 评论(0) 推荐(1) 编辑
摘要: 如果你曾经为网站做过单词或短语分析以便获得更好的搜索排名,你会对SSIS的这个任务很感兴趣。关键词提取任务是从文本流中查找并计算关键词的出现频率的工具。它可与接收任何形式的文本,输出两列:一列是关键词,另一列是这个关键词在文本中出现的频率的统计值。这个统计值可以是该关键词出现的次数,也可以是使用稍微复杂一点的计算公式(TFIDF)计算得出的几率值。缩写词TFIDF的全称是Term Frequency and Inverse Document Frequency,是一个用于计算单词或词组在在整个文本中出现的几率。下面是这个公式的表达式:TDIDF (of a term or phrase) = 阅读全文
posted @ 2011-06-23 19:02 nd 阅读(2773) 评论(5) 推荐(2) 编辑
摘要: 今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起。后来在technet上搜索发现别有洞天,原来是另外一个sql关键字,t-sql的语法还是相当地丰富的。本篇是一篇学习笔记,没有什么新意,这里给出technet上的地址连接供大家参考权威:http://technet.microsoft.com/zh-cn/library/bb510625.aspx,这里具体的语法不去深究了,只是把几个例子实际运行,剖析一番。 使用merge同时执行insert和update操作我们经常会有这样的需求,根据某个字段或多个字段查找表中的一行或多行数据 阅读全文
posted @ 2011-06-22 17:11 nd 阅读(9732) 评论(17) 推荐(8) 编辑
摘要: OLE DB Commond任务接受输入流中的行数据并执行一段SQL语句或自定义存储过程。这个转换和Execute Sql任务容易混淆,但是它非常类似于在ADO连接中循环接收一个结果集中的数据,创建,执行一个ADO命令。输入流中的参数数据可以提供给一个Sql命令或者存储过程。这里我们看到“循环”可能就会联想到另外一个词“性能”。这可能涉及到更新,插入,删除语句,每次都会有断开,连接的操作。但是并不意味着这个转换一无是处,这里我们着重理解这个任务如何配置和使用的。要注意有多少输入数据并在需要缓存数据到临时表或实际表时权衡性能和伸缩性,以达到最优效果。在配置这个任务的时候,基本点要点是设置能够获得 阅读全文
posted @ 2011-06-20 20:08 nd 阅读(6407) 评论(0) 推荐(0) 编辑
摘要: 在SSIS中的Row Count转换可以在数据流中计算数据源的行数。这种任务必须将行数保存在一个变量中。这种任务在你不想将数据行数保存在一个物理表中时会很有用。例如在ConditionalSplit任务中使用多个RowCount记录有多少行被分离出来,每个Row Count将使用变量记录分支中的数据行数,可以将这个变量值记录在数据库中,作为邮件信息发送出去,或者在下一个步骤中使用。一样这个任务需要使用高级编辑器,这个更加简单,只需要添加一个变量来存储行数。现在设想一个任务只有在数据流中的数据行数大于0的情况下才会执行,可以将此类推到任何按照不同条件执行task 的情况,在这里我们只简单举例说明 阅读全文
posted @ 2011-06-19 21:00 nd 阅读(4155) 评论(3) 推荐(0) 编辑
上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 37 下一页