olapR (paket R dalam SQL Server Pembelajaran Mesin Services)

Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru

olapR adalah paket R dari Microsoft yang digunakan untuk kueri MDX terhadap kubus OLAP SQL Server Analysis Services. Fungsi tidak mendukung semua operasi MDX, tetapi Anda dapat membuat kueri untuk melakukan slice, dice, drilldown, rollup, dan pivot pada dimensi. Paket ini termasuk dalam SQL Server Pembelajaran Mesin Services dan SQL Server 2016 R Services.

Anda dapat menggunakan paket ini pada koneksi ke kubus OLAP Analysis Services pada semua versi SQL Server yang didukung. Koneksi ke model tabular saat ini tidak didukung.

Muat paket

Paket olapR tidak dimuat sebelumnya ke dalam sesi R. Jalankan perintah berikut untuk memuat paket.

library(olapR)

Versi paket

Versi saat ini adalah 1.0.0 di semua produk khusus Windows dan unduhan yang menyediakan paket.

Ketersediaan dan lokasi

Paket ini disediakan dalam produk berikut, serta pada beberapa gambar komputer virtual di Azure. Lokasi paket berbeda-beda tergantung pada hal tersebut.

Produk Lokasi
Layanan Pembelajaran Mesin SQL Server (dengan integrasi R) C:\Program Files\Microsoft SQL Server\MSSQL14. MSSQLSERVER\R_SERVICES\library
Layanan SQL Server 2016 R C:\Program Files\Microsoft SQL Server\MSSQL13. MSSQLSERVER\R_SERVICES\library
Microsoft Pembelajaran Mesin Server (R Server) C:\Program Files\Microsoft\R_SERVER\library
Klien Microsoft R C:\Program Files\Microsoft\R Client\R_SERVER\library
Mesin Virtual Sains Data (di Azure) C:\Program Files\Microsoft\R Client\R_SERVER\library
SQL Server Virtual Machine (di Azure) 1 C:\Program Files\Microsoft SQL Server\MSSQL14. MSSQLSERVER\R_SERVICES\library

Integrasi 1 R bersifat opsional di SQL Server. Paket olapR akan diinstal saat Anda menambahkan fitur Pembelajaran Mesin atau R selama konfigurasi VM.

Cara menggunakan olapR

Pustaka olapR menyediakan API gaya R sederhana untuk menghasilkan dan memvalidasi kueri MDX terhadap kubus Analysis Services. olapR tidak menyediakan API untuk semua skenario MDX, tetapi mencakup sebagian besar kasus penggunaan, termasuk skenario slice, dice, drilldown, rollup, dan pivot dalam N dimensi. Anda juga dapat memasukkan kueri MDX langsung ke Analysis Services untuk kueri yang tidak dapat dibangun menggunakan API olapR.

Alur kerja untuk menggunakan olapR

  1. Muat pustaka.
  2. Buat string koneksi yang menunjuk ke kubus MOLAP di Analysis Services.
  3. Verifikasi bahwa Anda memiliki akses baca pada kubus
  4. Gunakan string koneksi pada koneksi.
  5. Verifikasi koneksi menggunakan fungsi jelajahi.
  6. Siapkan kueri dengan mengirimkan string kueri MDX atau dengan membangun struktur kueri.
  7. Jalankan kueri dan verifikasi hasilnya.

Untuk menjalankan kueri MDX pada Kubus OLAP, Anda harus terlebih dahulu membuat string koneksi (olapCnn) dan memvalidasi menggunakan fungsi OlapConnection(connectionString). string koneksi harus memiliki Sumber Data (seperti localhost) dan Penyedia (MSOLAP).

Setelah koneksi dibuat, Anda dapat meneruskan kueri MDX yang sepenuhnya ditentukan, atau Anda dapat membuat kueri menggunakan Query() objek, mengatur detail kueri menggunakan kubus(), sumbu(), kolom(), pemotong(), dan sebagainya.

Terakhir, teruskan olapCnn dan kueri ke executeMD atau execute2D untuk mendapatkan array multidimensi atau data frame.

Penting

olapR memerlukan penyedia Analysis Services OLE DB. Jika Anda tidak memiliki SQL Server Analysis Services yang terinstal di komputer Anda, unduh penyedia dari Microsoft: Penyedia data yang digunakan untuk koneksi Analysis Services

Unduh SQLServer2016SP2-KB4052908-x64-ENU.exe untuk SQL Server 2016.

Daftar fungsi

Fungsi Deskripsi
OlapConnection Buat string koneksi untuk mengakses Database Analysis Services.
Query Buat objek Kueri untuk digunakan pada Database Analysis Services. Gunakan kubus, sumbu, kolom, baris, halaman, bab, pemotong untuk menambahkan detail ke kueri.
executeMD Mengambil objek Kueri atau string MDX, dan mengembalikan hasilnya sebagai array multidimensi.
execute2D Mengambil objek Kueri atau string MDX, dan mengembalikan hasilnya sebagai bingkai data 2D.
explore Memungkinkan eksplorasi metadata kubus.

Konsep MDX

MDX adalah bahasa kueri untuk kubus OLAP multidimensi (MOLAP) yang berisi data yang diproses dan diagregasi yang disimpan dalam struktur yang dioptimalkan untuk analisis dan eksplorasi data. Kubus digunakan dalam aplikasi bisnis dan ilmiah untuk menarik wawasan tentang hubungan dalam data historis. Secara internal, kubus terdiri dari sebagian besar data numerik yang dapat diukur, yang diiris di sepanjang dimensi seperti tanggal dan waktu, geografi, atau entitas lainnya. Kueri tipikal mungkin merangkum penjualan untuk wilayah dan periode tertentu, yang dirinci menurut kategori produk, promosi, saluran penjualan, dan sebagainya.

Data kubus dapat diakses menggunakan berbagai operasi:

  • Pengirisan - Mengambil subhimpunan dari kubus dengan memilih nilai untuk satu dimensi, sehingga menghasilkan kubus dengan dimensi berkurang satu.

  • Dicing - Membuat subkubus dengan menentukan rentang nilai pada beberapa dimensi.

  • Telusuri Detail/Naik - Berpindah dari rentang data yang lebih umum ke yang lebih detail, atau sebaliknya.

  • Roll-up - Merangkum data berdasarkan dimensi.

  • Pivot - Putar kubus.

Kueri MDX mirip dengan kueri SQL tetapi, karena fleksibilitas database OLAP, dapat berisi hingga 128 sumbu kueri. Empat sumbu pertama dinamai untuk kenyamanan: Kolom, Baris, Halaman, dan Bab. Umumnya, cukup menggunakan dua saja (baris dan kolom), seperti yang ditunjukkan pada contoh berikut:

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]

Menggunakan kubus OLAP AdventureWorks dari tutorial kubus multidimensi, kueri MDX ini memilih jumlah penjualan internet dan nilai penjualan, lalu menempatkannya pada sumbu Kolom. Pada sumbu Baris ditempatkan semua nilai yang dimungkinkan dari dimensi "Product Line". Kemudian, dengan menggunakan klausa WHERE (yang berfungsi sebagai sumbu slicer dalam kueri MDX), kueri difilter sehingga hanya penjualan dari Australia yang diperhitungkan. Tanpa sumbu slicer, kita akan mengagregasi dan meringkas penjualan dari semua negara/wilayah.

Contoh 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)