RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
维度表怎么建Oracle,维度表的作用

如何用date和time来创建时间维度表

为了使WinCC能够访问S7控制器DATE_AND_TIME数据类型的变量,必须创建一个对应DATE_AND_TIME数据类型的结构变量。字节S7数据类型DATE_AND_TIMEWinCC结构元素时间标识0YearYEAR"yyyy"1MonthMONTH"m"2DayDAY"d"3HourHOUR"h"4MinuteMINUTE"n"5SecondSECOND"s"61/10and1/100secondMILLISEC174MSB:1/1000second4LSB:weekdayMILLISEC2表01使用VBS函数“DatePart”,可以确定WinCC日期/时间变量的组成元素(如,年,日,分钟),通过“DateAdd”改变日期/时间的组成。这两个VBS函数需要在表中指定时间标识以确定日期/时间的组成。信息:关于结构变量DATE_AND_TIME的信息请参考手册ProgrammingwithSTEP7下的:"Appendix""Dataandparametertypes""Combineddatatypes""FormatofthedatatypeDATE_AND_TIME";关于读取指定date/time组成的信息请在WinCCInformationService下索引:DatePart;关于编辑指定date/time组成的信息请在WinCCInformationService下索引:DateAdd。说明:以下说明是组态创建必需的WinCC结构变量。为此,WinCC项目必须已经打开,并且到控制器的连接也已经组态。No.步骤1在树形图中右键点击“结构变量”并选择菜单“新建结构类型”;2在"OS"区域右键点击"NewStructure",选择菜单"重命名"并输入新的结构名称(如S7_DATE_AND_TIME);3点击按钮“新建元素”,右键点击“SHORTNewTag”,选择数据类型为“BYTE”;4选中“BYTENewTag”,在类型转换下拉列表中选择“ByteToBCDByte”;5再次右键单击已插入的结构元素(“BYTENewTag”),选择菜单“重命名”并输入名称“YEAR”;6重复步骤3-5创建如下变量,然后点击“OK”确认此对话框。MONTHDAYHOURMINUTESECONDMILLISEC_1MILLISEC_2图017在变量管理器中,双击已经建立的通道(如TCP/IP)并且点击新建的连接;8右键单击明细窗口的空白区域,选择菜单"新建变量"。9输入名称(如CPUTime),数据类型选择已创建的结构名称(如S7_DATE_AND_TIME);10选择数据区(如数据块DB2)及DATE_AND_TIME变量的起始字节(如0),然后点击“OK”确认所有对话框。图02注释:在变量管理中不能删除结构变量。仅在"StructureTypes""NameofStructure""NameofTag"才能删除结构变量。如果为同样结构的多个结构创建函数,必须transfer函数的结构名称。结构元素的变量名称是动态生成的,例如DATE_AND_TIME结构:

创新互联企业建站,十载网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于成都做网站、成都网站建设中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。

《数据仓库工具箱》读书笔记(一):维度建模初步

1、方便地保存数据

2、数据一致性

3、适应变化

4、及时展现数据

5、信息安全

6、数据权威

7、支撑业务

1、理解业务 理解用户

2、为用户提供高质量、相关的、可访问的信息

3、维护数仓/分析环境

1、维度模型和3NF模型包含的数据是一样的,只是维度模型存储的数据更易理解,查询性能更高,包装得更灵活

事实表:

2、维度模型中的事实表来自对业务过程性能的 度量

3、事实表中每行对应一个度量事件

4、每行中的数据是一个特定级别的细节数据,称为 粒度

5、事实表通常分为事务、累计快照、周期快照

6、事实表主键通常成为组合键

维度表:

7、维度表包含与业务过程度量事件有关的文本 环境

8、数仓分析环境取决于维度属性的质量和深度

1、Kimball

1、收集业务需求与数据实现

2、维度设计过程:选择业务过程、声明粒度、确认维度、确认事实

3、业务过程是组织完成的操作型活动(订单、注册)

4、粒度:事务表里的每一行表示的是什么

5、维度:用于描述环境

6、事实:对业务过程进行度量

7、灵活扩展:事实粒度一致时可直接创建列,通过新的维度列关联维度至事实,可以在维度表上简历新列添加属性,可以使事实表粒度更原子化

1、事实表行对应一个度量事件

2、可加、半可加是针对维度而言的,部分维度可加的是半可加。

3、事实表中的外键不能存在空值

4、最好保证事实度量是一致的

5、事务事实表:一行对应空间或时间上某点的度量事件,比如订单表、日志表

6、周期快照事实表:每行汇总了发生在某一周期的多个度量事件,比如一个用户在一天里的点击、退出次数

7、累计快照事实表:每行汇总了发生在过程开始和结束之间可预测步骤内的度量事件,比如订单有提单、支付、成单、配送、评价的可作为度量的过程

8、无事实事务表:可能存在某些事件仅仅记录 多维实体 ,没有数字化的事实

9、聚集事实表:对原子粒度事实表数据进行上卷

感觉多数还是事务和聚集事实表

1、维度表应当具有单一主键列,它是扁平非规范表

2、维度表需要主键,可以为维度表生成无语义的整数型主键,可以借助UDF来进行生成

3、操作型系统中自然键不能满足需求时可以采用持久性超自然键

4、将常用维度退化到事实表中,清楚地表明没有关联的维度

5、同一维度可能存在不同的层次,一级城市,二级城市

