2009年3月16日星期一

Linux - 磁盘分区和格式化

fdisk /dev/sdb 在设备sdb上运行fdisk
fdisk -p 查看某个设备上的分区情况
-d 删除分区
-n 新建分区

mkfs.ext3 /dev/sdb1 格式化sdb1成ext3格式

-----------------他山之石--------------------
预备知识

在我们添加硬盘前,首先要了解linux系统下对硬盘和分区的命名方法。在Linux下对IDE的设备是以hd命名的,第一个ide设备是hda,第二个是hdb。依此类推

我们一般主板上有两个IDE接口,一共可以安装四个IDE设备。主IDE上的两个设备分别对应hda和hdb,第二个IDE口上的两个设备对应hdc和hdd。

一般我们的硬盘安装在主IDE的主接口上,所以是hda,光驱一般安装在第二个IDE的主接口上,所以是hdc(应为hdb是用来命名主IDE上的从接口),SCSI接口设备是用sd命名的,第一个设备是sda,第二个是sdb。依此类推

分区是用设备名称加数字命名的。例如hda1代表hda这个硬盘设备上的第一个分区。每个硬盘可以最多有四个主分区,作用是1-4命名硬盘的主分区。逻辑分区是从5开始的,每多一个分区,数字加以就可以。

比如我们一般的系统都有一个主分区用来引导系统,这个分区对应我们常说的C区,在linux下命名是hda1。后面我们分三个逻辑分区对应常说的D、E、F,在linux下命名是hda5、hda6、hda7

给硬盘分区

在slackware下有两个分区软件fdisk和cfdisk,例如我们已经有一个硬盘了,现在添加另一个硬盘到系统,那么我们根据命名规则知道这个新添加的硬盘应该是hdb。我们用下面命令给硬盘分区


fdisk /dev/hdb

你也可以用cfdisk来分区,命令如下:


cfdisk /dev/hdb

格式化硬盘

格式化成ext3格式


mkfs.ext3 /dev/hdb1

格式化成reiserfs的格式

mkfs.reiserfs /dev/hdb1

让硬盘启动自动挂载

例如挂载/dev/hdb1分区到/mnt/hd目录下

用vi编辑/etc/fstab文件,加入如下内容


/dev/dhb1 /mnt/hd reiserfs defaults 1 1

Linux - 挂载光盘镜像文件、移动硬盘、U盘、Windows和NFS网络共享



