Как отформатировать строку подключения к серверу анализа в RMDX? - PullRequest
0 голосов
/ 15 апреля 2020

Заранее извините за то, что задали очень простой / newb ie вопрос, но я пытаюсь использовать RMDX для запроса некоторых данных с сервера Microsoft Analysis Server из RStudio. RMDX - единственный пакет, который мне удалось успешно установить. Я также попытался добавить X4R w install_github, но столкнулся с некоторыми трудностями (и в любом случае X4R также использует URL в качестве строки подключения), и я попытался добавить olapR из моей библиотеки RClient в мою библиотеку R 3.5.2, но я получаю сообщение об ошибке для версии R с различными внутренними компонентами.

RMDX принимает URL-адрес в качестве строки подключения, и я не знаю, как отформатировать подключение к данным ... правильно, я полагаю? Ранее я использовал только sql с RODB C в R, а настройка источника данных через ODB C Администратор источника данных не работает для хранилища данных.

Очевидно, мне не хватает многих основ / теории / основ, поэтому я просто стреляю в темноте, но я попробовал "localhost // [server-name]" "" https: // [имя_сервера] , "и копирование строки подключения, используемой для некоторых из двухпанельных панелей Microsoft, которые подключаются к тому же хранилищу данных, к которому я хочу запросить, и ни одна из них не работает. Кто-нибудь знает, как решить эту проблему, или кто-нибудь может предложить альтернативный способ выполнения запросов MDX из RStudio? Спасибо!

1 Ответ

0 голосов
/ 16 апреля 2020

После экспериментов на таком же маршруте, как вы - я закончил писать скрипт powershell, который подключается к MS SSAS или OLAP Cube через его «URL» (обычно вы будете использовать строку URL с «msmdpump.dll» где-то упоминается в нем - обычно в конце - как $ con или строка подключения). После этого (имеется в виду, что в сценарии ps это более точно модуль), я сильно полагаюсь на объект AdomdClient и его свойства, что-то вроде этого

#establish SSAS ADOMD Client and open connection
[System.Reflection.Assembly]::LoadWithPartialName(\"Microsoft.AnalysisServices.AdomdClient\") | Out-Null; 

\

echo 'Connecting to Database/Cube via Powershell module!'
$con = new-object Microsoft.AnalysisServices.AdomdClient.AdomdConnection($connectionString)
$con.Open() 
$command = new-object Microsoft.AnalysisServices.AdomdClient.AdomdCommand($MDXquery, $con)
$dataAdapter = new-object Microsoft.AnalysisServices.AdomdClient.AdomdDataAdapter($command)
$ds = new-object System.Data.DataSet
#fetch data
echo 'fill data container w cube data'
$dataAdapter.Fill($ds)
$con.Close(); 
.... 

После этого я вызываю этот сценарий ps через system2(command = "powershell",...) изнутри R с различными параметрами строки подключения, MDX (запроса) и т. Д., Сохраняю результат во временную папку в виде файла csv, а затем снова загружаю его в мой сеанс R ,

Надеюсь, это поможет.

...