[随笔分类]SQL Server BI
文章平均质量分 74
chen_xizhang
服务于微软.NET 平台,SQL Server 平台,Office平台
架构师、资深顾问,高级讲师
展开
-
如何在SSIS的脚本组件中访问变量
这是一个小问题,我们在SSIS的设计中很多地方都会用到变量,我习惯性地将“变量”和“表达式”称为SSIS的灵魂,虽然不见得绝对准确,但它们确实是保证一个SSIS包灵活性的根本。 同时,我们可能也会在数据流任务中添加“脚本组件”,用我们熟知的C#或者VB.NET编写一些数据转换处理的逻辑。这里可能就有一个需求,我们希望在脚本组件中访问变量(读或者写),但默认情况下,这个需求并不是那么容易实现。我们来原创 2011-05-21 12:32:00 · 1964 阅读 · 0 评论 -
SSAS : XMLA over TCP/IP的实现
之前提到微软的SSAS首席科学家Mosha Pasumansky曾经写过一篇专门的文章介绍了XMLA over TCP/IP这个协议在SSAS上面的实现。 http://www.mosha.com/msolap/articles/as2005_protocol.htm 我从来都觉得,学习东西一定要转换为自己的知识才行。所以我的总结几点如下 1. 该协议是微软的专利技术,并没有公开具体的接口。 2.原创 2009-06-27 09:55:00 · 637 阅读 · 0 评论 -
SSAS : 外围应用配置器
SQL Server 2005开始提供了一个新的工具:外围应用配置器,旨在提供更好的安全性保护(我们称为默认安全). 它可以管理两部分的功能 1. 服务与连接:主要与服务的启动,停止,以及是否允许远程连接有关系 2. 功能:主要与一些比较有安全隐患的功能有关系 【注意】值得一提的是,这个工具在SQL Server 2008中被废除了,它的功能被合并到所谓的“方面管理”里面去了。这个原创 2009-06-27 09:15:00 · 823 阅读 · 0 评论 -
SSAS:如何查看服务器会话并且有选择性地终止某些会话
在SSAS的管理维护工作中,我们经常需要查看服务器当前的会话信息,并且根据实际情况有选择性进行终止某些会话。例如某些会话的时间过长,或者异常情况。 1. 如何查看会话列表 DISCOVER_SESSIONS 这个语句看到的结果大致如下 http://www.w3.org/2001/原创 2009-06-25 20:46:00 · 407 阅读 · 0 评论 -
SSAS: 如何在ADOMDConnection中指定会话ID
SSAS的所有客户端操作,不管你用什么工具,都将转换为XMLA语句传递给服务器。我们用的比较多的是ADOMD.NET Client这套接口来访问的。 在XMLA操作中,有一个非常重要的部分就是会话(SESSION),客户端与服务器端之间的通讯是需要用会话来维护的,而且SSAS有很多对象是可以在会话级别访问的,例如计算成员和集,都有会话级别的部分。 那么,如何在ADOMDConnection中指定或原创 2009-06-25 19:56:00 · 423 阅读 · 0 评论 -
SSAS : 数据挖掘分析器
大家都知道,数据挖掘看起来很美,但要真正用起来却不是那么容易。同时,它的客户端集成方面还不是那么方便。可能主要由于他的结果太复杂。 这是我正在开发的一个产品的一个小的部分,可以针对数据挖掘模型进行分析.所用到技术其实主要就是XMLA,DMX和SOAP,以及客户端的XML解析. 以下截图只是其中一个界面.用户可以点击左边的模型列表,然后查询挖掘模型,将相关的产品找出来. 【注意】因为是做为产品开原创 2009-06-26 19:35:00 · 713 阅读 · 0 评论 -
SSAS: 如何在客户端程序中调用DISCOVER命令
上次我们提到了如何用DISCOVER命令,查看服务器端的所有会话 DISCOVER_SESSIONS 这一段脚本可以在服务器端直接执行 那么这一段脚本怎么在客户程序中执行呢? 【注意】ADOMD.NET是不可以直接执行DISCOVER命令的。我们一般通过下面这样的原创 2009-06-26 18:21:00 · 503 阅读 · 0 评论 -
SSAS: Discover 何处寻? 一切尽在GetSchemaDataSet
在之前,我们谈到过,在ADOMDCommand中是不可以执行Discover命令的,它基本上都对应了Execute命令 但是,如果我们确实需要通过ADOMD来完成Discover的操作,除了像上一篇讲到的,利用直接发送XMLA Envelope之外,是否还有其他方法 答案是:有 所有与Discover有关的操作,都可以通过ADOMDConnection的一个方法来完成:GetSchemaDataS原创 2009-06-26 18:19:00 · 656 阅读 · 0 评论 -
SSAS: 再谈谈如何控制会话(Session)及其销毁
理解会话对于理解SSAS的编程比较重要。从名字上说,Session还可以称为Dialog,或者Convensation等等。它们都表示这样一个意思: 1. 它们需要预先建立 2. 一旦建立之后,那么在这个会话上可以进行多个操作,而且这些操作都可以共享一些会话级别的资源,例如变量值等等 3. 它们需要关闭,或者被自动回收 SSAS的会话是由服务器控制的,通常情况下,它的最小空闲时间是45分钟(2原创 2009-06-26 18:08:00 · 570 阅读 · 0 评论 -
诡异的命名空间问题
在处理XML文档的时候,一定要注意,有一个很诡异的问题,就是如果你的元素是含有默认命名空间的,则不仅仅是要添加XmlNamespaceManager,还要特别注意处理默认命名空间的问题。 下面是一个例子 例如我们要解析下面这一段XML文本,获取里面的SessionId http://schemas.xmlsoap.org/soap/envelope/"> 代码应该这样写 private str原创 2009-06-25 08:54:00 · 531 阅读 · 0 评论 -
Analysis Services 2005 protocol - XMLA over TCP/IP
原文参见: http://www.mosha.com/msolap/articles/as2005_protocol.htm By Mosha Pasumansky, December 2005 【备注】mosha是微软负责SSAS的首席科学家,也是MDX之父 有心深入了解SSAS,而不是停留在工具的使用的朋友,应该了解XML/A及其相关协议层的应用(例如http,和tcp/ip) It ha原创 2009-06-25 08:30:00 · 495 阅读 · 0 评论 -
为安装好的SSAS实例重命名
某些时候,你可能需要对已经安装好的SSAS实例进行重命名. 一个典型的应用场景是:在你对SSAS 2000的服务器进行了side by side 的migrate后,SSAS 2005作为命名实例存在与SSAS 2000并行。当一切测试完成,你可能会删除掉SSAS 2000,而想把SSAS 2005设置为默认实例 你当然不想删除掉然后重装。那么有没有什么比较简洁的方法来完成这样的任务呢? 答案是有原创 2009-06-23 16:04:00 · 556 阅读 · 0 评论 -
SSIS支持多实例吗?
我们知道在安装SQL Server组件的时候,有一个选择就是:可以安装多个实例。 如果一个物理机器安装有多个实例,那么他们的区别在于,有一个叫默认实例,其他的都叫命名实例。 默认实例的好处是访问起来比较方便,因为要访问默认实例的话,只需要输入服务器名称就可以了。 那么,哪些组件是支持多实例的呢? SQL Server Database Engine SQL Server Analysis Se原创 2009-06-23 16:01:00 · 1233 阅读 · 0 评论 -
SSIS中的SQL Server目标,OLEDB目标以及SQL Server Mobile目标
这一篇来讲解一下三个有关联的目标组件。它们分别是:SQL Server目标,OLEDB 目标,和SQL Server Mobile目标 我的总结如下 1. SQL Server目标是专门针对SQL Server的,性能较好 2. OLEDB 目标可以针对包括SQL Server 在内的所有支持OLEDB访问接口的目标,兼容性较好 3. SQL Server Mobile目标是针对用于手机设备的移动原创 2009-06-22 12:18:00 · 980 阅读 · 0 评论 -
SSIS中的DataReader源和目标
这一篇来讲解一下,SSIS中中的DataReader源和目标。这两个组件与标准的OLEDB源和OLEDB目标的区别在于它直接使用.NET 提供程序。即便仍然是使用OLEDB,也是ADO.NET 里面的OLEDB这个提供程序。 一般来说,它可能用到的提供程序是 ODBC OLEDB SQLCLIENT 1. 数据源的配置 数据源没有太多需要介绍的,你就是可以理解它为一个专门使用.NET原创 2009-06-22 11:28:00 · 3941 阅读 · 0 评论 -
为SSIS编写简单的同步转换组件
上一篇讲到了同步转换和异步转换的概念。通常情况下,大部分转换都是同步的,即收到一行就处理一行。(注意,这样说可能不是很准确,实际上即便是同步机制,数据流也会适当的进行缓存的,只不过这种缓存对用户数透明的,用户可以理解为收到一行就处理一行) 同步转换组件可以很简单,也可以很复杂。这取决于你的设计逻辑。 这一篇我还是用一个简单的例子来讲解,旨在让大家了解同步转换组件的设计流程。 需求:我们这个组件很简原创 2009-06-21 19:51:00 · 735 阅读 · 0 评论 -
为SSIS编写自定义数据流组件之进阶篇:自定义属性的下拉式编辑器
之前的一篇文章中,我们讲解到了,如果一个自定义属性是可选值,我们可能更希望用下拉列表的方式让用户选择,而不是弹出一个对话框。 http://www.cnblogs.com/chenxizhang/archive/2009/06/21/1507686.html 上面这一篇讲解的是如何通过枚举类型的方式实现简单的下拉列表。很显然的一个问题是,枚举的个数是固定的,而且是有限的。 那么有没有办法让我们的列原创 2009-06-21 16:31:00 · 970 阅读 · 0 评论 -
SSAS : 使用.NET为SSAS编写自定义程序集(三)
这一篇我们来看看如何在存储过程中访问当前的上下文,例如当前在哪个数据库,哪个服务器等等 首先,需要添加引用 需要注意,如果你的机器安装了多个SQL Server的版本,一定要找到正确的目录.下面这个目录是SQL Server 2005的 修改代码如下 using System;using System.Collections.Generic;using System.Text; us原创 2009-06-27 12:46:00 · 461 阅读 · 0 评论 -
SSAS : 从现有多维数据集创建挖掘结构
在SSAS中,我们可以利用9种内置算法进行数据挖掘的操作和分析。不少朋友估计也对数据挖掘有了一些初步认识了。我今天要介绍的是,数据挖掘除了可以读取关系数据库作为数据源之外,还可以读取多维数据集作为数据源。例如下面 我做了一个简单的例子如下 本文由作者:陈希章 于 2009/6/30 21:55:19 发布在:http://www.cnblogs.com/chenxizhang/ 本文版权原创 2009-06-30 21:55:00 · 835 阅读 · 0 评论 -
【SSAS】Model-First Cube 设计的最佳实践
【备注】这是最近在一个讲座中的例子,整理出来给大家参考 相关名词解释 SSAS: SQL Server Analysis Service。 这是微软SQL Server BI(商务智能)平台的一个核心组件,它可以基于UDM(统一维度模型)构建多维数据集和挖掘模型,支持OLAP(在线分析)和Data Mining(数据挖掘) Cube: 多维数据集 这是SSAS项目设计的一个核心目的,创建多维原创 2011-06-09 10:11:00 · 1432 阅读 · 0 评论 -
SQL Server BI : 如何为SSAS Cube生成报表模型
在我们给客户做的商业智能(BI) 解决方案中,我们会将数据通过ETL的设计,从OLTP数据库中传输到数据仓库中,然后再针对数据仓库的数据创建分析模型(包括了OLAP模型和Data Mining模型),最后我们会针对OLAP模型设计各种报表 但我这篇文章并不是为了讲解上述过程,而是讲解一下如何为OLAP模型(主要指Cube的部分)生成报表模型,这样最终用户就可以自己通过Reporting Service所提供的ReportBuilder工具来制作自己的报表了。 之所以要写这个文章,是因为有很多朋友来问我,为什原创 2009-11-19 09:02:00 · 2264 阅读 · 0 评论 -
SSAS : 如何禁用SSAS的QueryLog
在使用SSAS的过程中,有时候会发现它在启动的时候,很慢,而且非得将SQL Server关系引擎开起来才行。原因可能是之前我们设置了对SSAS的QueryLog,就是指定了日志连接。这个连接通常都是指向SQL Server关系数据库引擎的一个数据库。所以它在启动的时候会去检查这个连接 在图形化界面中无法禁用这个连接。可以通过下面的XMLA脚本来实现 http://schemas.microsoft原创 2009-07-07 07:45:00 · 543 阅读 · 0 评论 -
SSAS : 如果在MDX查询中没有指定度量值,那么会怎么处理
我们知道,在SSAS中,其实所有的度量值合在一起,属于一个特殊的维度。这个维度名称为Measures。那么既然是维度,就存在一个切片的问题。如果一个标准维度,没有指定切片的粒度,那么就是用所有该维度的成员计算。也就是(ALLMember).但是对于度量值呢?总不可能将所有的度量值都计算一次吧?这显然是不对的 如果有必要,我们可以指定某个常用的度量值为默认度量值,例如Internet Sales原创 2009-07-02 19:54:00 · 1077 阅读 · 0 评论 -
SSAS : 商务智能门户(预览)
最近在结合之前的一些项目积累,着手开发一套在线分析系统。作为演示目的,我还使用了官方提供的数据库,以及里面的数据。大致的几个截图如下。 【注意】该系统的代码及有关细节可能不会公开。而且目前在不断修改中,所以以下的截图仅供参考 本文由作者:陈希章 于 2009/7/2 19:52:22 发布在:http://www.cnblogs.com/chenxizhang/ 本文版原创 2009-07-02 19:52:00 · 651 阅读 · 0 评论 -
SSAS : 如何编写自定义挖掘算法
我相信很多朋友都有这样的冲动和好奇:现在SSAS提供了这些挖掘算法,但如果我们的行业或者公司有些比较特殊的算法,有没有办法直接自己写一个,然后部署给它用呢? 答案是可以的。 以下的内容摘自:http://msdn.microsoft.com/zh-cn/library/ms176127.aspx 有兴趣的朋友参考一下。目前编写挖掘算法的语言必须是C++ 除 Microsoft SQ原创 2009-07-02 08:37:00 · 590 阅读 · 0 评论 -
SSAS : 数据库角色的信息是保存在哪里的
SSAS的安全是基于角色来管理的,而且它所接受的身份验证模式只有Windows验证着一种。这一点需要特别注意 而另外一个要注意的是,假设我们为某个角色授予了对某个SSAS对象的权限,例如读取某个维度数据的权限,那么这些定义是放在哪里去了呢? 这些定义我们称为元数据。他们是直接跟维度定义放在一起的。例如下面这个例子 这个定义就相当于在下面这样设置 【注意】 因为维度是可以共享的(也可以链接)原创 2009-06-30 18:12:00 · 989 阅读 · 0 评论 -
SSAS2008 : 全新的可扩展插件架构
SSAS 2008有很多不错的增强,其中一个就是对于扩展性方面的增强。下面这个文章介绍了这些特性 http://msdn.microsoft.com/zh-cn/library/cc627355(loband).aspx 下面是我写的一个范例 using System;using System.Collections.Generic;using System.Text;using Microsof原创 2009-06-27 15:31:00 · 424 阅读 · 0 评论 -
SSAS : 如何在http访问SSAS中指定语言标识
我们之前提到,如果在ADOMD.NET里面的话,它的ConnectionString有一个属性叫LocaleIdentifier,这是指定语言的。 那么如果我们是通过HTTP的方式来访问SSAS的话,该怎麽办呢 其实道理也是差不多的,可以通过在消息包中指定下面的信息即可 http://schemas.xmlsoap.org/soap/envelope/"> http://schemas.mic原创 2009-06-27 10:09:00 · 575 阅读 · 0 评论 -
SSAS : 数据访问接口整理汇总
Microsoft SQL Server 2005 Analysis Services (SSAS) supports several technologies that can be used to access data and metadata stored on an instance of Analysis Services. Using the Analysis Services da原创 2009-06-27 09:11:00 · 1793 阅读 · 1 评论 -
SSAS : 在SSAS 2008的自定义存储过程中取得当前用户名
之前我说到过了,在SSAS 2005中,自定义存储过程没有办法直接读取到用户名。关于这一点,在SSAS 2008中得到了改进。如下图所示 能够做到这一点是因为Microsoft.AnalysisServices.AdomdServer这个程序集中,Context对象多了一个CurrentConnection属性。这个属性代表了当前的连接。 public static string GetUse原创 2009-06-27 14:53:00 · 568 阅读 · 0 评论 -
SSAS : 使用.NET为SSAS编写自定义程序集(四)
这一篇我来讲解一下如何为SSAS编写一些操作.这与之前谈到的用于查询的存储过程是不一样,它没有返回值,而是进行某个操作. 通常这种操作,会根据一些参数对当前的Cube做一些操作.我这里作为演示目的,就写了一个最简单的文件操作,以便大家理解 1. 添加一个方法 public static void SomeMethod(){ File.AppendAllText("e://temp//l原创 2009-06-27 13:00:00 · 490 阅读 · 0 评论 -
SSAS : 使用.NET为SSAS编写自定义程序集(二)
上一篇,我们演示了一个简单的函数,AddPrefix,它的作用是为一个字符串添加一个前缀。 http://www.cnblogs.com/chenxizhang/archive/2009/06/27/1512163.html 下面为它添加一些灵活性 using System;using System.Collections.Generic;using System.Text; namespace原创 2009-06-27 11:41:00 · 491 阅读 · 0 评论 -
SSAS : 使用.NET为SSAS编写自定义程序集
从SQL Server 2005开始,SQL Server平台提供了一个很强大的功能:CLR集成。就是说,现在我们可以使用.NET语言(例如C#或者VB.NET)编写一些对象,然后部署到SQL Server中去,达到扩展SQL Server的目的。 在SQL Server关系数据库引擎中,我们可以编写下面五种对象 存储过程 函数(标量的,或者是表值函数) 触发器 聚合 自定义类型 在SQL Se原创 2009-06-27 11:23:00 · 812 阅读 · 0 评论 -
SSAS : ADOMDConnection.ConnectionString的参数列表
关于ADOMDConnection这个对象的连接字符串(ConnectionString),它的有一些参数还是需要注意的.我整理如下 1. Data Source和CataLog是必须的 2. UserName和Password是可选的 Setting name(名称) Setting aliases(别名) Description(描述) Timeout None Sets原创 2009-06-27 09:21:00 · 917 阅读 · 0 评论 -
SSAS : 如何更改服务器的加密选项
默认情况下,对于通过TCP/IP的方式与SSAS通讯的请求,SSAS会加密数据并且对其进行签名。这样做当然是提高安全性。与此同时,它也可能会加重CPU的负担,但微软官方资料表示,这种负担大约是提高了5%左右。所以,综合起来说,还是比较划算的。 如果我们需要进行一些诊断和调试,我们可能希望在某个时候不进行加密。根据资料说,可以通过修改连接字符串中的ProtectionLevel来指定有关的选项,但我原创 2009-06-27 09:08:00 · 582 阅读 · 0 评论 -
为SSIS编写自定义数据流组件(DataFlow Component)之进阶篇:数据源组件
上一篇,我们讲到了一个简单的步骤,包括创建项目,部署和测试。这一节,首先来探讨一下数据源组件的设计 1. 添加几个引用。请确保添加了下图所示的四个引用,以及添加了相应的using语句 【注意】为了更好地表达我的目的,我已经修改了该组件的名字。它现在是一个“文件夹数据源”,目的是用来读取一个文件夹的文件信息。想想看,你是不是正好有这样的需求呢 2. 添加输出列的定义 作为一个数据源,很显原创 2009-06-21 09:50:00 · 1669 阅读 · 0 评论 -
SSIS 2008中的Data Profiler任务
该篇文章是我于2009年6月10日通过自己编写的工具,批量从位于在博客园的博客站点(http://chenxizhang.cnblogs.com)同步而来。文章中的图片地址仍然是链接到博客园的。特此说明!陈希章 原文地址:http://www.cnblogs.com/chenxizhang/archive/2009/04/29/1445825.html原文标题:SSIS 2008中的原创 2009-06-12 01:04:00 · 538 阅读 · 0 评论 -
如何在子包中使用父变量的值【转载】
该篇文章是我于2009年6月10日通过自己编写的工具,批量从位于在博客园的博客站点(http://chenxizhang.cnblogs.com)同步而来。文章中的图片地址仍然是链接到博客园的。特此说明!陈希章 原文地址:http://www.cnblogs.com/chenxizhang/archive/2009/03/06/1404748.html原文标题:如何在子包中使用父变量原创 2009-06-12 00:48:00 · 525 阅读 · 0 评论 -
SSAS中数据源设置和模拟信息
该篇文章是我于2009年6月10日通过自己编写的工具,批量从位于在博客园的博客站点(http://chenxizhang.cnblogs.com)同步而来。文章中的图片地址仍然是链接到博客园的。特此说明!陈希章 原文地址:http://www.cnblogs.com/chenxizhang/archive/2008/11/15/1334251.html原文标题:SSAS中数据源设置和原创 2009-06-12 00:47:00 · 964 阅读 · 0 评论 -
SSIS的一个问题
该篇文章是我于2009年6月10日通过自己编写的工具,批量从位于在博客园的博客站点(http://chenxizhang.cnblogs.com)同步而来。文章中的图片地址仍然是链接到博客园的。特此说明!陈希章 原文地址:http://www.cnblogs.com/chenxizhang/archive/2008/08/17/1269693.html原文标题:SSIS的一个问题原原创 2009-06-12 00:44:00 · 2027 阅读 · 0 评论