挂接命令(mount)

  首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的。

  命令格式:

  mount [-t vfstype] [-o options] device dir

  其中:

  1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:

  光盘或光盘镜像:iso9660

  DOS fat16文件系统:msdos

  Windows 9x fat32文件系统:vfat

  Windows NT ntfs文件系统:ntfs

  Mount Windows文件网络共享:smbfs

  UNIX(LINUX) 文件网络共享:nfs

  2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有:

  loop:用来把一个文件当成硬盘分区挂接上系统

  ro:采用只读方式挂接设备

  rw:采用读写方式挂接设备

  iocharset:指定访问文件系统所用字符集

  3.device 要挂接(mount)的设备。

  4.dir设备在系统上的挂接点(mount point)。

  挂接光盘镜像文件

  由于近年来磁盘技术的巨大进步,新的电脑系统都配备了大容量的磁盘系统,在Windows下许多人都习惯把软件和资料做成光盘镜像文件通过虚拟 光驱来使用。这样做有许多好处:一、减轻了光驱的磨损;二、现在硬盘容量巨大存放几十个光盘镜像文件不成问题,随用随调十分方便;三、硬盘的读取速度要远 远高于光盘的读取速度,CPU占用率大大降低。其实linux系统下制作和使用光盘镜像比Windows系统更方便,不必借用任何第三方软件包。

  1、从光盘制作光盘镜像文件。将光盘放入光驱,执行下面的命令。

   #cp /dev/cdrom /home/sunky/mydisk.iso 或

   #dd if=/dev/cdrom of=/home/sunky/mydisk.iso

   注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件/home/sunky/mydisk.iso

  2、将文件和目录制作成光盘镜像文件,执行下面的命令。

   #mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir

   注:这条命令将/home/sunky/mydir目录下所有的目录和文件制作成光盘镜像文件/home/sunky/mydisk.iso,光盘卷标为:mydisk

  3、光盘镜像文件的挂接(mount)

   #mkdir /mnt/vcdrom

   注:建立一个目录用来作挂接点(mount point)

   #mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom

   注:使用/mnt/vcdrom就可以访问盘镜像文件mydisk.iso里的所有文件了。

   

  挂接移动硬盘

  对linux系统而言,USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。

  [root at pldyrouter /]# fdisk -l

  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes

  255 heads, 63 sectors/track, 8924 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sda1 1 4 32098+ de Dell Utility

  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS

  /dev/sda3 2555 7904 42973875 83 Linux

  /dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)

  /dev/sda5 7905 8924 8193118+ 82 Linux swap

  在这里可以清楚地看到系统有一块SCSI硬盘/dev/sda和它的四个磁盘分区/dev/sda1 -- /dev/sda4, /dev/sda5是分区/dev/sda4的逻辑分区。接好移动硬盘后,再用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况

  [root at pldyrouter /]# fdisk -l

  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes

  255 heads, 63 sectors/track, 8924 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sda1 1 4 32098+ de Dell Utility

  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS

  /dev/sda3 2555 7904 42973875 83 Linux

  /dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)

  /dev/sda5 7905 8924 8193118+ 82 Linux swap

  Disk /dev/sdc: 40.0 GB, 40007761920 bytes

  255 heads, 63 sectors/track, 4864 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sdc1 1 510 4096543+ 7 HPFS/NTFS

  /dev/sdc2 511 4864 34973505 f Win95 Ext'd (LBA)

  /dev/sdc5 511 4864 34973473+ b Win95 FAT32

  大家应该可以发现多了一个SCSI硬盘/dev/sdc和它的两个磁盘分区/dev/sdc1?、/dev/sdc2,其中/dev/sdc5是/dev/sdc2分区的逻辑分区。我们可以使用下面的命令挂接/dev/sdc1和/dev/sdc5。

   #mkdir -p /mnt/usbhd1

   #mkdir -p /mnt/usbhd2

   注:建立目录用来作挂接点(mount point)

   #mount -t ntfs /dev/sdc1 /mnt/usbhd1

   #mount -t vfat /dev/sdc5 /mnt/usbhd2

   注:对ntfs格式的磁盘分区应使用-t ntfs 参数,对fat32格式的磁盘分区应使用-t vfat参数。若汉字文件名显示为乱码或不显示,可以使用下面的命令格式。

   #mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1

   #mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2

  linux系统下使用fdisk分区命令和mkfs文件系统创建命令可以将移动硬盘的分区制作成linux系统所特有的ext2、ext3格式。这样,在linux下使用就更方便了。使用下面的命令直接挂接即可。

   #mount /dev/sdc1 /mnt/usbhd1

   

  挂接U盘

  和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全一样。插入U盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。

  [root at pldyrouter root]# fdisk -l

  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes

  255 heads, 63 sectors/track, 8924 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sda1 1 4 32098+ de Dell Utility

  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS

  /dev/sda3 2555 7904 42973875 83 Linux

  /dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)

  /dev/sda5 7905 8924 8193118+ 82 Linux swap

  插入U盘后,再用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。

  [root at pldyrouter root]# fdisk -l

  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes

  255 heads, 63 sectors/track, 8924 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sda1 1 4 32098+ de Dell Utility

  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS

  /dev/sda3 2555 7904 42973875 83 Linux

  /dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)

  /dev/sda5 7905 8924 8193118+ 82 Linux swap

  Disk /dev/sdd: 131 MB, 131072000 bytes

  9 heads, 32 sectors/track, 888 cylinders

  Units = cylinders of 288 * 512 = 147456 bytes

  Device Boot Start End Blocks Id System

  /dev/sdd1 * 1 889 127983+ b Win95 FAT32

  Partition 1 has different physical/logical endings:

  phys=(1000, 8, 32) logical=(888, 7, 31)

  系统多了一个SCSI硬盘/dev/sdd和一个磁盘分区/dev/sdd1,/dev/sdd1就是我们要挂接的U盘。

  #mkdir -p /mnt/usb

  注:建立一个目录用来作挂接点(mount point)

  #mount -t vfat /dev/sdd1 /mnt/usb

  注:现在可以通过/mnt/usb来访问U盘了, 若汉字文件名显示为乱码或不显示,可以使用下面的命令。

  #mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb

  挂接Windows文件共享

  Windows网络共享的核心是SMB/CIFS,在linux下要挂接(mount)windows的磁盘共享,就必须安装和使用samba 软件包。现在流行的linux发行版绝大多数已经包含了samba软件包,如果安装linux系统时未安装samba请首先安装samba。当然也可以到 www.samba.org网站下载......新的版本是3.0.10版。

  当windows系统共享设置好以后,就可以在linux客户端挂接(mount)了,具体操作如下:

  # mkdir –p /mnt/samba

  注:建立一个目录用来作挂接点(mount point)

  # mount -t smbfs -o username=administrator,password=pldy123 //10.140.133.23/c$ /mnt/samba

  注:administrator 和 pldy123 是ip地址为10.140.133.23 windows计算机的一个用户名和密码,c$是这台计算机的一个磁盘共享

  如此就可以在linux系统上通过/mnt/samba来访问windows系统磁盘上的文件了。以上操作在redhat as server 3、redflag server 4.1、suse server 9以及windows NT 4.0、windows 2000、windows xp、windows 2003环境下测试通过。

  挂接UNIX系统NFS文件共享

  类似于windows的网络共享,UNIX(Linux)系统也有自己的网络共享,那就是NFS(网络文件系统),下面我们就以SUN Solaris2.8和REDHAT as server 3 为例简单介绍一下在linux下如何mount nfs网络共享。

  在linux客户端挂接(mount)NFS磁盘共享之前,必须先配置好NFS服务端。

  1、Solaris系统NFS服务端配置方法如下:

   (1)修改 /etc/dfs/dfstab, 增加共享目录

      share -F nfs -o rw /export/home/sunky

   (2)启动nfs服务

      # /etc/init.d/nfs.server start

   (3)NFS服务启动以后,也可以使用下面的命令增加新的共享

      # share /export/home/sunky1

      # share /export/home/sunky2

   注:/export/home/sunky和/export/home/sunky1是准备共享的目录

  2、linux系统NFS服务端配置方法如下:

   (1)修改 /etc/exports,增加共享目录

  /export/home/sunky 10.140.133.23(rw)

  /export/home/sunky1 *(rw)

  /export/home/sunky2 linux-client(rw)

   注:/export/home/目录下的sunky、sunky1、sunky2是准备共享的目录,10.140.133.23、*、 linux-client是被允许挂接此共享linux客户机的IP地址或主机名。如果要使用主机名linux-client必须在服务端主机 /etc/hosts文件里增加linux-client主机ip定义。格式如下:

   10.140.133.23 linux-client

   (2)启动与停止NFS服务

   /etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的)

   /etc/rc.d/init.d/nfs start 启动NFS服务

   /etc/rc.d/init.d/nfs stop 停止NFS服务

   注:若修改/etc/export文件增加新的共享,应先停止NFS服务,再启动NFS服务方能使新增加的共享起作用。使用命令exportfs -rv也可以达到同样的效果。

  3、linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享

   # mkdir –p /mnt/nfs

   注:建立一个目录用来作挂接点(mount point)

   #mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs

   注:这里我们假设10.140.133.9是NFS服务端的主机IP地址,当然这里也可以使用主机名,但必须在本机/etc/hosts文件里增加服务端ip定义。/export/home/sunky为服务端共享的目录。

  如此就可以在linux客户端通过/mnt/nfs来访问其它linux系统或UNIX系统以NFS方式共享出来的文件了。以上操作在 redhat as server 3、redflag server4.1、suse server 9以及Solaris 7、Solaris 8、Solaris 9 for x86&sparc环境下测试通过。

