DimDate】的更多相关文章

日期维度 任何一个数据仓库都应该有一个日期维度. 因为很少有不需要通过日期维度看数据的情况存在. 日期维度的好处是,你可以通过他连接各个事实表,然后在报表端传送报表参数的时候, 直接自动过滤日期维度的相关值,而不需要自己写query. 去掉了西班牙语和法语的那些列. You know that there are some holes in the sample database, DW2008R2 DIMDATE table. So I take my own dimdate. Just re…
CREATE TABLE [dbo].[DimDate]( [DateKey] int NOT NULL , [FullDate] DATE NOT NULL , [MonthNumberOfYear] tinyint NOT NULL , [MonthNumberOfQuarter] tinyint NOT NULL , ) NOT NULL , [ISOWeekNumberOfYear] tinyint NOT NULL , [SSWeekNumberOfYear] tinyint NOT…
先感叹一句!好长时间没有更新博客了!偶尔看到一句话,觉得被电击了 - 庸人败于懒,能人败于傲! 因此,不能再懒惰了! 今天想写一个有关计算 Week Number 的函数,刚开始觉得应该很简单,凭着感觉七写八写到最后发现越写越乱,到最后搞了快两个小时以为解决了,结果一测还有好多数据不正确.非常有挫败感!感觉很不服气,觉得很丢人,跑出去站了会,冷静下来,重新拿起纸笔认真的分析了一下,连写到测试快半个小时还是解决了.   在 SQL Server 中默认情况下,每周的开始都是从周日开始算起的.但是在…
Insert Values Insert Select Insert Exec Select Into Bulk Insert Insert Values是最常用的一种插入数据的方式,基本语法如下,表名之后可以指定目标列的名称,这种显式的指定目标列的名称是可选的,但是这种做法的好处是对语句的列值列名之间的关联关系进行控制,而不必单纯的依赖定义表时 各个列出现的顺序 INSERT INTO dbo.DimDate ( DataKey , Year , Qu , QuCN , Month , Mon…
SSAS Date 维度基本上在所有的 Cube 设计过程中都存在,很难见到没有时间维度的 OLAP 数据库.但是根据不同的项目需求, Date 维度的设计可能不大相同,所以在设计时间维度的时候需要搞清楚几个问题: 你的业务涉及到的最低的细节级别是什么?比如按季度查看报表还是按月份,或者按周,或者再甚者按天.这个细节级别需要弄清楚,比如在一些销售数据统计,有的时候可能更多按季度或者按月来查看报表.但在有的监控一些机器运行数据的统计,可能会按照小时或者分钟来查看报表. 你的报表所需要时间显示的格式…
创建步骤:   序号 选择的属性 重命名后的名称 属性类别 1 DateKey DateKey 常规 2 Month Key Month Key 月份 3 English Month Name English Month Name 每年的某一月 4 Month Number Of Year Month Number Of Year 常规 5 Calendar Quarter Key Calendar Quarter Key 季度 6 Calendar Quarter Calendar Quart…
上一篇我们已经完成了数据源的准备工作,现在我们就开始动手,创建第一个多维数据集(Cube). 文章提纲 使用多维数据集向导创建多维数据集 总结Cube设计器简介 维度细化 总结 一.使用向导创建多维数据集 在Analysis Services中,可以通过3种方法构建多维数据集:自上而下,自下而上或者基于一个空多维数据集. 一般我们从现有的关系数据库自下而上构建. 在自下而上方式中,需要一个DSV作为多维数据集的构建基础. AS中的多维数据集(Cube)包括两部分: 1. 一个或多个度量值组,其数…
我们在学习MSBI的时候,经常会使用官方提供的Adventureworks和AdventureworksDW示例数据库,但是官方提供的数据量有点小, 以DW为例,Factinternetsales只有不到七万行的数据,我们很难做某些测试,譬如说想对事实表做一个分区测试,测试CUBE性能等. 为此,我想以FactInternetSales表为入口,扩大它的数据量到数亿条. 经过分析,我觉得只要把理解主键是怎么生成的,以及orderdatekey,duedatekey,shipdatekey修改下,…
前一篇文章SSIS 学习(2):数据流任务(上), 介绍了如何创建一个简单的ETL包,如何通过一个简单的数据流任务,将一个文本文件的数据导入到数据库中去.这些数据都保持了它原有的本色,一个字符不 多,一个字符地少导入,但是在实际应用过程中,可能很少有这种情况,就拿IisLog文件来说吧,其中包含有:请求成功的记录(sc- Status=200),也有请求失败的记录:有网页(比如:*.aspx.*.htm.*.asp.*.php等).有图片.有样式表文件 (*.CSS).有脚本文件(*.js)等,…
用schema workbench 设置cube的维度结构 saiku 使用的cube,会将不同维度的查询转化为sql语句. schema中, cube的事实表和dimension表进行自然连接,具体的dimension设置是,dimension设置界面上foreign key(事实表的某一列)与hierarchy设置界面上primaryKey(dimension表的主键).关联是通过这两个列进行对比,所以一定要指定正确. 而,level设置界面上的Column是实现group by 的 写一个…
MDX语句的特点: 大小写不分.members等于Members;downloads等于Downloads 维度的统计量指定要选择准确.downloads等于[Downloads] []可以少,不能多.members外部不能有[],否则报错 TopCount函数格式. members是属性中所有成员的枚举. 同一维度下的属性组合,用Hierarchize: SELECT NON EMPTY {[Measures].[Downloads]} ON COLUMNS, NON EMPTY {Hiera…
维度名字尽量用英文:因为,saiku读取schema配置文件时,用中文会出现不可预知的错误.比如,引用维度用中文,就容易出现不可预估的错误.如果要显示中文:每个对象的caption字段里键入中文,则可在使用时显示中文. cube的cache属性 取消勾选(计算出错,往往是因为这个问题) (1)维度dimension设置: 事实表外键和维度表主键关联:从不同维度查询,实际就是两个表联合查询,本质是两个表做自然连接,因此事实表主键和维度表外键要一致,一一对应.如果类型不一致,报错: SQLExcep…
saiku连接infiniDB数据库 1,日期维度无结果. 原因:(数据库表内容出错) 表最后一列(日期字段)匹配出错,用"like %日期%"可以.说明入库时写入多余的空白符,因为直接看不出.windows表数据,放到linux下,后面也是\a\0,要用dos2unix命令转换. 2,workbench : (1)维度dimension设置: 事实表外键和维度表主键关联:从不同维度查询,实际就是两个表联合查询,本质是两个表做自然连接,因此事实表主键和维度表外键要一致,一一对应.如果类…
在 CUBE 设计过程中有一个非常重要的点就是定义维度与度量值组关系,维度的创建一般在前,而度量值组一般来源于一个事实表.当维度和度量值组在 CUBE 中定义完成之后,下一个最重要的动作就是定义两者之间的关系.在前面几篇文章中也已经看到了如何将度量值组和维度通过哪些维度属性进行关联的操作,但是那些关联通常都是 Regular 类型的,属于直接的普通的关联. 但是实际上除了 Regular 之外,还有 Fact, Referenced, Many to Many 和 Data Mining(数据挖…
来自群里面讨论的一个问题,EXCEL 中有类似于这样的图形,上面是 Chart, Chart X轴上的值正好就是下方 Table 的列头,这个在 SSRS 中应该如何实现?   SSRS 2008.2008RS,2012 中实际上没有这种对应的控件,我们通常想到的方式可能是上方一个单独的 Chart 图,下方一个 Table 然后合并在一起.但是这样会存在一些问题,因为 Chart 轴的值不是固定的,会随着聚合值的增加而扩展.并且对于表中的列头来说也没有办法完全能够和 Chart X 轴上的坐标…
在 SQL Server 中默认情况下,每周的开始都是从周日开始算起的,如果默认星期一呢? 这里有三种方式可以解决这个问题: 一:直接通过 SET DATEFIRST VALUE 来更改重新生成新的 DimDate,然后每次需要单独计算 Week Number 的时候根据 Date Key 关联一下就可以了,但这样就需要不断 JOIN DimDate,每一条记录都要 LookUp 一遍 二:在存储过程中需要使用到  Week Number 的时候,就先设置一下 SET DATEFIRST 然后在…
MDX基本语法 MD询语句的结构及语法 MDX查询示例 基本的MDX SELECT语句包含一SELELCT字句和一个FROM字句,以及一个可选的WHERE子句.如下 SELECT {[Measures].[销售量],[Measures].[销售金额]} ON COLUMNS {[DimDate].[Year].&[2017],[DimDate].[Year].&[2018]} ON ROWS FROM TABLE WHERE ([DimShop].[门店简称].$[海澜之家]) 1.SEL…
SSAS Date 维度基本上在所有的 Cube 设计过程中都存在,很难见到没有时间维度的 OLAP 数据库.但是根据不同的项目需求, Date 维度的设计可能不大相同,所以在设计时间维度的时候需要搞清楚几个问题: 你的业务涉及到的最低的细节级别是什么?比如按季度查看报表还是按月份,或者按周,或者再甚者按天.这个细节级别需要弄清楚,比如在一些销售数据统计,有的时候可能更多按季度或者按月来查看报表.但在有的监控一些机器运行数据的统计,可能会按照小时或者分钟来查看报表. 你的报表所需要时间显示的格式…
在熟悉完下面这三种维度的创建方式之后,就可以开始创建我们的第一个 Cube 了. SSAS 系列 - 自定义的日期维度设计 SSAS 系列 - 基于雪花模型的维度设计 SSAS系列 - 关于父子维度的设计 我们将使用下面的这些脚本来创建一些维度表和事实表,数据源的来源是 AdventureWorksDW2012,但由于数据列太多因此我精简了一些表并且自定义了 DimDate 表. USE BIWORK_SSIS GO SET NOCOUNT ON IF OBJECT_ID('FactIntern…
在 SSAS 系列 - 实现第一个 Cube 以及角色扮演维度,度量值格式化和计算成员的创建 中主要是通过已存在的维度和事实数据创建了一个多维数据集,并同时解释了 Role-Playing Dimension 角色扮演维度,计算成员,计算成员格式化等内容.在这篇文章中主要是分析和理解在多维数据集设计过程中的聚合函数,对应不同类别的度量值根据需求的不同在聚合函数的选择上也会有所不同. 继续使用在上一篇 SSAS 文章中创建的示例,在 BIWORK_FirstCube 中能看到有两组度量值维度组和各…
SQL Server 2012 中提供了开发 SSAS 项目的两种模型,一种是新增加的 Tabular Model 表格模型,另一种就是原始的 Multidimensional Model 多维模型. 在这里演示的是 Multidimensional Model,如果要了解 Tabular Model 表格模型,请参看 - http://www.cnblogs.com/biwork/archive/2013/05/22/3093896.html 下面使用的环境是 VS2012 + SSDT 集成…
SSRS 报表中有一些高级的技巧,平常很少用到,下面我通过这个案例来展现一下如何在实际开发中使用它们,并且如何解决一些实际的需求. 这张报表分别统计了不同的 Product 产品在不同的月份的 Order 订单数量, Due 付款数量和 Ship 装船数量. Start Date 和 End Date 的时间范围作为筛选,很显然第一个 Matrix 是以 Order Date 作为比较条件,第二个是以 Due Date, 第三是以 Ship Date 作为比较条件. 现在需要变成这样的一种需求…
在本课中,将创建一个简单 ETL 包,该包可以从单个平面文件(Flat File)源中提取数据,使用两个查找转换组件转换该数据,然后将该数据写入AdventureWorksDW2012 的 FactCurrency 事实数据表中. 在本课中,您还将学习如何创建新包.添加和配置数据源和目标连接以及使用新的控制流和数据流组件. AdventureWorksDW2012 下载地址:http://msftdbprodsamples.codeplex.com/releases/view/55330 Ste…
Computed Column(计算列)是自SQL Server 2005开始就有的特性.计算列的定义是一个表达式.表达式可以是非计算列,常量,函数间的组合.但是不可以是子查询. 计算列数据固化 默认情况下计算列的数据是存储在磁盘上,仅当计算列被查询引用是才进行实时计算.只在计算列在定义是添加了PERSISTED关键词是才将数据固化. 计算列上创建索引或者作为分区函数的引用列 计算列上是运行创建索引和作为分区函数的引用列.但是必须指定PERSISTED关键词. 用法其实很简单.那么这里有些问题.…
  维度的每一个属性都有KeyColumns,NameColumn和ValueColumn 1,如何理解KeyColumns,NameColumn和ValueColumn?对一行记录有不同的标识列,但标识的是同一行记录. 对于int类型,占用存储空间小,容易聚合,适合做primary key,但是不易阅读: char类型的数据,容易阅读,适合作为Name Column: 对于一个有具体类型的数据,其value必须能够做一些运算,例如Date类型,能够做Year(),dateadd()等运算,这些…
asp.net中连接数据库有两种方式为appSettings和connectionStrings connectionStrings比较常用,所以只讲一下connectionStrings方式的连接 webconfig配置如下: <connectionStrings> <add name="connString" connectionString="Server=.;DataBase=AdventureWorksDW2012;Uid=sa;Pwd=123&q…
简介 Power BI Desktop -是一款由微软发布的自助式商业智能工具,功能强大.易于使用.其中还可以通过微软云连多个数据源并且使用数据源来创建可视化表盘. 但是几乎所有的BI都需要展示如何随时间改变KPI.因此我将会介绍一个帮助我们使用事件元素来分析数据的关键功能.在PowerBI Desktop 中叫做“time intelligence”.应用这种时域分析法能是商业智能中基本的数据表现形式.毕竟公司想要知道的无非就是今年的业绩相比去年如何以及取得了何种进步. “Time intel…
第 9 课 将数据从microdost sql数据库导出到cvs,excel和txt文件. In [1]: # Import libraries import pandas as pd import sys from sqlalchemy import create_engine, MetaData, Table, select In [2]: print('Python version ' + sys.version) print('Pandas version ' + pd.__versio…
表连接是指两张表根据关联字段,组合成一个数据集.表连接不仅可以利用数据模型中已有的关系,而且可以利用DAX表达式基于表的任意列定义连接条件.因此,在DAX中,实现表与表之间的连接,有两种方式: 第一种方式:利用数据模型中的现有关系,以便查询包含在不同表中的数据. 第二种方式:编写 DAX 表达式创建连接,以生成与关系等效的效果. 一,利用数据模型中的关系(左外连接) 利用数据模型中的关系来连接表,是DAX中最常用的行为,关系隐式实现外连接(LEFT JOIN).DAX数据模型中的关系分为三种:实…
DAX中用于处理文本的函数,和其他语言很相似. 一,文本连接 文本连接也可以使用操作符 & 来实现,也可以使用函数CONCATENATE来实现: CONCATENATE(<text1>, <text2>) 把整个表中的所有行,使用分隔符拼接为一个字符串,返回值是一个字符串,不常用: CONCATENATEX(<table>, <expression>, [delimiter]) 按照分隔符,对多个字符串进行连接,返回一个字符串: COMBINEVAL…