DAX untuk model multidimensi
Berlaku untuk: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
Artikel ini menjelaskan cara Power BI menggunakan kueri DAX (Data Analysis Expressions) untuk melaporkan model multidimensi di SQL Server Analysis Services.
Secara historis, aplikasi pelaporan menggunakan MDX (Ekspresi Multidimensi) sebagai bahasa kueri terhadap database multidimensi. MDX dioptimalkan untuk pola visual umum seperti PivotTable di Excel dan aplikasi pelaporan lainnya yang menargetkan semantik bisnis multidimensi. Dimulai dengan SQL Server 2012 SP1, Analysis Services mendukung penggunaan DAX dan MDX terhadap model multidimensi dan tabular. Namun, DAX awalnya dirancang untuk model data tabular. Meskipun DAX dianggap lebih mudah digunakan, DAX juga lebih berfokus pada visualisasi data yang lebih sederhana seperti tabel, bagan, dan peta dalam laporan dan dasbor. Power BI menggunakan DAX untuk mengkueri model tabular dan multidimensi.
Karena DAX terutama dirancang untuk model tabular, ada beberapa pemetaan yang menarik dan berguna, dan batasan, yang harus dipahami saat menggunakan DAX terhadap model multidimensi.
Kompatibilitas
Power BI menggunakan DAX untuk mengkueri model multidimensi Analysis Services di edisi perusahaan atau Standar SQL Server 2016 dan yang lebih baru. SQL Server 2012 dan SQL Server 2014 edisi Enterprise atau Business Intelligence juga didukung, namun, versi ini sekarang berada di luar dukungan mainstream.
Fitur
DAX bukan subset MDX. DAX awalnya dirancang agar mirip dengan bahasa rumus Excel. Dalam model tabular, DAX digunakan terhadap penyimpanan data relasional yang terdiri dari tabel dan hubungan. DAX juga digunakan untuk membuat pengukuran kustom, kolom terhitung, dan aturan keamanan tingkat baris.
Selain menjadi bahasa penghitungan, DAX juga dapat digunakan untuk menjalankan kueri. Artikel ini menjelaskan cara kerja kueri DAX terhadap model multidimensi.
Interaksi antara MDX dan DAX
Ekspresi DAX hanya didukung dalam model tabular. Anda tidak dapat menggunakan pengukuran yang dibuat oleh ekspresi DAX dalam model multidimensi. Kueri DAX ke model multidimensi dapat mereferensikan pengukuran atau perhitungan lain yang ditentukan dalam model tersebut, tetapi perhitungan tersebut harus ditulis menggunakan bahasa MDX. Ekspresi DAX tidak dapat digunakan di mana ekspresi MDX diperlukan dan sebaliknya, dan beberapa fungsi DAX, seperti PATH, tidak berlaku dalam pemodelan multidimensi sama sekali.
Sintaks DAX
Sintaks rumus DAX sangat mirip dengan rumus Excel, dan menggunakan kombinasi fungsi, operator, dan nilai. Untuk mempelajari selengkapnya tentang sintaks untuk fungsi individual, lihat referensi fungsi DAX.
Pemetaan objek multidimensi ke tabular
Analysis Services menyediakan representasi metadata model tabular dari model multidimensi. Objek dalam model multidimensi kemudian direpresentasikan sebagai objek tabular di Power BI. Pemetaan ini diekspos ke Power BI dengan menggunakan kumpulan baris skema DISCOVER_CSDL_METADATA.
Pemetaan objek
Objek multidimensi | Objek tabular |
---|---|
Kubus | Model |
Dimensi kubus | Tabel |
Atribut Dimensi (Kunci), Nama) | Kolom |
Kelompok pengukuran | Tabel |
Ukuran | Ukuran |
Mengukur tanpa grup Pengukuran | Dalam tabel bernama Pengukuran |
Mengukur hubungan dimensi kubus grup | Hubungan |
Perspektif | Perspektif |
KPI | KPI |
Hierarki Pengguna/Induk-Anak | Hierarki |
Tampilkan Folder | Tampilkan Folder |
Pengukuran, kelompok pengukuran, dan KPI
Mengukur grup dalam kubus multidimensi diperlihatkan dalam daftar Bidang Power BI sebagai tabel dengan ikon kalkulator.
Pengukuran dalam grup pengukuran muncul sebagai pengukuran. Jika ada pengukuran terhitung yang tidak memiliki grup pengukuran terkait, pengukuran tersebut akan dikelompokkan di bawah tabel khusus yang disebut Pengukuran.
Untuk membantu menyederhanakan model multidimensi yang lebih kompleks, penulis model dapat menentukan serangkaian pengukuran atau KPI dalam kubus yang akan terletak di dalam folder tampilan. Power BI dapat menampilkan folder tampilan serta pengukuran dan KPI di dalamnya.
Pengukuran dan KPI dalam grup pengukuran
Pengukuran sebagai varian
Pengukuran dalam model multidimensi adalah varian. Ini berarti langkah-langkah tidak ditik dengan kuat dan dapat memiliki jenis data yang berbeda. Misalnya, pada gambar di bawah ini, ukuran Jumlah dalam tabel Pelaporan Keuangan secara default adalah jenis data Mata Uang, tetapi juga memiliki nilai string NA untuk subtotal Akun Statistik, yang merupakan jenis data String. Power BI mengenali pengukuran tertentu sebagai varian dan memperlihatkan nilai dan pemformatan yang benar dalam visualisasi yang berbeda.
Mengukur sebagai varian
Langkah-langkah Implisit
Model tabular memberi pengguna kemampuan untuk membuat ukuran implisit seperti hitungan, jumlah, atau rata-rata pada bidang. Untuk model multidimensi, karena data atribut dimensi disimpan disimpan secara berbeda, mengkueri tindakan implisit dapat memakan waktu lama. Karena itu, pengukuran implisit terhadap model multidimensi tidak tersedia di Power BI.
Dimensi, atribut, dan hierarki
Dimensi kubus diekspos sebagai tabel dalam metadata tabular. Di daftar Bidang Power BI, atribut dimensi ditampilkan sebagai kolom dalam folder tampilan. Atribut dimensi yang memiliki properti AttributeHierarchyEnabled diatur ke False; misalnya: Atribut Tanggal Lahir dalam dimensi Pelanggan, atau properti AttributeHierarchyVisible yang diatur ke false tidak akan muncul di daftar Bidang Power BI. Hierarki multi-tingkat atau hierarki pengguna; misalnya Geografi Pelanggan dalam dimensi Pelanggan, diekspos sebagai hierarki dalam daftar Bidang Power BI. UnknownMembers tersembunyi dari atribut dimensi diekspos dalam kueri DAX dan di Power BI.
Dimensi, atribut, dan hierarki dalam daftar Bidang SQL Server Data Tools (SSDT) dan Power BI
Jenis atribut dimensi
Model multidimensi mendukung atribut dimensi asosiasi dengan jenis atribut dimensi tertentu. Gambar di bawah ini menunjukkan dimensi Geografi di mana atribut dimensi Kota, Provinsi-Negara Bagian, Negara dan Kode Pos memiliki jenis geografi yang terkait dengannya. Ini diekspos dalam metadata tabular. Power BI mengenali metadata yang memungkinkan pengguna membuat visualisasi peta. Ini ditunjukkan oleh ikon peta di samping kolom Kota, Negara, Kode Pos, dan State-Province dalam tabel Geografi di Daftar Bidang Power BI.
Dimensi geografi dalam daftar Bidang SSDT dan Power BI
Anggota terhitung dimensi
Model multidimensi mendukung anggota terhitung untuk anak Dari Semua dengan satu anggota nyata. Batasan tambahan saat mengekspos jenis anggota terhitung ini adalah:
- Harus menjadi satu anggota nyata ketika dimensi memiliki lebih dari satu atribut.
- Atribut yang berisi anggota terhitung tidak boleh menjadi atribut kunci dimensi kecuali itu adalah satu-satunya atribut.
- Atribut yang berisi anggota terhitung tidak boleh berupa atribut induk-turunan.
Anggota hierarki pengguna yang dihitung tidak diekspos di Power BI, namun, pengguna masih dapat tersambung ke kubus yang berisi anggota terhitung pada hierarki pengguna.
Anggota default
Model multidmensional mendukung anggota default untuk atribut dimensi. Anggota default digunakan oleh Analysis Services saat menggabungkan data untuk kueri. Anggota default atribut dimensi diekspos sebagai nilai default atau filter untuk kolom terkait dalam metadata tabular.
Power BI berulah sama seperti PivotTable Excel saat atribut diterapkan. Saat pengguna menambahkan kolom ke visualisasi Power BI (tabel, matriks, atau bagan) yang berisi nilai default, nilai default tidak akan diterapkan dan semua nilai yang tersedia ditampilkan. Jika pengguna menambahkan kolom ke Filter, nilai default diterapkan.
Keamanan dimensi
Model multidmensional mendukung keamanan tingkat dimensi dan sel melalui peran. Pengguna yang menyambungkan ke kubus dengan menggunakan Power BI diautentikasi dan dievaluasi untuk izin yang sesuai yang ditentukan oleh peran milik pengguna. Saat keamanan dimensi diterapkan, anggota dimensi masing-masing tidak terlihat oleh pengguna di Power BI. Namun, jika pengguna memiliki izin keamanan sel yang ditentukan di mana sel tertentu dibatasi, maka pengguna tersebut tidak dapat tersambung ke kubus dengan Power BI. Dalam beberapa kasus, pengguna dapat melihat data agregat saat bagian data tersebut dihitung dari data aman.
Atribut/hierarki yang tidak dapat diagregasi
Dalam model multidampingan, atribut dimensi dapat mengatur properti IsAggregatable ke False. Ini berarti penulis model telah menentukan aplikasi pelaporan tidak boleh mengagregasi data di seluruh hierarki (atribut atau multi-tingkat) saat mereka mengkueri data. Di Power BI, atribut dimensi ini diekspos sebagai kolom yang subtotalnya tidak tersedia. Dalam gambar berikut, Anda akan melihat contoh hierarki yang tidak dapat diagregasi, Akun. Tingkat paling atas dari hierarki induk-anak Akun tidak dapat diagregasi sementara tingkat lain dapat diagregasi. Dalam visualisasi matriks hierarki Akun (dua tingkat pertama), Anda akan melihat subtotal untuk Tingkat Akun 02 tetapi tidak untuk tingkat terbanyak, Tingkat Akun 01.
Hierarki yang tidak dapat diagregasi di Power BI
Gambar
Power BI menyediakan kemampuan untuk merender gambar. Dalam model multidmensional, salah satu cara Anda dapat menyediakan gambar yang akan ditampilkan di Power BI adalah dengan mengekspos kolom yang berisi URL (Uniform Resource Locator) dari gambar. Analysis Services mendukung atribut dimensi penandaan sebagai jenis ImageURL. Jenis data ini kemudian disediakan untuk Power BI dalam metadata tabular. Power BI kemudian dapat mengunduh dan menampilkan gambar yang ditentukan dalam URL dalam visualisasi.
Jenis atribut dimensi ImageURL di SSDT
Hierarki induk-anak
Model multidansa mendukung hierarki induk-anak, yang diekspos sebagai hierarki dalam metadata tabular. Setiap tingkat hierarki induk-anak diekspos sebagai kolom tersembunyi. Atribut kunci dimensi induk-anak tidak diekspos dalam metadata tabular.
Hierarki induk-anak dalam daftar Bidang SSDT dan Power BI
Perspektif dan terjemahan
Perspektif adalah tampilan kubus di mana hanya dimensi atau grup pengukuran tertentu yang terlihat di alat klien. Anda dapat menentukan nama perspektif sebagai nilai untuk properti Cube string koneksi. Misalnya, dalam string koneksi berikut, 'Penjualan Langsung' adalah perspektif dalam model multidmensional:
Data Source=localhost;Initial Catalog=AdventureWorksDW-MD;Cube='Direct Sales'
Kubus dapat memiliki metadata dan terjemahan data yang ditentukan untuk berbagai bahasa dalam model. Untuk melihat terjemahan (data dan metadata) aplikasi dapat menambahkan properti Pengidentifikasi Lokal opsional ke string koneksi, misalnya:
Data Source=localhost;Initial Catalog=AdventureWorksDW-MD;Cube='Adventure Works'; Locale Identifier=3084
Ketika Power BI Desktop terhubung ke model multidaya, secara otomatis meneruskan lokal pengguna saat ini yang diidentifikasi ke server. Namun, ini tidak terjadi untuk laporan yang diterbitkan ke layanan Power BI.
Fitur tidak didukung
Keamanan tingkat sel - tidak didukung dalam laporan Power BI.
Tindakan - tidak didukung dalam laporan Power BI atau dalam kueri DAX terhadap model multidaya.
Set bernama - dalam model multidmensional, tidak didukung di Power BI atau dalam kueri DAX terhadap model multidmensional.
Catatan
Tindakan yang Tidak Didukung dan Set bernama tidak mencegah pengguna menyambungkan dan menjelajahi model multidmensional saat menggunakan Power BI.
Anotasi CSDLBI
Metadata kubus multidimensi diekspos sebagai model konseptual berbasis Model Data Entitas (EDM) oleh Bahasa Definisi Skema Konseptual dengan anotasi Kecerdasan Bisnis (CSDLBI).
Metadata multidimensi direpresentasikan sebagai namespace model tabular dalam dokumen CSDLBI, atau CSDL keluar, ketika permintaan DISCOVER_CSDL_METADATA dikirim ke instans Analysis Services.
Contoh: permintaan DISCOVER_CSDL_METADATA
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Body>
<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
<RequestType>DISCOVER_CSDL_METADATA</RequestType>
<Restrictions>
<RestrictionList>
<CATALOG_NAME>"catalogname"<CATALOG_NAME>
</RestrictionList>
</Restrictions>
<Properties>
<PropertyList>
</PropertyList>
</Properties>
</Discover>
</Body>
</Envelope>
Permintaan DISCOVER_CSDL_METADATA memiliki batasan berikut:
Nama | Diperlukan | Deskripsi |
---|---|---|
CATALOG_NAME | Ya | Katalog\nama database. |
PERSPECTIVE_NAME | Ya, jika kubus berisi lebih dari satu perspektif. Opsional jika hanya ada satu kubus atau ada perspektif default. | Nama kubus atau nama perspektif dalam database multidmensional. |
VERSION | Ya | Versi CSDL yang diminta oleh klien. Fitur dan konstruksi multidmensional didukung dalam versi 2.0. |
Dokumen CSDL yang dikembalikan mewakili model sebagai namespace, yang berisi entitas, asosiasi, dan properti.
Untuk mempelajari selengkapnya tentang anotasi CSDLBI, lihat Referensi Teknis untuk Anotasi BI ke CSDL, dan [MS-CSDLBI]: Format File Definisi Skema Konseptual dengan Anotasi Kecerdasan Bisnis.
SuperDAXMD
Dengan setiap rilis SQL Server Analysis Services, peningkatan mendukung fungsi dan kemampuan DAX baru dan yang sudah ada. Dalam SQL Server 2019 CU5, kelas fungsi DAX yang pertama kali diperkenalkan untuk model tabular yang secara informal dikenal sebagai SuperDAX sekarang diaktifkan untuk model multidaya.
Meskipun beberapa pola kueri DAX yang ada mungkin perlu didesain ulang, fungsi SuperDAX memberikan peningkatan signifikan pada performa kueri. Pola kueri DAX modern menggunakan SuperDAX untuk model multidmensional memberikan insentif yang kuat bagi organisasi yang menggunakan Power BI untuk memutakhirkan server sumber data multidmensional mereka ke SQL Server 2019 dengan CU5. Untuk mempelajari lebih lanjut, lihat SuperDAX untuk model multidmensional.