当前位置:  数据库>其它
本页文章导读:
    ▪数据仓库分层之辩      --转自:http://blog.itpub.net/post/14877/198599 数据仓库的分层可以算是数据仓库架构的子话题。在前段时间参与的一次讨论中,笔者发现其中争论的焦点集中在每一层的作用、特点、是否有必要存在.........
    ▪IBM DB2 Data Studio      关于这个,我只想说,这是我见过的最2B、最难用的数据库开发管理工具。从工具本身到相应的文档,都2B得一塌糊涂!软件本身是基于Eclipse去开发的,真不知道这是哪个SB的决定,这NM是有病.........
    ▪centos 64 位系统安装postgresql odbc 方法      1,64位系统下,postgresql 的psqlodbc驱动下载地址    http://www.postgresql.org/ftp/odbc/versions/src/ 2,64位系统下,安装psqlodbc需要的安装包:     unixODBC-2.3.1.tar.gz     psqlodbc-09.........

[1]数据仓库分层之辩
    来源: 互联网  发布时间: 2013-11-07

--转自:http://blog.itpub.net/post/14877/198599
数据仓库的分层可以算是数据仓库架构的子话题。在前段时间参与的一次讨论中,笔者发现其中争论的焦点集中在每一层的作用、特点、是否有必要存在等问题。其中,大家虽然一致提到某些相关概念,但各方的理解却并非完全一致。例如对于ODS是什么、维度建模是什么等问题的解读,都是如此。
不妨想想看:数据从分散而异构的数据源中长途跋涉,到最终的报表、仪表盘、OLAP应用等等,让用户看到一致的结果,这是一个过程。记得以前有个矿泉水广告,说要经过N层的过滤才得到了那种水。而数据仓库也一样,从原来乱七八糟的数据到交付到用户手中的“纯净”数据,也需要这样一个过滤过程,需要各种不同的过滤装置。
这个过滤过程,我们可以称之为ETL;而那些过滤装置,就可以看作数据仓库的分层。从目前来看,还没有非常统一的分层方法,其中,Inmon和Kimball是最具代表性的两种分层方法。
Inmon与Kimball
在Inmon提出的CIF(Corporate Information Factory,企业信息工厂)中,他将ODS(Operational Data Store,操作型存储)、EDW(Enterprise Data Warehouse,企业数据仓库)、DM(DataMart,数据集市)区别开来,共分三层。相对于此,Kimball的总线架构强调多个数据集市合成了数据仓库,只是他们基于统一的维度而已。因此,总线架构的分层中,从数据源接口就直接到了DM了。
根据这两种思路,又可以衍生一些不同的方法。例如IBM就提出一种CDW的概念,叫做企业数据仓库层,这一层介于EDW和DM之间,起过渡作用(因为EDW和DM两层的建模理念是不同的)。
除了这些分层,大家都还认同一个Staging Area(集结地)的地方。这是用于ETL过程中数据的临时存储,可究竟这个区域是位于接口到ODS之间,还是ODS到DW之间,或是CDW到DM之间,并没有达成一致的意见。在笔者看来,既然它是用于ETL中间数据缓存的,那么,在以上每一层都会需要,它是一个每层共用的存储区域。
ODS层与DW层
对于ODS层,一般大家都能够认同它是一种操作型比较强的、未保留历史或者保留近期历史的数据。所谓操作型,是相对分析型而言的。后者多是汇总的、便于分析统计的结构。操作型的另一个特点就是经常会被更新,而分析型数据很少如此。然而,对于ODS的认识,也有不同。
常见的争议包括: ODS是否应该被最终用户访问?ODS存在的目的是仅仅供DW层获取经过清洗的数据,还是能够让用户从中得到统计报表?关于前一个问题,在笔者以前做经营分析的时候,就曾遇到这样的争议;关于后一个问题,如果让它仅仅具备前一项功能,倒是结构清晰、易于管理,是一种好的设计风格,但恐怕不能满足用户灵活的需求。而如果可以让用户查询统计,可能造成它统计的数据和DW统计的数据不一致。
对于DW层,一般大家都会认同,这是保留历史数据的地方。但它是按照第三范式还是维度建模呢?当然,最大的不同就是:是需要一个中心DW,还是一个由若干数据集市组成的“虚拟”的DW。至于DM层,对此基本有一致的认同,这是面向最终用户分析统计的,采用维度建模再好不过。
可因为对DW层建模方法的不同观点,因此也就出来了所谓CDW的提法。想想,如果DW是按照第三范式建模,而DM是按照维度建模的话,那么它们之间该如何过渡?看上去,CDW确实也有存在的必要,在这个区域,需要形成满足总线架构所需的一致性维度(Confirmed Dimension)和一致性事实(Confirmed Fact)。
但问题是,第三范式和维度建模难道就真得水火不相容?笔者更相信一个道理—架构中没有绝对的设计原则。所谓第三范式,只是指出一种理想的ER(实体-关系模型)设计模式,但实际做设计时,设计师大多会去做一些平衡,他们也许会说,“为了性能、应用方便,会考虑适当的冗余。”可这适当冗余不也就破坏了第三范式吗?而且这个“适当”谁也说不准是多少。因此,可以理解EDW并不是绝对的第三范式,而所谓维度建模又能够和第三范式有多少冲突呢?在其本身概念里面,星型模式是一种不太符合第三范式的ER结构,但只是不“太”,如果改成雪花模式,是不是也就是第三范式了呢?
名词与真义
具体要采用哪种分层方法还得视项目大小而言。对于大项目,或是大的集成商来实施,恐怕多会采用复杂的分层方法。其实分层越细,每层的功能也就越单一,它们之间的耦合程度也就越单一。当然这也是需要衡量的,因为分层多了,ETL过程自然也就复杂,那对于数据质量的控制也就变得麻烦——在多个层里面可能都存在同样意义的数据,需要保证它们是一致的。
像IBM、NCR这样的厂商,他们大多走的Inmon路线。经过多年的经验总结,都已有自己的企业概念模型,这也非常适合走分层明确、具有中心数据仓库的路线。在Inmon的体系中,EDW是按照第三范式建模的。之所以要强调这种思想,是因为第三范式能够让数据模型变得简洁、高度一致性。对数据仓库的一个目的——统一口径(Single Version of Truth),是非常有帮助的。
另一方面,Kimball的维度建模理论,即按照事实表、维表来构建数据仓库、数据集市,也已经在很多实践中被证明是非常有效的方法。可这种建模方法和第三范式多少有点冲突。例如在维表中,不同粒度的数据放在一种表里面,即存在大量的数据冗余。但这种方法对数据仓库四大特点之一的“面向主题”,又是有利的。
如此看来,大家提到的方法似乎都是从不同角度去看,没有绝对的对错,只是在为维护自己的观点而争论。具体采用何种分层,还得看项目投资大小、数据量多少以及业务逻辑复杂程度而定吧。
说句题外话,或许当概念太多的时候,我们最应该做的就是要抛开那些容易混淆视听的名词,去探察其真正的意义所在。

