Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
SQL Server Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
Artikel ini menjelaskan jenis data yang dapat digunakan dalam model tabular, dan membahas konversi implisit jenis data saat data dihitung atau digunakan dalam rumus Data Analysis Expressions (DAX).
Jenis data yang digunakan dalam model tabular
Saat Anda mengimpor data atau menggunakan nilai dalam rumus, meskipun sumber data asli berisi jenis data yang berbeda, data dikonversi ke salah satu jenis data berikut. Nilai yang dihasilkan dari rumus juga menggunakan jenis data ini.
Secara umum, jenis data ini diimplementasikan untuk mengaktifkan perhitungan yang akurat dalam kolom terhitung, dan untuk konsistensi, pembatasan yang sama berlaku untuk data lainnya dalam model.
Format yang digunakan untuk angka, mata uang, tanggal dan waktu harus mengikuti format lokal yang ditentukan pada klien yang digunakan untuk bekerja dengan data model. Anda dapat menggunakan opsi pemformatan dalam model untuk mengontrol cara nilai ditampilkan.
| Jenis data dalam model | Jenis data di DAX | Deskripsi |
|---|---|---|
| Bilangan Bulat | Nilai bilangan bulat 64 bit (delapan byte) * Nota: Rumus DAX tidak mendukung tipe data yang terlalu kecil untuk menyimpan nilai minimum yang tercantum dalam deskripsi. |
Angka yang tidak memiliki tempat desimal. Bilangan bulat dapat berupa angka positif atau negatif, tetapi harus berupa bilangan bulat antara -9.223.372.036.854.775.807 (-2^63+1) dan 9.223.372.036.854.775.806 (2^63-2). |
| Bilangan Desimal | Bilangan riil 64 bit (delapan byte) * Nota: Rumus DAX tidak mendukung tipe data yang terlalu kecil untuk menyimpan nilai minimum yang tercantum dalam deskripsi. |
Bilangan riil adalah angka yang dapat memiliki tempat desimal. Bilangan riil mencakup berbagai nilai: Nilai negatif dari -1,79E +308 hingga -2,23E -308 Nol Nilai positif dari 2,23E -308 hingga 1,79E + 308 Namun, jumlah digit signifikan dibatasi hingga 15 digit desimal. |
| Boolean (tipe data yang hanya memiliki dua nilai: true atau false) | Boolean (tipe data yang hanya memiliki dua nilai: true atau false) | Nilai Benar atau Nilai Salah. |
| Teks | string | String data dengan karakter Unicode. Bisa berupa string, angka, atau tanggal yang ditunjukkan dalam format teks. Ukuran maksimum string yang efektif tunduk pada batas byte 32767. |
| Biner | string | Data biner yang tidak terstruktur, misalnya gambar. Kolom dengan jenis data ini memiliki fungsionalitas terbatas di DAX. Ukuran maksimum efektif dari nilai data biner tunduk pada batas byte 67108864. |
| Tanggal | Tanggal/waktu | Tanggal dan waktu dalam format tanggal-waktu yang telah disepakati. Tanggal yang valid adalah semua tanggal setelah 1 Maret 1900. |
| Mata uang | Mata uang | Jenis data mata uang memungkinkan nilai antara -922.337.203.685.477,5807 hingga 922.337.203.685.477,5806 dengan empat digit desimal presisi tetap. |
| Varian | Varian | Digunakan untuk ekspresi, seperti pengukuran DAX, yang dapat mengembalikan jenis data yang berbeda. Misalnya, ukuran DAX yang mengembalikan bilangan bulat atau string akan berjenis variabel. |
| Tidak tersedia | Kosong | Kosong adalah jenis data di DAX yang mewakili dan menggantikan SQL null. Anda dapat membuat nilai kosong dengan menggunakan fungsi BLANK, dan menguji nilai kosong dengan menggunakan fungsi logika, ISBLANK. |
* Jika Anda mencoba mengimpor data yang memiliki nilai numerik besar, impor mungkin gagal dengan kesalahan berikut:
Kesalahan database dalam memori: Kolom '<nama kolom>' tabel '<nama tabel>' berisi nilai '1.7976931348623157e+308', yang tidak didukung. Operasi telah dibatalkan.
Kesalahan ini terjadi karena perancang model menggunakan nilai tersebut untuk mewakili null. Nilai dalam daftar berikut adalah sinonim ke nilai null yang disebutkan sebelumnya:
| Nilai |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1.7976931348623158e+308 |
| -1.7976931348623158e+308 |
Hapus nilai dari data Anda dan coba impor lagi.
Nota
Anda tidak dapat mengimpor dari kolom varchar(maks) yang berisi panjang string lebih dari 131.072 karakter.
Tipe data tabel
Selain itu, DAX menggunakan jenis data tabel . Jenis data ini digunakan oleh DAX dalam banyak fungsi, seperti agregasi dan perhitungan inteligensi waktu. Beberapa fungsi memerlukan referensi ke tabel; fungsi lain mengembalikan tabel yang kemudian dapat digunakan sebagai input ke fungsi lain. Dalam beberapa fungsi yang memerlukan tabel sebagai input, Anda dapat menentukan ekspresi yang mengevaluasi ke tabel; untuk beberapa fungsi, diperlukan referensi ke tabel dasar. Untuk informasi tentang persyaratan fungsi tertentu, lihat Referensi Fungsi DAX.
Konversi tipe data implisit dan eksplisit dalam Rumus DAX
Setiap fungsi DAX memiliki persyaratan khusus tentang jenis data yang digunakan sebagai input dan output. Misalnya, beberapa fungsi memerlukan bilangan bulat untuk beberapa argumen dan tanggal untuk yang lain; fungsi lain memerlukan teks atau tabel.
Jika data dalam kolom yang Anda tentukan sebagai argumen tidak kompatibel dengan jenis data yang diperlukan oleh fungsi, DAX dalam banyak kasus mengembalikan kesalahan. Namun, di mana pun memungkinkan, DAX berusaha untuk mengonversi data secara implisit ke tipe data yang diperlukan. Contohnya:
Anda dapat mengetik angka, misalnya "123", sebagai string. DAX mengurai string dan mencoba menentukannya sebagai jenis data angka.
Anda dapat menambahkan TRUE + 1 dan mendapatkan hasil 2, karena TRUE dikonversi secara implisit ke angka 1 dan operasi 1+1 dilakukan.
Jika Anda menambahkan nilai dalam dua kolom, dan satu nilai kebetulan direpresentasikan sebagai teks ("12") dan nilai lainnya sebagai angka (12), DAX secara implisit mengonversi string menjadi angka lalu melakukan penambahan untuk hasil numerik. Ekspresi berikut mengembalikan 44: = "22" + 22
Jika Anda mencoba menggabungkan dua angka, angka tersebut disajikan sebagai string lalu digabungkan. Ekspresi berikut mengembalikan "1234": = 12 & 34
Tabel berikut ini meringkas konversi tipe data implisit yang dilakukan dalam rumus. Secara umum, perancang model semantik berperilaku seperti Microsoft Excel, dan melakukan konversi implisit jika memungkinkan jika diperlukan oleh operasi yang ditentukan.
Tabel konversi data implisit
Jenis konversi yang dilakukan ditentukan oleh operator, yang melemparkan nilai yang diperlukan sebelum melakukan operasi yang diminta. Tabel ini mencantumkan operator, dan menunjukkan konversi yang dilakukan pada setiap jenis data di kolom saat dipasangkan dengan jenis data di baris berpotangan.
Nota
Tipe data teks tidak disertakan dalam tabel ini. Saat angka dinyatakan dalam format teks, dalam beberapa kasus, perancang model mencoba menentukan jenis angka dan mewakilinya sebagai angka.
Penambahan (+)
| Bilangan Bulat | MATA UANG | Nyata | Tanggal/waktu | |
|---|---|---|---|---|
| BILANGAN BULAT | Bilangan Bulat | MATA UANG | Nyata | Tanggal/waktu |
| MATA UANG | MATA UANG | MATA UANG | Nyata | Tanggal/waktu |
| NYATA | Nyata | Nyata | Nyata | Tanggal/waktu |
| Tanggal/waktu | Tanggal/waktu | Tanggal/waktu | Tanggal/waktu | Tanggal/waktu |
Misalnya, jika angka riil digunakan dalam operasi penambahan dalam kombinasi dengan data mata uang, kedua nilai dikonversi ke REAL, dan hasilnya dikembalikan sebagai NYATA.
Pengurangan (-)
Dalam tabel berikut, judul baris adalah minuend (sisi kiri) dan judul kolom adalah subtrahend (sisi kanan):
| Bilangan Bulat | MATA UANG | Nyata | Tanggal/waktu | |
|---|---|---|---|---|
| BILANGAN BULAT | Bilangan Bulat | MATA UANG | Nyata | Nyata |
| MATA UANG | MATA UANG | MATA UANG | Nyata | Nyata |
| NYATA | Nyata | Nyata | Nyata | Nyata |
| Tanggal/waktu | Tanggal/waktu | Tanggal/waktu | Tanggal/waktu | Tanggal/waktu |
Misalnya, jika tanggal digunakan dalam operasi pengurangan dengan jenis data lainnya, kedua nilai dikonversi menjadi tanggal, dan nilai yang dikembalikan juga merupakan tanggal.
Nota
Model tabular juga mendukung operator unary, - (negatif), tetapi operator ini tidak mengubah jenis data operand.
Perkalian (*)
| Bilangan Bulat | MATA UANG | Nyata | Tanggal/waktu | |
|---|---|---|---|---|
| BILANGAN BULAT | Bilangan Bulat | MATA UANG | Nyata | Bilangan Bulat |
| MATA UANG | MATA UANG | Nyata | MATA UANG | MATA UANG |
| NYATA | Nyata | MATA UANG | Nyata | Nyata |
Misalnya, jika bilangan bulat dikombinasikan dengan bilangan riil dalam operasi perkalian, kedua angka dikonversi ke angka riil, dan nilai pengembalian juga NYATA.
Pembagian (/)
Dalam tabel berikut, header baris adalah pembilang dan header kolom adalah penyebut: (Baris/Kolom)
| Bilangan Bulat | MATA UANG | Nyata | Tanggal/waktu | |
|---|---|---|---|---|
| BILANGAN BULAT | Nyata | MATA UANG | Nyata | Nyata |
| MATA UANG | MATA UANG | Nyata | MATA UANG | Nyata |
| NYATA | Nyata | Nyata | Nyata | Nyata |
| Tanggal/waktu | Nyata | Nyata | Nyata | Nyata |
Misalnya, jika bilangan bulat dikombinasikan dengan nilai mata uang dalam operasi pembagian, kedua nilai dikonversi ke angka riil, dan hasilnya juga merupakan angka riil.
Operator perbandingan
Hanya sekumpulan kombinasi tipe data campuran terbatas untuk operasi perbandingan yang didukung. Untuk mempelajari selengkapnya, lihat Referensi Operator DAX.
Penanganan terhadap spasi kosong, string kosong, dan nilai nol
Tabel berikut ini meringkas perbedaan antara DAX dan Microsoft Excel dalam cara penanganan nilai kosong:
| Ekspresi | DAX (Deutscher Aktienindex) | Unggul |
|---|---|---|
| Kosong + Kosong | Kosong | 0 (nol) |
| Kosong +5 | 5 | 5 |
| KOSONG * 5 | Kosong | 0 (nol) |
| 5/KOSONG | Infinity | Kesalahan |
| 0/KOSONG | Nan | Kesalahan |
| KOSONG/KOSONG | Kosong | Kesalahan |
| SALAH ATAU KOSONG | SALAH | SALAH |
| SALAH DAN KOSONG | SALAH | SALAH |
| BENAR ATAU KOSONG | BENAR | BENAR |
| BENAR DAN KOSONG | SALAH | BENAR |
| BLANK ATAU BLANK | Kosong | Kesalahan |
| BLANK DAN BLANK | Kosong | Kesalahan |
Untuk detail tentang bagaimana fungsi atau operator tertentu menangani kosong, lihat topik individual untuk setiap fungsi DAX, di bagian , Referensi Fungsi DAX.