Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения: SQL Server 2016 (13.x) и более поздних версий
olapR — это пакет R от Microsoft, используемый для выполнения MDX-запросов к OLAP-кубу SQL Server Analysis Services. Функции не поддерживают все операции MDX, но вы можете строить запросы, позволяющие выполнять срез, нарезку, детализацию, свёртку и перекрёстный анализ по измерениям. Этот пакет входит в состав Служб машинного обучения SQL Server и служб SQL Server 2016 R Services.
Этот пакет можно использовать для подключений к кубу OLAP Analysis Services во всех поддерживаемых версиях SQL Server. В настоящее время соединения с табличной моделью не поддерживаются.
Загрузка пакета
Пакет olapR не загружен предварительно в сеанс R. Для загрузки пакета выполните приведенную ниже команду.
library(olapR)
Версия пакета
Текущая версия — 1.0.0 во всех продуктах и загрузках только для Windows, предоставляющих пакет.
Расположение и доступность
Этот пакет предоставляется в следующих продуктах, а также в нескольких образах виртуальных машин в Azure. Расположение пакета зависит от этого.
| Продукт | Расположение |
|---|---|
| Службы машинного обучения SQL Server (интеграция с R) | C:\Program Files\Microsoft SQL Server\MSSQL14. MSSQLSERVER\R_SERVICES\library |
| SQL Server 2016 R Службы | C:\Program Files\Microsoft SQL Server\MSSQL13. MSSQLSERVER\R_SERVICES\library |
| Microsoft Машинное обучение Сервер (R Server) | C:\Program Files\Microsoft\R_SERVER\library |
| Microsoft R Client | C:\Program Files\Microsoft\R Client\R_SERVER\library |
| Виртуальная машина обработки и анализа данных (в Azure) | C:\Program Files\Microsoft\R Client\R_SERVER\library |
| Виртуальная машина SQL Server (в Azure) 1 | C:\Program Files\Microsoft SQL Server\MSSQL14. MSSQLSERVER\R_SERVICES\library |
1 Интеграция с R необязательна в SQL Server. Пакет olapR будет установлен при добавлении компонента "Машинное обучение" или функции R во время настройки виртуальной машины.
Как использовать olapR
Библиотека olapR предоставляет простой API в стиле языка R для создания и проверки MDX-запросов к кубу Analysis Services. olapR не предоставляет API-интерфейсы для всех сценариев MDX, но охватывает большинство типичных вариантов использования, включая срезы, нарезку, детализацию, свёртку и поворот в N измерениях. Кроме того, вы можете напрямую отправить в Analysis Services запрос MDX для запросов, которые невозможно построить с помощью API olapR.
Рабочий процесс для использования olapR
- Загрузите библиотеку.
- Создайте строку подключения, указывающую на куб MOLAP в Analysis Services.
- Убедитесь, что у вас есть права на чтение к кубу.
- Используйте строку подключения в подключении.
- Проверьте подключение с помощью функции «Обзор».
- Настройте запрос, указав строку запроса MDX или построив структуру запроса.
- Выполните запрос и проверьте результат.
Чтобы выполнить MDX-запрос к OLAP-кубу, сначала необходимо создать строку подключения (olapCnn) и проверить её с помощью функции OlapConnection(connectionString). Строка подключения должна содержать источник данных (например, localhost) и поставщик данных (MSOLAP).
После установки подключения можно либо передать полностью заданный MDX-запрос, либо сформировать запрос с помощью объекта Query(), задав параметры запроса с помощью cube(), axis(), columns(), slicers() и т. д.
Наконец, передайте olapCnn и запрос в executeMD или execute2D, чтобы получить многомерный массив или кадр данных.
Внимание
Для olapR требуется поставщик OLE DB Analysis Services. Если SQL Server Analysis Services не установлен на вашем компьютере, скачайте этот поставщик у Microsoft: Поставщики данных, используемые для подключений к Analysis Services
Скачайте SQLServer2016SP2-KB4052908-x64-ENU.exe для SQL Server 2016.
Список функций
| Функция | Описание |
|---|---|
OlapConnection |
Создайте строку подключения, чтобы получить доступ к базе данных Analysis Services. |
Query |
Создайте объект Query для использования в базе данных Analysis Services. Для добавления сведений в запрос используйте объекты куба, оси, столбцов, строк, страниц, глав и срезов. |
executeMD |
Принимает объект Query или строку многомерных выражений и возвращает результат в виде многомерного массива. |
execute2D |
Принимает объект Query или строку многомерных выражений и возвращает результат в виде двухмерного кадра данных. |
explore |
Позволяет исследовать метаданные куба. |
Основные понятия MDX
MDX — это язык запросов для многомерных кубов OLAP (MOLAP), содержащих обработанные и агрегированные данные, которые хранятся в структурах, оптимизированных для анализа и изучения данных. Кубы используются в научных и бизнес-приложениях для отображения сведений о связях в исторических данных. По своей внутренней структуре кубы состоят преимущественно из поддающихся количественной оценке числовых данных, которые разбиваются на срезы по таким измерениям, как дата и время, география и другие сущности. В типичном запросе может выполняться сведение данных по продажам для определенного региона и периода времени со срезом по категории продукта, акции, каналу продаж и т. д.
Доступ к данным куба можно получить с помощью указанных ниже операций.
Срез — выделение подмножества куба путём выбора значения для одного из измерений, в результате чего получается куб на одно измерение меньше.
Сечение — создание подкуба путем задания диапазона значений по нескольким измерениям.
Детализация/обобщение — переход от более общих к более подробным диапазонам данных и наоборот.
При свертке выполняется суммирование данных в рамках определенного измерения.
Поворот — поверните куб.
Запросы MDX похожи на SQL-запросы, но благодаря гибкости баз данных OLAP могут содержать до 128 осей запроса. Первые четыре оси для удобства имеют следующие имена: столбцы, строки, страницы и главы. Кроме того, обычно используются два элемента (строки и столбцы), как показано в следующем примере:
SELECT {[Measures].[Internet Sales Count], [Measures].[Internet Sales-Sales Amount]} ON COLUMNS,
{[Product].[Product Line].[Product Line].MEMBERS} ON ROWS
FROM [Analysis Services Tutorial]
WHERE [Sales Territory].[Sales Territory Country].[Australia]
Используя куб OLAP AdventureWorks из учебника по многомерным кубам, этот MDX-запрос выбирает количество интернет-продаж и сумму продаж и размещает их на оси столбцов. На оси Row размещаются все возможные значения измерения "Product Line". Затем, используя условие WHERE (которое в запросах MDX является осью среза), оно фильтрует запрос так, чтобы учитывались только продажи из Австралии. Без оси среза мы бы агрегировали и суммировали продажи по всем странам и регионам.
Примеры olapR
# load the library
library(olapR)
# Connect to a local SSAS default instance and the Analysis Services Tutorial database.
# For named instances, use server-name\\instancename, escaping the instance name delimiter.
# For databases containing multiple cubes, use the cube= parameter to specify which one to use.
cnnstr <- "Data Source=localhost; Provider=MSOLAP; initial catalog=Analysis Services Tutorial"
olapCnn <- OlapConnection(cnnstr)
# Approach 1 - build the mdx query in R
qry <- Query()
cube(qry) <- "[Analysis Services Tutorial]"
columns(qry) <- c("[Measures].[Internet Sales Count]", "[Measures].[Internet Sales-Sales Amount]")
rows(qry) <- c("[Product].[Product Line].[Product Line].MEMBERS")
slicers(qry) <- c("[Sales Territory].[Sales Territory Country].[Australia]")
result1 <- executeMD(olapCnn, qry)
# Approach 2 - Submit a fully formed MDX query
mdx <- "SELECT {[Measures].[Internet Sales Count], [Measures].[Internet Sales-Sales Amount]} ON AXIS(0), {[Product].[Product Line].[Product Line].MEMBERS} ON AXIS(1) FROM [Analysis Services Tutorial] WHERE [Sales Territory].[Sales Territory Country].[Australia]"
result2 <- execute2D(olapCnn, mdx)