6、可以建立将不同维度合并到一起的杂项维度,而不要为每个标识或属性定义不同维度

7、 雪花维度: 低粒度属性作为辅助表通过属性键连接到基本维度,当这一过程中包含多重维度表层次时,建立的多级层次结构被称为雪花模式

8、支架维度:被引用的辅助维度成为支架维度,比如银行账户维度可以引用开户日期维度

当不同的维度表的属性具有相同列名和领域内容时,称维度表具有一致性

1、原样保留

2、重写

3、增加行

4、增加新属性(列)

1、固定深度位置层次,能够提佛那个可预测的、快速的查询性能

2、其他还可能存在可变深度层次、层次桥接、路径字符属性可变深度层次,但这些最好向固定深度层次进行统一

1、蜈蚣事实表:存在多层次维度外键

2、事实表也可分配代理键

3、多遍SQL以避免事实表间的连接

1、聚集事实也可作为维度进行处理(例如金额大于多少的用户)

2、步骤维度:在日志表里可以为行为顺序进行编号,探究行为发生的过程,这个维度叫步骤维度

可视化数据表如何添加维度表

创建维度表时:

可以关联本维度表是用于分析哪个业务分类、哪个数据域,便于后续直接查看具体某一数据域或数据集市下,有哪些维度表。

可以指定维度表后续在数据建模分析使用时,维度表的数据存储于数仓中的哪个数据分层,一般情况下维度表可存储于公共维度层(DIM层)。

维度表创建后,您可以将维度的属性添加为维度表的字段,并对维度表进行关联和分区的设置,使用统一的数据标准来进行字段设置,保障全数据域中的维度数据的属性是一致的。

维度表配置完成后:

可物化至存储引擎,后续在计算引擎中使用维度表进行数据分析。

在进行数据派生指标和汇总表的设计创建时,可直接关联使用维度表中的维度。

创建维度表

进入维度建模。

登录DataWorks控制台。

在左侧导航栏,单击工作空间列表。

选择工作空间所在地域后,单击相应工作空间后的数据开发。

单击左上方的图标图标,选择全部产品 数据建模 维度建模,进入维度建模页面。

创建维度表。

在维度建模页面,鼠标悬停至加号图标,单击逻辑模型 创建维度表。

配置维度表的基本信息。

您可根据需求,选择维度表所挂载的层级、数据域、业务分类、数据集市等信息,选择后,后续可进入相应对象的列表查看所创建的维度表。创建维度表主要参数说明如下。

参数项 描述

存储策略 维度表基于什么策略(即存储数据的时间周期及数据量范围)存储数据。

维度 维度表关联的维度,用于配置维度表分析数据的视角。

说明 创建维度,详情请参见创建维度。

表名规则 通过已配置的检查器规范维度表的命名规则。选择检查器后,该维度表的表名需按照检查器定义的规则配置。

说明 配置检查器,详情请参见配置及使用数仓分层检查器。

生命周期 维度表保留的时间周期。最大可保留36000天。

表类型 根据实际情况,选择如下类型。

普通维度表:普通的维度表,无其他需求可选择该类型。

枚举维度表:可进行枚举的维度表,例如性别维度表。

层级维度表:存在字段需要设置层级关系,支持指标做上卷和下钻使用。例如国家、省份、市县等。

配置完成后,单击保存,维度表创建成功。

在维度建模左侧目录树相应的数据域或业务分类下,可查找并统一管理维度表。

oracle建立时间维度

你参考的例子是MS Sql Server的,@XX是变量的意思。我改写了一下,因为oracle没有identity自增,所以用了sequence。

首先建表:

CREATE TABLE time_by_day_dimension(

time_id int NOT NULL ,

the_date date NULL ,

the_day varchar2(15) NULL ,

the_month varchar2(15) NULL ,

the_year smallint NULL ,

day_of_month smallint NULL ,

week_of_year smallint NULL ,

month_of_year smallint NULL ,

fiscal_period varchar2(20) NULL

);

然后是创建序列:

create sequence seq_time_id start with 1 increment by 1 nocycle nocache ;

最后是过程:

create or replace

PROCEDURE Create_time_by_day_dimension

IS

WeekString varchar(12);

dDate DATE;

sMonth varchar(20);

iYear smallint;

iDayOfMonth smallint;

iWeekOfYear smallint;

iMonthOfYear smallint;

adddays int;

BEGIN

adddays := 1 ;

dDate := to_date('01/01/2006','mm/dd/yyyy');

WHILE (dDate to_date('12/31/2010','mm/dd/yyyy'))

loop

WeekString := to_char(dDate, 'day'); --星期几

sMonth:=to_char(dDate, 'mm');--月份

iYear:= to_char(dDate, 'yyyy');--年

iDayOfMonth:=to_char(dDate, 'dd');--日(字符型)

iWeekOfYear:= to_char(dDate,'fmww');--年的第几周

iMonthOfYear:=to_number(sMonth);--日(数字型)

INSERT INTO time_by_day_dimension(time_id,the_date, the_day, the_month, the_year, day_of_month, week_of_year, month_of_year)

VALUES (seq_time_id.nextval,dDate, WeekString, sMonth, iYear, iDayOfMonth, iWeekOfYear, iMonthOfYear);

dDate := dDate + adddays;

END loop;

end;

最后少了一个字段:季度。你再学习添加一下吧!


名称栏目:维度表怎么建Oracle,维度表的作用
分享路径:http://lswzjz.com/article/heishi.html