2016-04-06 6 views
1

Я пытаюсь выяснить, как использовать пакет X4R для загрузки локального куба данных в R. Я могу загрузить куб в Excel, но я не в состоянии получить эту работу с R.Использование пакета X4R в R для подключения к кубу данных SSAS (локального)?

Мой куб имя файла " \ scrsvr \ Users \\ Documents \ Projects \ Raw data \ data.cub ".

Я попытался следующий код:

library(X4R) 
handle<-xmlaConnect(url="\\scrsvr\\Users\\<MyName>\\Documents\\Projects\\Raw data\\data.cub") 

, который не приводит к ошибке. Однако, пытаясь использовать результаты xmlaDiscover в следующей ошибке:

first argument is not an open XMLA handle 

Может кто-нибудь помочь мне подключиться к моей локальной кубе? Я совершенно новичок в этом, поэтому, возможно, у кого-то есть рабочий пример, который я мог бы выполнить (с примером файла куба данных)?

Спасибо!

ответ

3

Хорошо, только в случае, если кто-то должен сделать это в будущем, мне удалось решить мою проблему

# use some necessary packages 
require(RDCOMClient) 
require(data.table) 
library(plyr) 
library(Hmisc) 

#create connection to SSAS datacube 
con <- COMCreate("ADODB.Connection") 
con[["ConnectionString"]] <- paste(
    "Provider=MSOLAP.5", 
    "Data Source=\\\\scrsvr\\Users\\<MyName>\\Documents\\Projects\\Raw data\\data.cub", 
    "Persist Security Info=True", 
    sep = ";") 
con$Open() 

# define the MDX query here: 
query = "SELECT ..." 

rs <- COMCreate("ADODB.RecordSet") 

# submit the MDX query to the cube 
rs$Open(query, con) 

rs$MoveFirst() # move to the first row of the record set 
nc <- rs$Fields()$Count()  # define number of columns 

# get the data into a data array: 
dd <- vector("list", length=nc) 
dd <- rs$GetRows() # get the raw data from the results 

Для связи я использовал Provider («MSOLAP.5»), который был настроен при Я настроил подключение данных из MS Excel к кубу данных. Все это работает, и теперь я могу напрямую запросить базу данных с помощью MDX.