Bagikan melalui


Jenis data yang didukung dalam model tabular

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 Ekspresi Analisis Data (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 tipe 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) *

Catatan:
Rumus DAX tidak mendukung tipe data yang terlalu kecil untuk menahan nilai minimum yang tercantum dalam deskripsi.
Angka yang tidak memiliki tempat desimal. Bilangan bulat bisa berupa angka positif atau negatif, tetapi harus 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 Angka riil 64 bit (delapan byte) *

Catatan:
Rumus DAX tidak mendukung tipe data yang terlalu kecil untuk menahan nilai minimum yang tercantum dalam deskripsi.
Angka 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 Boolean Nilai Benar atau Salah.
Teks String String data karakter Unicode. Bisa berupa string, angka, atau tanggal yang ditunjukkan dalam format teks.
Tanggal Tanggal/Waktu Tanggal dan waktu dalam representasi tanggal-waktu yang diterima.

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.
T/A Kosong Kosong adalah jenis data di DAX yang mewakili dan menggantikan SQL null. Anda dapat membuat kosong dengan menggunakan fungsi BLANK, dan menguji untuk kosong dengan menggunakan fungsi logis, ISBLANK.

* Jika Anda mencoba mengimpor data yang memiliki nilai numerik besar, impor mungkin gagal dengan kesalahan berikut:

Kesalahan database dalam memori: Kolom '<nama> kolom' dari 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 ini 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.

Catatan

Anda tidak dapat mengimpor dari kolom varchar(max) yang berisi panjang string lebih dari 131.072 karakter.

Jenis 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, sedapat mungkin DAX mencoba mengonversi data secara implisit ke jenis data yang diperlukan. Contohnya:

  • Anda dapat mengetikkan 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 secara implisit dikonversi 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 dan kemudian 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 yang bersinggungan.

Catatan

Jenis 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 (+)

INTEGER MATA UANG REAL Tanggal/Waktu
INTEGER INTEGER MATA UANG REAL Tanggal/Waktu
MATA UANG MATA UANG MATA UANG REAL Tanggal/Waktu
REAL REAL REAL REAL Tanggal/Waktu
Tanggal/Waktu Tanggal/Waktu Tanggal/Waktu Tanggal/Waktu Tanggal/Waktu

Misalnya, jika bilangan riil digunakan dalam operasi penambahan dalam kombinasi dengan data mata uang, kedua nilai dikonversi ke RIIL, dan hasilnya dikembalikan sebagai REAL.

Pengurangan (-)

Dalam tabel berikut, header baris adalah minuend (sisi kiri) dan header kolom adalah subtrahend (sisi kanan):

INTEGER MATA UANG REAL Tanggal/Waktu
INTEGER INTEGER MATA UANG REAL REAL
MATA UANG MATA UANG MATA UANG REAL REAL
REAL REAL REAL REAL REAL
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.

Catatan

Model tabular juga mendukung operator unary, - (negatif), tetapi operator ini tidak mengubah jenis data operand.

Perkalian (*)

INTEGER MATA UANG REAL Tanggal/Waktu
INTEGER INTEGER MATA UANG REAL INTEGER
MATA UANG MATA UANG REAL MATA UANG MATA UANG
REAL REAL MATA UANG REAL REAL

Misalnya, jika bilangan bulat dikombinasikan dengan bilangan riil dalam operasi perkalian, kedua angka dikonversi ke angka riil, dan nilai yang dikembalikan juga REAL.

Pembagian (/)

Dalam tabel berikut, header baris adalah pembius dan header kolom adalah penyebar: (Baris/Kolom)

INTEGER MATA UANG REAL Tanggal/Waktu
INTEGER REAL MATA UANG REAL REAL
MATA UANG MATA UANG REAL MATA UANG REAL
REAL REAL REAL REAL REAL
Tanggal/Waktu REAL REAL REAL REAL

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 nilai kosong, string kosong, dan nilai nol

Tabel berikut ini meringkas perbedaan antara DAX dan di Microsoft Excel, dengan cara yang kosong ditangani:

Ekspresi DAX Excel
BLANK + BLANK BLANK 0 (zero)
KOSONG +5 5 5
KOSONG * 5 BLANK 0 (zero)
5/BLANK Tak terbatas Kesalahan
0/BLANK NaN Kesalahan
BLANK/BLANK BLANK Kesalahan
SALAH ATAU KOSONG SALAH SALAH
SALAH ATAU KOSONG SALAH SALAH
BENAR ATAU KOSONG TRUE TRUE
BENAR DAN KOSONG SALAH TRUE
KOSONG ATAU KOSONG BLANK Kesalahan
KOSONG DAN KOSONG BLANK Kesalahan

Untuk detail tentang bagaimana fungsi atau operator tertentu menangani kosong, lihat topik individual untuk setiap fungsi DAX, di bagian , Referensi Fungsi DAX.