权限问题:

假設 server 端的使用者 jack, user id 為 1818, gid 為 1818, client 端也有一個使用者 jack,但是 uid 及 gid 是 1818。client 端的 jack 希望能完全讀寫 server 端的 /home/jack 這個目錄。server 端的 /etc/exports 是

這樣寫的:

/home/jack *(rw,all_squash,anonuid=1818,anongid=1818)

這個的設定檔的意思是,所有 client 端的使用者存取 server 端 /home/jack 這

目錄時,都會 map 成 server 端的 jack (uid,gid=1818)。我 mount 的結果是

1. client 端的 root 可以完全存取該目錄, 包括讀、寫、殺……等

2. client 端的 jack (uid,gid=1818) 我可以做:

rm -rf server_jack/*

cp something server_jack/

mkdir server_jack/a

2009年3月12日星期四

Linux - 网络配置

网络信息查看

查看网路接口信息

1.了解linux中的网络接口设备

$/sbin/ifconfig 查看所有活动网络接口信息,其中包括一个lo环回端口。

2.查看指定网络接口的信息

$/sbin/ifconfig <网络接口名称> 查看指定接口信息。

3.查看系统中所有网络接口的信息

$/sbin/ifconfig –a 查看所有接口信息,包括非活动状态接口。

注:普通用户查看网络接口信息时,需要在命令前加“/sbin”,而管理员却不用。这是由于命令搜索路径的原因,可以通过“$echo $PATH”查看。

查看网关地址和路由信息

1、查看主机路由信息

#/route

显示当前linux主机中的路由表信息。

#/route |grep default

在route命令的显示结果中以“default”开始的行显示了,主机的默认网关地址,将route命令和grep命令组合,使用过滤route命令的显示结果只显示默认网关地址。

2.测试与其它主机的网络链接

$ping 目的主机地址

使用ping命令测试与其它主机的网络链接。ctrl+C终止。

$ping –c <测试数据包数量> <目的主机地址>

使用ping命令发送指定数量的数据包进行网络链接测试。

$使用ping命令进行网络链接测试的技巧。

注:当ping命令测试不成功时并不能判断当前主机到目标主机的连接是断开的,因为有很多因素,(如网络防火墙等)可以导致网络连接正常时主机之间无法ping通。

3、测试与其它主机的网络链接路径

$traceroute <目的主机地址>

traceroute命令显示当前主机与目的主机之间经过的所,有网络节点的地址,以及当前主机到每个中间结点的连接状态。

查看主机名称信息

1、查看当前主机名称

$Hostname 查看当前的主机名。

2、使用dns服务器查询域名

$Nslookup

交互模式:通常用于对DNS服务器进行测试

直接模式:用于查询某个域名对应的ip地址

使用网络命令进行网络设置

网络设置的方法

1、DHCP网络配置

$Dhclient 使用dhclient命令可以从DHCP服务器中申请新的网络配置应用到当前主机。

注:DHCP服务器通常提供给DHCP客户端最基本的网络配置信息,包括:接口ip地址,默认网关,DNS

服务器地址。

2、手工网络配置

网络接口ip地址和子网掩码

默认网关地址

当前主机名称

DNS服务器地址

Ip地址配置命令

Ifconfig <网络接口名称> network <子网掩码>

例:# ifconfig eth0 192.168.1.222 netmask 255.255.255.0

注:手工配置linux网络只限于临时使用,配置不保存。

扩展:# ifconfig eth0:1 10.0.0.1 netmask 255.0.0.0 一块网卡配置多个子ip地址。

# ifconfig eth0 hw ether MAC地址 修改网卡的mac地址,

路由配置命令

1、删除默认网关路由

$Route del default gw <默认网关地址>

2、添加默认网关路由

$Route add default gw <默认网关地址>

例:#route add default gw 192.168.1.1

主机名称配置命令

# hostname 123

将主机暂时名称改为123。

DNS域名解析

Nslookup

>server

显示linux系统中使用的DNS服务器地址,也可临时设置生效。

修改配置文件进行网络设置

使用工具进行网络设置

# Netconfig 图形界面设置网络,重启network后生效。

界面中需要填写的内容:

主机网络接口的ip地址。

网络接口的子网掩码。

默认网关地址。

主DNS服务器的ip地址。

网络服务启动脚本

/etc/init.d/network 从新启动才能生效

扩展:# /etc/rc.d/init.d/network start 启动network

# /etc/rc.d/init.d/network stop 停止network

# /etc/rc.d/init.d/network restart 重启network

网络接口配置文件

/etc/sysconfig/network-scripts/ifconfg-*

DEVICE=eth0 网卡编号

ONBOOT=yes 开机时是否启动网卡。

BOOTPROTO=static 静态ip或者DHCP动态获取。

IPADDR=192.168.1.163 ip

NETMASK=255.255.255.0 掩码

GATEWAY=192.168.1.1 网关

以下为动态获取方式:

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=dhcp

停止和启动指定的网络接口

单个网络接口的配置进行修改后

Ifdown 网络接口名称 停止某个网络接口。

Ifup 网络接口名称 开启某个网络接口。

注:单个网络接口的配置文件进行修改后,不必每次都从新启动network服务使配置文件生效,可用以上命令。

扩展:对网络接口操作:

# ifconfig eth0 down 停止eth0接口

# ifconfig eth0 up 开启eth0接口

可以连续使用

Ifdown eth0 ; ifup eth0

主机名称配置文件

/etc/sysconfig/network

例:# vi /etc/sysconfig/network 使用vi编辑器打开主机名配置文件。

NETWORKING=yes 网络是否可用。

HOSTNAME=xxxx xxxx为新设置的主机名。

本地主机名称解析文件

/etc/hosts

Hosts 和 DNS具有类似的主机名称解析功能

域名服务器配置文件

/etc/resolv.conf

最多可以设置3行,前面的生效。

注意:修改网络设置后,需要Reboot才能生效。

HW - DELL OptiPlex 755上使用Oracle VM

注意点:
1、在做Image的Dell机器上,必须在BIOS里把Drivers设置成Legency才可以,怀疑是OVM对Driver的支持不够;
2、在另外的机器装上OVM Manager,对所有的VM进行管理,类似于用EM管理不同的Oracle DB Instance。

DW - 什么是数据仓库

数据仓库

http://baike.baidu.com/view/69883.htm

Data Warehousing - Wikipedia http://en.wikipedia.org/wiki/Data_warehouse
  1.
  数据仓库是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,它用于支持企业或组织的决策分析处理。
  数据仓库,英文名称为Data Warehouse,可简写为DW
  数据仓库之父Bill Inmon在1991年出版的“Building the Data Warehouse”一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。
  ◆面向主题:操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织的。
  ◆集成的:数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
  ◆相对稳定的:数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
  ◆反映历史变化:数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
  数据仓库是一个过程而不是一个项目。
  数据仓库系统是一个信息提供平台,他从业务处理系统获得数据,主要以星型模型和雪花模型进行数据组织,并为用户提供各种手段从数据中获取信息和知识。
  从功能结构化分,数据仓库系统至少应该包含数据获取(Data Acquisition)、数据存储(Data Storage)、数据访问(Data Access)三个关键部分。
  企业数据仓库的建设,是以现有企业业务系统和大量业务数据的积累为基础。数据仓库不是静态的概 念,只有把信息及时交给需要这些信息的使用者,供他们做出改善其业务经营的决策,信息才能发挥作用,信息才有意义。而把信息加以整理归纳和重组,并及时提 供给相应的管理决策人员,是数据仓库的根本任务。因此,从产业界的角度看,数据仓库建设是一个工程,是一个过程。
  整个数据仓库系统是一个包含四个层次的体系结构,具体由下图表示。
  数据仓库系统体系结构
  ·数据源:是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括存放于RDBMS中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等;
  ·数据的存储与管理:是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据 仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的 技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门 级数据仓库(通常称为数据集市)。
  ·OLAP服务器:对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层 次的分析,并发现趋势。其具体实现可以分为:ROLAP、MOLAP和HOLAP。ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本 数据和聚合数据均存放于多维数据库中;HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。
  ·前端工具:主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以数据挖掘及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。
  目前,数据仓库一词尚没有一个统一的定义,著名的数据仓库专家W.H.Inmon在其著作 《Building the Data Warehouse》一书中给予如下描述:数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。对于数据仓库的概念我们可以从两个层次予以理解,首先,数据仓库用于支持决策,面向分析型数据处理,它不 同于企业现有的操作型数据库;其次,数据仓库是对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般 不再修改。多维
  数据仓库的组成
  数据仓库数据库
  是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。相对于操纵型数据库来说其突出的特点是对海量数据的支持和快速的检索技术。
  数据抽取工具
  把数据从各种各样的存储方式中拿出来,进行必要的转化、整理,再存放到数据仓库内。对各种不同 数据存储方式的访问能力是数据抽取工具的关键,应能生成COBOL程序、MVS作业控制语言(JCL)、UNIX脚本、和SQL语句等,以访问不同的数 据。数据转换都包括,删除对决策应用没有意义的数据段;转换到统一的数据名称和定义;计算统计和衍生数据;给缺值数据赋给缺省值;把不同的数据定义方式统 一。
  元数据
  元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类,技术元数据和商业元数据。
  技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库是用的数据。包括:数据源信 息;数据转换的描述;数据仓库内对象和数据结构的定义;数据清理和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导 入历史记录,信息发布历史记录等。
  商业元数据从商业业务的角度描述了数据仓库中的数据。包括:业务主题的描述,包含的数据、查询、报表;
  元数据为访问数据仓库提供了一个信息目录(informationdirectory),这个 目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的、和怎么访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用他来存贮和更新数据, 用户通过他来了解和访问数据。
  访问工具
  为用户访问数据仓库提供手段。有数据查询和报表工具;应用开发工具;管理信息系统(EIS)工具;在线分析(OLAP)工具;数据挖掘工具。
  数据集市(DataMarts)
  为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题 数据(subjectarea)。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的就 是再实施不同的数据集市时,同一含义的字段定义一定要相容,这样再以后实施数据仓库时才不会造成大麻烦。
  数据仓库管理:安全和特权管理;跟踪数据的更新;数据质量检查;管理和更新元数据;审计和报告数据仓库的使用和状态;删除数据;复制、分割和分发数据;备份和恢复;存储管理。
  信息发布系统:把数据仓库中的数据或其他相关的数据发送给不同的地点或用户。基于Web的信息发布系统是对付多用户访问的最有效方法。
  设计数据仓库的九个步骤
  1)选择合适的主题(所要解决问题的领域)
  2)明确定义fact表
  3)确定和确认维
  4)choosing the facts
  5)计算并存储fact表中的衍生数据段
  6)roundingoutthedimensiontables
  7)choosingthedurationofthedatabase
  8)theneedtotrackslowlychangingdimensions
  9)确定查询优先级和查询模式。
  技术上
  硬件平台:数据仓库的硬盘容量通常要是操作数据库硬盘容量的2-3倍。通常大型机具有更可靠的 性能和和稳定性,也容易与历史遗留的系统结合在一起;而PC服务器或UNIX服务器更加灵活,容易操作和提供动态生成查询请求进行查询的能力。选择硬件平 台时要考虑的问题:是否提供并行的I/O吞吐?对多CPU的支持能力如何?
  数据仓库DBMS:他的存储大数据量的能力、查询的性能、和对并行处理的支持如何。
  网络结构:数据仓库的实施在那部分网络段上会产生大量的数据通信,需不需要对网络结构进行改进。
  实现上
  建立数据仓库的步骤
  1)收集和分析业务需求
  2)建立数据模型和数据仓库的物理设计
  3)定义数据源
  4)选择数据仓库技术和平台
  5)从操作型数据库中抽取、净化、和转换数据到数据仓库
  6)选择访问和报表工具
  7)选择数据库连接软件
  8)选择数据分析和数据展示软件
  9)更新数据仓库
  数据抽取、清理、转换、和移植
  1)数据转换工具要能从各种不同的数据源中读取数据。
  2)支持平面文件、索引文件、和legacyDBMS。
  3)能以不同类型数据源为输入整合数据。
  4)具有规范的数据访问接口
  5)最好具有从数据字典中读取数据的能力
  6)工具生成的代码必须是在开发环境中可维护的
  7)能只抽取满足指定条件的数据,和源数据的指定部分
  8)能在抽取中进行数据类型转换和字符集转换
  9)能在抽取的过程中计算生成衍生字段
  10)能让数据仓库管理系统自动调用以定期进行数据抽取工作,或能将结果生成平面文件
  11)必须对软件供应商的生命力和产品支持能力进行仔细评估
  主要数据抽取工具供应商:Prismsolutions.Carleton'sPASSPORT.InformationBuildersInc.'s
  EDA/SQL.SASInstituteInc.
  数据仓库带来了什么
  每一家公司都有自己的数据。并且,许多公司在计算机系统中储存有大量的数据,记录着企业购买、销售、生产过程中的大量信息和客户的信息。通常这些数据都储存在许多不同的地方。
  使用数据仓库之后,企业将所有收集来的信息存放在一个唯一的地方——数据仓库。仓库中的数据按照一定的方式组织,从而使得信息容易存取并且有使用价值。
  目前,已经开发出一些专门的软件工具,使数据仓库的过程实现可以半自动化,帮助企业将数据倒入数据仓库,并使用那些已经存入仓库的数据。
  数据仓库给组织带来了巨大的变化。数据仓库的建立给企业带来了一些新的工作流程,其他的流程也因此而改变。
  数据仓库为企业带来了一些“以数据为基础的知识”,它们主要应用于对市场战略的评价,和为企业发现新的市场商机,同时,也用来控制库存、检查生产方法和定义客户群。
  每一家公司都有自己的数据。数据仓库将企业的数据按照特定的方式组织,从而产生新的商业知识,并为企业的运作带来新的视角。
  为何要建立数据仓库
  计算机发展的早期,人们已经提出了建立数据仓库的构想。“数据仓库”一词最早是在1900年,由Bill Inmon先生提出的,其描述如下:数据仓库是为支持企业决策而特别设计和建立的数据集合。
  企业建立数据仓库是为了填补现有数据存储形式已经不能满足信息分析的需要。数据仓库理论中的一个核心理念就是:事务型数据和决策支持型数据的处理性能不同。
  企业在它们的事务操作收集数据。在企业运作过程中:随着定货、销售记录的进行,这些事务型数据也连续的产生。为了引入数据,我们必须优化事务型数据库。
  处理决策支持型数据时,一些问题经常会被提出:哪类客户会购买哪类产品?促销后销售额会变化多 少?价格变化后或者商店地址变化后销售额又会变化多少呢?在某一段时间内,相对其他产品来说哪类产品特别容易卖呢?哪些客户增加了他们的购买额?哪些客户 又削减了他们的购买额呢?
  事务型数据库可以为这些问题作出解答,但是它所给出的答案往往并不能让人十分满意。在运用有限 的计算机资源时常常存在着竞争。在增加新信息的时候我们需要事务型数据库是空闲的。而在解答一系列具体的有关信息分析的问题的时候,系统处理新数据的有效 性又会被大大降低。另一个问题就在于事务型数据总是在动态的变化之中的。决策支持型处理需要相对稳定的数据,从而问题都能得到一致连续的解答。
  数据仓库的解决方法包括:将决策支持型数据处理从事务型数据处理中分离出来。数据按照一定的周 期(通常在每晚或者每周末),从事务型数据库中导入决策支持型数据库——既“数据仓库”。数据仓库是按回答企业某方面的问题来分“主题”组织数据的,这是 最有效的数据组织方式。
  数据仓库和数据集市
  有关决策支持型数据库的数据集市是面向企业中的某个部门或是项目小组的。一些专家顾问将数据集 市的建造描述为建立数据仓库全过程中的一步。首先,一个储存企业全部信息的数据仓库被创建,其中,数据均具备有组织的、一致的、不变的格式。数据集市随后 被创立,其目的是为不同部门提供他们所需要的那部分信息。数据仓库聚集了所有详细的信息,而数据集市中的数据则是针对用户们的特定需求总结而出的。
  而另外一些专家则认为数据集市的建立并不需要首先建立一个数据仓库。在这个模型中,数据直接由事务型数据库转入数据集市中。一个公司可能建立有多个数据集市,而彼此之间毫无联系。
  这种不在建立数据仓库的基础上创建数据集市的方式会更便宜、更快速,因为它的规模更加易于管理。
  第二种观点的缺陷在于无法实现最初创建数据仓库的最主要的目的——将企业所有的数据统一为一致 的格式。现有的事务处理系统的数据往往是不一致、冗余的。如果首先建立起一个全公司范围的数据仓库,组织就能够获得一个统一关于企业的活动和客户的知识 库。如果先建立起一个个独立的数据集市,那么数据仓库的诸多优势都能够得以实现,但是企业远远无法做到对数据的一致的储存。

DW - Concepts

一站式分析 如果从报表的角度上来说明的话可以解释为从数据准备、处理、定制、展现、应用、审核、平衡、存档、分发等一系列流程;

DM:Data Market 数据集市, 小型的,面向部门或工作组级数据仓库,主要用于完成特定的主题;

DM: Data Mining, 数据挖掘;

DW:Data Warehouse 面向主题的,稳定的,随时间变化的,把大量数据加以整理归纳,并及时提供给相应的管理决策人员,供他们做出改善其业务经营的决策,使信息发挥作用;

ODS:Operation Data Storage 是一个集成了来自不同数据库数据的环境。其目的是为终端用户提供一致的企业数据集成视图。它可以帮助用户轻松应对跨多个商业功能的操作挑战,是面向主题的、集成的、近实时的数据存储;

ETL:Extract-Transform-Load TL的过程就是数据流动的过程,从不同异构数据源流向统一的目标数据。其间,数据的抽取、清洗、转换和装载形成串行或并行的过程;

ELT: 利用Target RDBMS本身的SQL功能,实现数据转换,大数据量时效率比ETL要高;

MD:Metadata 是描述/定义数据的数据,如维度信息,Cube信息等。

ETL常见问题&解决办法

2009-03-05 11:38 IP:222.35.117.*(北京市)
楼主

1)数据缺失问题。在数据整合中最大的问题就是数据缺失问题,比如说这边运营没有系统,缺失了很多运营指标相关的数据。

解决办法:是通过手动方式录入/上报数据,注意上报要按照统一的规范进行(客户一般是填到标准的模版里。)

2)数据准确性问题。

由于业务人员, IT人员、业务系统开发人员对数据的理解层次不一样,指标和维度的定义者和使用者对业务语言、业务指标、业务维度的理解存在差异,造成业务语言、指标、维度的混淆和不统一。

解决办法:需要业务人员、IT人员、业务系统开发商与数据整合服务商通力合作,通过调查问卷、C/U矩阵,明确业务指标和业务维度,不可靠某一方来单独处理。

3)数据更新问题。

随着业务的发展,业务数据的累积,必然引出一系列的数据更新、同步化问题,如何将已变化的数据准确、及时的抽取、转换、加载到目标数据仓库已成为数据整合中的重要问题。

解决办法:选用合适的ETL工具(BO Data Integrator/Pervasive),建立数据更新日志。定时监控数据更新情况,确保数据质量,更好的保证前端展现的效果。

4)数据减压问题:

各个业务系统数据库中积累了大量的数据,负责抽取数据的服务器已经承载了巨大的数据压力,面对数据库和系统长时间的响应时间,业务人员、领导决策部门只能无奈的等待。

解决办法:将大量数据向特定数据转换,从系统架构和硬件配置方面解决,可使用OLAP Server,准备和计算、定义好多维数据进行显示,(注:虽然展示的速度较快,但可能要多投入更多成本,确定维度组合的工作量较大,并且不能随意钻取。)