作者:nisjlvhudy 发表于2013-1-31 14:08:26 原文链接
阅读:0 评论:0 查看评论

    
[2]IBM DB2 Data Studio
    来源:    发布时间: 2013-11-07

关于这个,我只想说,这是我见过的最2B、最难用的数据库开发管理工具。从工具本身到相应的文档,都2B得一塌糊涂!

软件本身是基于Eclipse去开发的,真不知道这是哪个SB的决定,这NM是有病啊,而且还病得不轻啊! 一大堆的不需要的界面跳转,各种SB view、perspecitive,听起来好像功能丰富强大,其实都华而不实,极其难用! 和Oracle、SQL Server、My SQL 的那些开发管理工具比,实在是相差太远了。

文档也是我见过的最2B的文档,20M的PDF,打开一看居然没有导航书签的。 我日,这文档你真有打算给人去看吗?真的有吗?我靠!

搞出这种垃圾工具,真把IBM八辈祖宗的人都丢光了!

本文链接


    
[3]centos 64 位系统安装postgresql odbc 方法
    来源: 互联网  发布时间: 2013-11-07
1,64位系统下,postgresql 的psqlodbc驱动下载地址
   http://www.postgresql.org/ftp/odbc/versions/src/
2,64位系统下,安装psqlodbc需要的安装包:
    unixODBC-2.3.1.tar.gz
    psqlodbc-09.01.0100.tar.gz  
3,安装unixODBC
    tar zxvf unixODBC-2.3.1.tar.gz
    cd unixODBC-2.3.1
    ./configure --enable-gui=no
    make
    make install
4,安装psqlodbc
    unixODBC提供了Linux对ODBC的支持,但它只是一个ODBC的管理器,要连接实际的数据库还需要提供这种数据库的ODBC驱动
    psqlodbc就是Linux下用于连接postgresql的免费ODBC驱动
    注意: 必须先装unixODBC,再安装psqlodbc
    tar zxvf psqlodbc-09.01.0100.tar.gz
    cd psqlodbc-09.01.0100
    ./configure --with-unixodbc --with-libpq=/usr/local/pgsql
    make
    make install
5,配置ODBC (以下提供一个样本)
    vi /etc/odbcinst.ini
    [PostgresSQL]
    Description     = ODBC for PostgresSQL
    Driver          =
    Driver64        = /usr/local/lib/psqlodbcw.so
    Setup           =
    Setup64         =
    FileUsage       = 1
    CpTimeout       =
    CpReuse         =  
    cp  /etc/odbcinst.ini /usr/local/etc/odbcinst.ini
    vi /etc/odbc.ini
    [tmau_psv3]
    Description     = tmau_psv3
    Driver          = PostgresSQL
    Trace           = No
    TraceFile       =
    Database        = tmau_psv3
    Servername      = 192.168.51.97
    Username        = pgadmin
    Password        = kgpgadmin
    Port            = 5432
    Protocol        = 6.4
    ReadOnly        = No
    RowVersioning   = No
    ShowSystemTables    = No
    ShowOidColumn       = No
    FakeOidIndex        = No
    ConnSettings    =
    cp /etc/odbc.ini /usr/local/etc/odbc.ini
