Hadoop hive 与OLAP工具整合
这里说的OLAP工具指:sqlserver Analysis,oracle Essbase,IBM cognos等做实时多维分析的工具。
场景一:传统行业,以RDB建数据仓库,ETL,并作为OLAP工具数据源,生成CUBE。
场景二:大数据量行业,在hadoop平台建数据仓库,ETL,分析数据导入RDB,并作为OLAP工具数据源,生成CUBE。
场景三:OLAP工具能否直接读取hadoop平台数据??
本文以Sqlserver analysis为例,阐述场景三的实现。
Sqlserver analysis 通过ODBC 连接hive,生成多维数据集:
1、 下载,安装驱动DataStaxHiveODBC_x64(86)
地址:http://www.datastax.com/2012/12/using-the-datastax-odbc-driver-for-hive
类似的odbc驱动还有mapRodbc,simbaodbc
2、hive客户端机器开启thrift服务:hive servicehiveserver & ,端口默认10000
3、在管理工具-数据源(odbc)中建立hive的odbc连接:
1、 在sqlserverdatabase engine中建立链接服务器:
EXEC master.dbo.sp_addlinkedserver
@server=N'myhive',@srvproduct=N'HIVE',
@provider=N'MSDASQL',@datasrc=N'Hive2',
@provstr=N'Provider=MSDASQL.1;PersistSecurity Info=True;User ID=;
Password=;'
并测试一下:SELECT*FROM OpenQuery(myhive,'select * from mytable limit 10')
原理图:
2、 将openquery 建成视图,可作为BIDS的数据源使用:
Create view myview as SELECT * FROM OpenQuery(myhive,'select * from mytable')
当然,这种方式没有直接读RDB表性能好,但不失为一种尝试。既然SSAS跟hive已经打通了,那么可以认为SSAS也可以直接读HBase表了,因为hive提供了访问hbase表的机制。
Hive是离线表,hbase具备实时性,所以从理论上说,SSAS可以通过ROLAP的方式连接hbase做实时OLAP分析,有兴趣的可以试一下。
稍微扩展一下:
突然想起来EXCEL可以读取ODBC数据源的数据:
这就比较方便了,建个odbc数据源,丢给分析师使用,基本可以摆脱HUE了。。。