不冒任何险,什么都不做,什么也不会有,什么也不是。
透视 今天抽一点时间来看看透视和逆透视语句,简单的说就是行列转换。假设一个销售表中存放着产品号,产品折扣,产品价格三个列,每一种产品号可能有多种折扣,每一种折扣只对应一个产品价格。下面贴出建表语句和插入数据语句。
在模糊查找中我们提到脏数据是怎样进入到表中的事情,主要还是由于一些“Lazy-add”造成的。这种情况我们的肉眼很容易被欺骗,看上去是同一个单词,其实就差那么一个字母,变成了两个不同的单词。一个简单的例子是X-Ray Tech和xRey,我们很有可能认为他们是同一个职务,CT操作员,但是如果让计算机来处理的话,它们是两种截然不同的东西。
BI项目中经常会有一些提取,转换,数据处理(ELT)的工作,其中最主要的是处理过赃数据。假设在项目中我们向数据库中注入了测试数据,但是通过一个外键从另外一个表中载入数据的时候没有对应的数据,那么这一行就是赃数据。
和关键词提取一样,关键词查找使用相同的算法和统计模型将输入流中的字符串按照名词或者名词词组进行统计,不同的是它参照一个已经存在的词汇表,输出的统计结果也仅限于这个词汇表中的关键词。关键词提取和关键词查找可以搭配使用。
如果你曾经为网站做过单词或短语分析以便获得更好的搜索排名,你会对SSIS的这个任务很感兴趣。关键词提取任务是从文本流中查找并计算关键词的出现频率的工具。它可与接收任何形式的文本,输出两列:一列是关键词,另一列是这个关键词在文本中出现的频率的统计值。
今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起。后来在technet上搜索发现别有洞天,原来是另外一个sql关键字,t-sql的语法还是相当地丰富的。
OLE DB Commond任务接受输入流中的行数据并执行一段SQL语句或自定义存储过程。这个转换和Execute Sql任务容易混淆,但是它非常类似于在ADO连接中循环接收一个结果集中的数据,创建,执行一个ADO命令。
在SSIS中的Row Count转换可以在数据流中计算数据源的行数。这种任务必须将行数保存在一个变量中。这种任务在你不想将数据行数保存在一个物理表中时会很有用。例如在ConditionalSplit任务中使用多个RowCount记录有多少行被分离出来,每个Row Count将使用变量记录分支中的数据行数,可以将这个变量值记录在数据库中,作为邮件信息发送出去,或者在下一个步骤中使用。
在SSIS高级转换任务—导出列这一篇随笔中主要完成的是把数据库中的文件列导出,这里将讨论如何将文件导入到数据库中,它和导出列任务是一对经常搭配使用的任务。当我们搞清楚它们实现什么功能的时候会发现原来的名字更加贴切。
在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息,今天把自己工作过程中经常用到的一些数据库引擎存储过程,系统视图等等总结一下以备不时之用。
今天对分页语句做一个简单的总结,他们大同小异的,只要理解其中一个其他的就很好理解了。 使用top选项 selecttop10*from Orders a where a.orderid notin(selecttop10 orderid from Orders orderby orderid) orderby a.orderid 使用max函数 这种方法的前提是有唯一值的一个列。
园友总结的很全,可以当工具书查阅了。 http://www.cnblogs.com/zhuzhiyuan/archive/2011/04/22/2024485.html, http://kb.cnblogs.
T-SQL的在执行普通的查询的时候是很高效的,但是在执行循环,判断这样的语句的时候效率就不那么的高了。这时可以借助CLR了,我们可以在SQL Server 2008中扩展C#程序来完成循环等过程式的查询,或者其他SQL不便实现的功能。
上一个随笔中我们提到了在Windows 7操作系统中配置ftp服务器并通过WinScp客户端来访问它,这样就可以方便的上传下载文件了。现在又有新的问题,我们发现如果项目中的文件很多,成百上千个文件,即使WinScp提供方便的文件拖拽功能,还是发现很繁杂。
好久没有碰IIS服务器了,又忘的差不多了,这个随笔中我将介绍在Windows 7操作系统中通过IIS配置ftp服务器的步骤。在公司的网络环境中阻止了ftp访问,在这里我们使用工具WinScp作为客户端访问ftp服务器,WinScp作为一个小型的ftp客户端非常小巧灵活,它可以访问ftp,sftp,scp等服务。
在上一个导入列这个例子中我们创建一个实际的表来存储文件路径,在生产环境中我们可能不会创建一个实际的物理表来存储这些信息,而是创建临时表。这里有一个小小的技巧,在Control Flow中拖放两个Execute SQL task,一个创建临时表,另一个销毁临时表,执行这个package,会遇到一个错误,在Progress中提示信息显示不存在这个临时表。
好久没有写SSIS了,接着上回的Import Column,这个随笔学习Export Column,这个转换任务用来从数据库中的blob类型的列转换成文件保存到文件系统中或者在Microsoft Word文件或者Microsoft Paint文件中浏览。
最近用到UltraEdit,从网上搜了一篇文章,链接是:http://blog.ednchina.com/sh_jiajia/187745/message.aspx UltraEdit在使用正则表达式进行查找替换时有两个可使用的语法集合。
今天同事安装MOSS 2007(32位)遇到了一个错误。我记得以前装过,觉得功能很强大的,所有的东西不管什么放在sharepoint里面就变成两样,一个是列表,一个是文件,并且全部都是自动生成数据表的,我的理解可能很简单。
数据库中的数据编辑是我们遇到的最频繁的工作,这一个随笔中我来总结一下最常用的数据编辑。 select into 经常遇到一种情况是,我们希望创建一个新表,表中的数据来源于原有的一个表;原有一个表,但是这个表中的数据已经很混乱,我们希望把这些数据备份出来,然后把原有的表中的数据清除,重新导入;在这些情况下我们可以使用select into语句。
要知道线程等待时间是制约SQL Server效率的重要原因,这一个随笔中将学习怎样收集SQL Server中的线程等待时间,类型等信息,这些信息是进行数据库优化的依据。 sys.dm_os_wait_stats 这是一个系统视图,里面存储线程所遇到的所有的等待信息,具体的列如下表 列名 数据类型 说明 Wait_type Nvarchar(60) 等待类型名称 waiting_tasks_count Bigint 等待类型的等待数。
备份数据库时出现一个不太了解的错误 ,错误信息“is formatted to support 1 media families, but 2 media families are expected according to the backup device specification”。
下面的随笔中将讲述SSIS中的高级转换任务,和老旧的SQL Server 2000 DTS相比,我们会发现现在以前的dark-arrow,data-pump任务没有了。在转换任务中隐藏ActiveX脚本和嵌入连接字符的方法也被去除了。
在上一个随笔中我们处理了一个010305c.dat文件,如果在一个文件夹中有多个dat文件应该怎么办呢? 这里就需要使用Foreach Loop container任务来循环处理文件,这个需要使用多个dat文件。
前面我们熟悉了很多ELT任务,这一个节来讨论复杂点的数据清洗。这里我们要使用的数据源是.dat文件,这种文件在大型主机上,或者是比较老旧的应用系统中非常常见。这个例子的情景是一个信用卡公司,目前正着手于拓展Florida州新成立的一些公司的业务。
2011-04-20 修改机器登录密码后不能登录SQL Server 今天发现一个很有趣的现象。公司的电脑每两个月就会提示重置登录密码,今天我修改了密码登录进去发现不能登录SQL Server了,我的是2008版本的 。
今天偶尔看到sql中也有with关键字,好歹也写了几年的sql语句,居然第一次接触,无知啊。看了一位博主的文章,自己添加了一些内容,做了简单的总结,这个语句还是第一次见到,学习了。我从简单到复杂地写,希望高手们不要见笑。
通过基本task和transforms的学习,现在可以转入到SSIS实际应用。建立端到端的package这个系列中首先讲解将一系列的文件数据导入到SQL Server中的方法,然后添加一些复杂转换,最后将看到如何在package中处理错误和动态地创建package。
数据视图是SSIS中常见的调试工具,它的功能是在包运行的时候查看数据。例如如果在Aggregate转换的前,后分别放置一个数据视图,尅查看数据在进行聚合操作之前和之后的数据。 但是如果将package部署或者作为job的一个步骤运行,数据视图将不会显示出来。
在上一个随笔中我们熟悉了数据流任务,现在来做一个例子,通过实践学习这些介绍的内容。这个例子从AdventureWorks数据库中取得数据,然后对数据进行聚合,排序,计算产生新列操作并输入到一个.csv文件中。
在上一篇随笔中列举了部分Data Flow中的数据转换任务,这里继续剩余的转换任务。 数据挖掘请求 数据挖掘任务是SSIS中一个很重要的任务,它的思想来源于一些算法。数据挖掘请求运行数据挖掘请求,并将结果输出到数据流。
对数据流来说按照需求将数据转换成需要的格式是数据操作中的一个关键的步骤。例如想要得到聚合排序后的运算结果,转换可以实现这种操作。和SQL Server 2000 DTS完全不同,这些操作不需要编写script,所有的运算都在内存中进行。
我们可以把SSIS中的整个package包含在一个事务中,但是如果在package的执行过程中有一个表需要锁定应该怎么处理呢?SSIS内建的事务处理可以解决这个问题。在此之前首先来熟悉一下SQL Server中的事务的概念。
在Data Flow中Destination从数据源或者数据处理流程中接收数据。在SSIS中数据可以导入到任何OLE DB支持的数据源,平面文件或者Analysis Service中的数据。和数据源一样Destinations也通过连接管理器来连接,不同之处是有一个数据映射界面如图4-11。
在SSIS中大多数的数据源都指向一个连接管理器,通过指定连接管理器可以在Package中重复使用连接,这样只需要修改一次就能重新设置所有连接,在SSIS中有6中不同的数据源。 OLE DB数据源 OLE DB数据源用来连接OLE EB数据,是一种最常用的数据源。
容器 容器是SSIS为一个或多个任务提供一种结构的对象。例如可以执行一个循环直到到达边界条件,或者将一系列的task按逻辑组织在一起。一个容器也可以包含其他的容器。容器和任务(task)一样也放在Control Flow标签内,总共有四种类型的容器:任务宿主Task Host,Sequence序列,For循环和Foreach循环。
今天遇到的问题比较有意思。首先是很久没有打开测试数据库了,今天打开,使用service程序测试的时候出现下面的错误提示:Message: System.Data.SqlClient.SqlException: Login failed for user 'dcp_prod'.
XML任务 XML任务是一种新的任务,他可以对XML文件进行多种功能操作。可是使用SSIS动态的修改,创建,组合XML文件。主要功能如下: 将多个XML文件组合成一个XML文件 为报表加载一个XSLT样式表文件 使用SPATH从XML文件中选择出一段 使用DTD文档验证XML文件 在...
今天用SQL Server 2008的attach功能附加一个数据库,出了点问题,提示的错误是: Unable to open physical file "D:\Documents\Dalt\XXXX.
http://www.cnbeta.com/articles/50580.htm这个网页新闻中报告许多微软软件不能识别闰年的2月29号 ,其中就包含SQL Server 2008,本人就在自己的SQL Server 2008中写了几个语句试验,这几个语句显示能得到2月29号这一天,不知道照这则新闻所说在这一天安装软件会不会导致错误。
今天将所有的SSIS文章总结到一个文章中,做一个简单的目录,便于查找。 SSIS是微软的一个智能解决方案,通俗点和ASP.NET程序差不多,它也设计了很多的类似控件的东西,不过叫任务,这些任务的主要功能是将数据从数据源转到数据目的,中间也会有查询,聚合等等更加具体的任务。
Windows Management Instrumentation (WMI)是Windows的最高机密之一,它允许你通过一个脚本界面来管理Windows平台。WMI数据读取任务通过WQL语言(WMA专用语言)来接触管理服务器或者工作平台(例如查看系统日志)。
Web服务任务是一个在SSIS中新添加的任务,它可以连接一个webservice并执行服务中的一个方法。执行方法之后可以将结果写回到一个变量或者文件中。这个任务适合处理第三方应用中的信息。例如可以利用这个任务执行webservice中的方法获得亚马逊的更新后的产品列表,并把这些信息写入到本地的服务器中。
通过消息队列任务可以从Microsoft Message Queuing (MSMQ)中接收或向它发送消息。消息的格式可以是字符串,文件或者变量。消息队列任务的优点是你可以在package正在运行的时候相互通信。
这种任务可以通过SMTP发送Email。在SQL Server 2000中需要通过MAPI来发送email,这意味着需要在执行package的机器上需要安装Outlook。这里不再需要安装Outlook也能发送email。
脚本任务允许利用Microsoft Visual Studio环境来使用VB.NET语言创建和执行脚本。ActiveX任务允许从SQL Server 2000中执行脚本。与ActiveX任务相比,脚本任务有一些优点。
执行程序包任务Execute Package task可以从当前package中执行子程序包中的一个package,在SQL Server 2000 DTS中这中任务是不存在的。在图3-16中你可以看到package标签下的ExecuteOutofProcess属性,将它设置为true,它将执行子过程中的任务。
FTP任务允许你通过FTP来接收和传送文件。在SQL Server 2000中只能通过它来接收文件。在SSIS中对它进行了大量的改进。可以接收,删除本地或者远程服务器上的文件。也可以在本地或远程服务器上创建文件。
网页截图是很多站点的一个小需求,这段代码实现的是如何根据url获得网页截图并输出到网页中。 代码 1 using System; 2 using System.Collections.
数据仓库中有时间表,存储时间信息,这个存储过程接收开始时间结束时间,写入时间具体信息。有高手用excel函数功能很快能产生INSERT语句不会啊,只能用这个。 参考知识 1 vSET ANSI_NULLS ON 2 GO 3 4 SET QUOTED_I...