6,用ODBC提供的isql工具检查odbc驱动与DNS是否配置成功
    [root@r710-64c6 64bits_install]# isql -v tmau_psv3
    +---------------------------------------+
    | Connected!                            |
    |                                       |
    | sql-statement                         |
    | help [tablename]                      |
    | quit                                  |
    |                                       |
    +---------------------------------------+
    SQL>
    形如以上现象,表示psqlodbc配置成功。
作者:yaxf999 发表于2013-2-1 13:58:18 原文链接
阅读:20 评论:0 查看评论

    
最新技术文章:
▪gc buffer busy/gcs log flush sync与log file sync    ▪让你的PL/SQL更好用    ▪ADO.NET中的非脱机数据库查询
▪参数job_queue_processes与Oracle jobs    ▪11gR2游标共享新特性带来的一些问题以及_cursor...    ▪_library_cache_advice和latch:shared pool、latch:shared poo...
▪SQL: Date Utility    ▪DB2 分区表增加分区    ▪DB2第一步 — 创建表
▪oracle 数据库    ▪插入10万条记录测试    ▪rebuild index VS. rebuild index online
▪如何处理undo tablespace 表空间太大的问题    ▪ado执行存储过程中包含结果集获取输出参数为...    ▪oracle函数的demo
▪Entity Framework 学习建议及自学资源    ▪存储过程的编写    ▪Linux/Unix shell 自动发送AWR report(二)
▪第二章 Oracle恢复内部原理(基础数据结构)    ▪Redis源码学习之【Tcp Socket封装】    ▪Java Jdbc减少与Oracle之间交互提升批量处理性能...
▪南大通用GBase8a Vs Oracle11g 单机测试亲测    ▪oracle 中行列转换    ▪rhel下安装oracle10g+asm---测试环境搭建
▪Redis系列-主从复制配置    ▪MySQL索引与查询优化    ▪INDEX受到NULL值的影响
▪测试人员的SQL语言 系列    ▪SQL数据库基本语句    ▪MySQL Replication常见错误整理[持续更新...]
▪eclipse下建立esper的demo    ▪把oracle rac 转化为单机数据库    ▪Redis系列-存储篇sorted set主要操作函数小结
▪基本的SQL*Plus报表和命令    ▪druid简单教程    ▪11g调度--scheduler使用
▪EF基础一    ▪db2存储过程中循环语句while do的continue有没有...    ▪oracle 创建DBLINK
▪DB2数据库备份还原    ▪Warning: prerequisite DBD::mysql 1 not found错误解决方...    ▪innotop性能监视mysql,innodb工具
▪数据迁移:DataGuard配置    ▪QX项目实战-19.跨库数据同步    ▪Mysql EXPLAIN
▪Oracle 11g AWR 系列七:Active Session History (ASH) 报...    ▪Oracle 11G新特性(共36个)    ▪父子节点问题
▪OEM简介及按钮乱码问题    ▪NoSql之MongoDB的常用类管理    ▪ORA-39700: database must be opened with UPGRADE option
▪node.js 访问redis数据库,pub/sub    ▪使用DBMS_REDEFINITION在线重定义分区表    ▪SQL Developer 使用问题与解决方法汇总
▪oralce 11g dataguard 概念    ▪ORA-30004 错误处理    ▪oracle分组函数rollup,cube
▪Sql Developer 使用问题与解决方法汇总    ▪Configure Oracle Dataguard Primary-ASM to Physical-ASM    ▪Oracle Data Guard 理论知识
▪Control File 恢复    ▪Oracle数据文件收缩    ▪Oracle 11g AWR 系列五:如何生成 AWR 报告?
▪Wireshark数据包分析实战(第2版)    ▪MySql用户权限控制    ▪db2和oracle查询序列区别
▪更新blob字段的存储过程    ▪MySQLReport分析报告三    ▪DB2中的序列
▪Oracle中DBMS_RANDOM.STRING 的用法    ▪SQL SERVER无法安装成功,sqlstp.log文件提示[未发...    ▪Data Guard 部署物理备库的 10 大注意事项
▪万能数据库查询分析器使用技巧之(九)    ▪SQL 自定义Split函数    ▪视图 v$sql,v$sqlarea,$sqltext,v$sqltext_with_newlines 的...
▪Data Guard Standby_archive_dest 和 Log_archive_dest_n 的...    ▪机房收费系统数据库设计(一)    ▪利用putty的SSH tunnel连接Oracle
▪DBCA建库偶遇ORA-27125    ▪使用PowerPivot建立简单的分析模型    ▪Linux/Unix shell 自动发送AWR report
▪写入到blob字段的存储过程    ▪关于JDBC中ResultSet接口的一点细节探究    ▪Data Guard 配置 Standby Redo Log
▪linux下redis的安装    ▪windows下redis的安装    ▪手动创建数据库步骤(简单翻译官方文档)
▪Ubuntu安装Mongodb    ▪SQL CLR应用    ▪redis的配置文件参数--详细说明
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3