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 dan KPI dalam daftar Bidang Power BI

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

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

Dimensi, atribut, hierarki dalam daftar Bidang 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

Jenis atribut dimensi 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

Mengukur sebagai varian

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

Dimensi ImageURL dalam 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

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

<Envelopexmlns="http://schemas.xmlsoap.org/soap/envelope/">
   <Body>
      <Discoverxmlns="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.

Lihat juga

Referensi DAX