Bagikan melalui


Sumber dan Pengikatan Data (SSAS Multidimensi)

Berlaku untuk: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Kubus, dimensi, dan objek SQL Server Analysis Services lainnya dapat terikat ke sumber data. Sumber data bisa menjadi salah satu objek berikut:

  • Sumber data relasional.

  • Alur SQL Server Analysis Services yang menghasilkan set baris (atau kumpulan baris bab).

Sarana untuk mengekspresikan sumber data bervariasi menurut jenis sumber data. Misalnya, sumber data relasional dibedakan oleh string koneksi. Untuk informasi selengkapnya tentang sumber data, lihat Sumber Data dalam Model Multidimensi.

Terlepas dari sumber data yang digunakan, tampilan sumber data (DSV) berisi metadata untuk sumber data. Dengan demikian, pengikatan untuk kubus atau objek SQL Server Analysis Services lainnya dinyatakan sebagai pengikatan ke DSV. Pengikatan ini dapat mencakup pengikatan ke objek-objek logis seperti tampilan, kolom terhitung, dan hubungan yang tidak ada secara fisik di sumber data. SQL Server Analysis Services menambahkan kolom terhitung yang merangkum ekspresi ke DSV, lalu mengikat pengukuran OLAP yang sesuai ke kolom tersebut di DSV. Untuk informasi selengkapnya tentang DSV, lihat Tampilan Sumber Data dalam Model Multidimensi.

Setiap objek SQL Server Analysis Services mengikat ke sumber data dengan caranya sendiri. Selain itu, pengikatan data untuk objek ini dan definisi sumber data dapat disediakan sebaris dengan definisi objek terikat data (misalnya, dimensi), atau di luar baris sebagai sekumpulan definisi terpisah.

Tipe Data Analysis Services

Jenis data yang digunakan dalam pengikatan harus cocok dengan jenis data yang didukung oleh SQL Server Analysis Services. Jenis data berikut didefinisikan dalam SQL Server Analysis Services:

Tipe Data Analysis Services Deskripsi
BigInt Bilangan bulat bertanda 64-bit. Jenis data ini memetakan ke jenis data Int64 di dalam Microsoft .NET Framework dan jenis data DBTYPE_I8 di dalam OLE DB.
Bool Nilai Boolean. Jenis data ini memetakan ke jenis data Boolean di dalam .NET Framework dan jenis data DBTYPE_BOOL di dalam OLE DB.
Mata uang Nilai mata uang mulai dari -263 (atau -922.337.203.685.477,5808) hingga 263-1 (atau +922.337.203.685.477,5807) dengan akurasi hingga sepuluh ribu unit mata uang. Jenis data ini memetakan ke jenis data Desimal di dalam .NET Framework dan jenis data DBTYPE_CY di dalam OLE DB.
Tanggal Data tanggal, disimpan sebagai angka floating-point presisi ganda. Seluruh bagian adalah jumlah hari sejak 30 Desember 1899, sedangkan bagian pecahan adalah sebagian kecil dari sehari. Jenis data ini memetakan ke jenis data DateTime di dalam .NET Framework dan jenis data DBTYPE_DATE di dalam OLE DB.
Ganda Angka floating-point presisi ganda dalam kisaran -1,79E +308 hingga 1,79E +308. Jenis data ini memetakan ke jenis data Ganda di dalam .NET Framework dan jenis data DBTYPE_R8 di dalam OLE DB.
Bilangan bulat Bilangan bulat bertanda 32-bit. Jenis data ini memetakan ke jenis data Int32 di dalam .NET Framework dan jenis data DBTYPE_I4 di dalam OLE DB.
Tunggal Angka floating-point presisi tunggal dalam kisaran -3,40E +38 hingga 3,40E +38. Jenis data ini memetakan ke jenis Data tunggal di dalam .NET Framework dan jenis data DBTYPE_R4 di dalam OLE DB.
SmallInt Bilangan bulat bertanda 16-bit. Jenis data ini memetakan ke jenis data Int16 di dalam .NET Framework dan jenis data DBTYPE_I2 di dalam OLE DB.
TinyInt Bilangan bulat bertanda 8-bit. Jenis data ini memetakan ke jenis data SByte di dalam .NET Framework dan jenis data DBTYPE_I1 di dalam OLE DB.

Catatan: Jika sumber data berisi bidang yang merupakan tipe data tinyint dan properti AutoIncrement diatur ke True, maka mereka akan dikonversi menjadi bilangan bulat dalam tampilan sumber data.
UnsignedBigInt Bilangan bulat tidak bertanda 16-bit. Jenis data ini memetakan ke jenis data UInt64 di dalam .NET Framework dan jenis data DBTYPE_UI8 di dalam OLE DB.
UnsignedInt Bilangan bulat tidak bertanda 32-bit. Jenis data ini memetakan ke jenis data UInt32 di dalam .NET Framework dan jenis data DBTYPE_UI4 di dalam OLE DB.
UnsignedSmallInt Bilangan bulat tidak bertanda 16-bit. Jenis data ini memetakan ke jenis data UInt16 di dalam .NET Framework dan jenis data DBTYPE_UI2 di dalam OLE DB.
WChar Aliran karakter Unicode yang dihentikan null. Jenis data ini memetakan ke jenis data String di dalam .NET Framework dan jenis data DBTYPE_WSTR di dalam OLE DB.

Semua data yang diterima dari sumber data dikonversi ke jenis SSAS yang ditentukan dalam pengikatan (biasanya selama pemrosesan). Kesalahan dimunculkan jika konversi tidak dapat dilakukan (misalnya, String ke Int). SQL Server Data Tools biasanya mengatur jenis data dalam pengikatan ke yang paling cocok dengan jenis sumber di sumber data. Misalnya, jenis SQL Date, DateTime, SmallDateTime, DateTime2, DateTimeOffset dipetakan ke SSAS Date, dan Jenis SQL Time dipetakan ke String.

Pengikatan untuk Dimensi

Setiap atribut dimensi terikat ke kolom dalam DSV. Semua atribut dimensi harus berasal dari satu sumber data. Namun, atribut dapat terikat ke kolom dalam tabel yang berbeda. Hubungan antara tabel ditentukan dalam DSV. Dalam kasus di mana lebih dari satu set hubungan ada ke tabel yang sama, mungkin perlu untuk memperkenalkan kueri bernama di DSV untuk bertindak sebagai tabel 'alias'. Ekspresi dan filter ditentukan dalam DSV dengan menggunakan perhitungan bernama dan kueri bernama.

Pengikatan untuk MeasureGroups, Measures, dan Partitions

Setiap grup pengukuran memiliki pengikatan default berikut:

  • Grup pengukuran terikat ke tabel dalam DSV (misalnya, MeasureGroup.Source).

  • Setiap ukuran terikat ke kolom dalam tabel tersebut (misalnya, Measure.ValueColumn.Source).

  • Setiap dimensi grup pengukuran memiliki sekumpulan atribut granularitas yang menentukan granularitas grup pengukuran. Masing-masing atribut ini harus terikat ke kolom atau kolom dalam tabel fakta yang berisi kunci atribut. (Untuk informasi selengkapnya tentang atribut granularitas, lihat Atribut Granularitas MeasureGroup nanti dalam topik ini.)

Pengikatan default ini dapat ditimpa secara selektif per partisi. Setiap partisi dapat menentukan sumber data, nama tabel atau kueri, atau ekspresi filter yang berbeda. Strategi partisi yang paling umum adalah mengambil alih tabel per partisi, dengan menggunakan sumber data yang sama. Alternatifnya termasuk menerapkan filter yang berbeda per partisi atau mengubah sumber data.

Sumber data default harus ditentukan dalam DSV, sehingga memberikan informasi skema, termasuk detail hubungan. Setiap tabel atau kueri tambahan yang ditentukan pada tingkat partisi tidak perlu dicantumkan dalam DSV, tetapi harus memiliki skema yang sama dengan tabel default yang ditentukan untuk grup pengukuran, atau setidaknya harus berisi semua kolom yang digunakan oleh pengukuran atau atribut granularitas. Pengikatan terperinci per atribut pengukuran dan granularitas tidak dapat ditimpa pada tingkat partisi, dan mereka diasumsikan ke kolom yang sama seperti yang didefinisikan untuk grup pengukuran. Oleh karena itu, jika partisi menggunakan sumber data yang sebenarnya memiliki skema yang berbeda, kueri TableDefinition yang ditentukan untuk partisi harus menghasilkan skema yang sama dengan skema yang digunakan oleh grup pengukuran.

Atribut Granularitas MeasureGroup

Ketika granularitas grup pengukuran cocok dengan granularitas yang diketahui dalam database, dan ada hubungan langsung dari tabel fakta ke tabel dimensi, atribut granularitas hanya perlu terikat ke kolom kunci asing atau kolom yang sesuai pada tabel fakta. Misalnya, pertimbangkan tabel fakta dan dimensi berikut:

Sales(RequestedDate, OrderedProductID, ReplacementProductID, Qty)

Product(ProductID, ProductName,Category)

``

Relation: Sales.OrderedProductID -> Product.ProductID

Relation: Sales.ReplacementProductID -> Product.ProductID

``

Jika Anda menganalisis berdasarkan produk yang dipesan, untuk peran dimensi Produk yang Dipesan pada Penjualan, atribut Granularitas produk akan terikat ke Sales.OrderedProductID.

Namun, mungkin ada kalanya GranularityAttributes mungkin tidak ada sebagai kolom pada tabel fakta. Misalnya, GranularityAttributes mungkin tidak ada sebagai kolom dalam keadaan berikut:

  • Granularitas OLAP lebih kasar daripada granularitas dalam sumbernya.

  • Tabel perantara menginterposisi antara tabel fakta dan tabel dimensi.

  • Kunci dimensi tidak sama dengan kunci primer dalam tabel dimensi.

Dalam semua kasus seperti itu, DSV harus didefinisikan sehingga GranularityAttributes ada di tabel fakta. Misalnya, kueri bernama atau kolom terhitung dapat diperkenalkan.

Misalnya, dalam tabel contoh yang sama seperti di atas, jika granularitas berdasarkan Kategori, tampilan Penjualan dapat diperkenalkan:

SalesWithCategory(RequestedDate, OrderedProductID, ReplacementProductID, Qty, OrderedProductCategory)

SELECT Sales.*, Product.Category AS OrderedProductCategory

FROM Sales INNER JOIN Product

ON Sales.OrderedProductID = Product.ProductID

``

Dalam hal ini, Kategori GranularityAttribute terikat dengan SalesWithCategory.OrderedProductCategory.

Migrasi dari Objek Dukungan Keputusan

Objek Dukungan Keputusan (DSO) 8.0 memungkinkan PartitionMeasures untuk direbound. Oleh karena itu, strategi migrasi dalam kasus ini adalah membangun kueri yang sesuai.

Demikian pula, tidak mungkin untuk mengikat kembali atribut dimensi dalam partisi, meskipun DSO 8.0 memungkinkan pengikatan ulang ini juga. Strategi migrasi dalam kasus ini adalah menentukan kueri bernama yang diperlukan di DSV sehingga tabel dan kolom yang sama ada di DSV untuk partisi sebagai tabel dan kolom yang digunakan untuk dimensi. Kasus-kasus ini mungkin memerlukan adopsi migrasi sederhana, di mana klausa Dari/Gabung/Filter dipetakan ke satu kueri bernama daripada ke sekumpulan tabel terkait terstruktur. Karena DSO 8.0 memungkinkan PartitionDimensions untuk rebound bahkan ketika partisi menggunakan sumber data yang sama, migrasi mungkin juga memerlukan beberapa DSV untuk sumber data yang sama.

Dalam DSO 8.0, pengikatan yang sesuai dapat diekspresikan dengan dua cara berbeda, tergantung pada apakah skema yang dioptimalkan digunakan, dengan mengikat kunci utama pada tabel dimensi atau kunci asing pada tabel fakta. Dalam ASSL, dua bentuk yang berbeda tidak dibedakan.

Pendekatan yang sama untuk pengikatan berlaku bahkan untuk partisi menggunakan sumber data yang tidak berisi tabel dimensi, karena pengikatan dilakukan ke kolom kunci asing dalam tabel fakta, bukan ke kolom kunci utama dalam tabel dimensi.

Pengikatan untuk Model Penambangan

Model penambangan bersifat relasional atau OLAP. Pengikatan data untuk model penambangan relasional jauh berbeda dari pengikatan untuk model penambangan OLAP.

Pengikatan untuk Model Penambangan Relasional

Model penambangan relasional bergantung pada hubungan yang ditentukan dalam DSV untuk menyelesaikan ambiguitas apa pun mengenai kolom mana yang terikat ke sumber data mana. Dalam model penambangan relasional, pengikatan data mengikuti aturan berikut:

  • Setiap kolom tabel yang tidak berlapis terikat ke kolom baik pada tabel kasus atau tabel yang terkait dengan tabel kasus (mengikuti hubungan banyak-ke-satu atau satu-ke-satu). DSV mendefinisikan hubungan antara tabel.

  • Setiap kolom tabel berlapis terikat ke tabel sumber. Kolom yang dimiliki oleh kolom tabel berlapis kemudian terikat ke kolom pada tabel sumber tersebut atau tabel yang terkait dengan tabel sumber. (Sekali lagi, pengikatan mengikuti hubungan banyak-ke-satu atau satu-ke-satu.) Pengikatan model penambangan tidak menyediakan jalur gabungan ke tabel berlapis. Sebaliknya, hubungan yang ditentukan dalam DSV memberikan informasi ini.

Pengikatan untuk Model Penambangan OLAP

Model penambangan OLAP tidak memiliki DSV yang setara. Oleh karena itu, pengikatan data harus memberikan disambiguasi antara kolom dan sumber data. Misalnya, model penambangan dapat didasarkan pada kubus Penjualan, dan kolom dapat didasarkan pada Qty, Amount, dan Product Name. Atau, model penambangan dapat didasarkan pada Produk, dan kolom dapat didasarkan pada Nama Produk, Warna Produk, dan tabel berlapis dengan Sales Qty.

Dalam model penambangan OLAP, pengikatan data mengikuti aturan berikut:

  • Setiap kolom tabel yang tidak berlapis terikat pada ukuran pada kubus, ke atribut pada dimensi kubus tersebut (menentukan CubeDimension untuk disambiguasi dalam kasus peran dimensi), atau ke atribut pada dimensi.

  • Setiap kolom tabel berlapis terikat ke CubeDimension. Artinya, ini mendefinisikan cara menavigasi dari dimensi ke kubus terkait atau (dalam kasus tabel berlapis yang kurang umum) dari kubus ke salah satu dimensinya.

Pengikatan Di Luar Garis

Pengikatan Di Luar Baris memungkinkan Anda mengubah pengikatan data yang ada untuk sementara waktu selama durasi perintah. Pengikatan di luar baris mengacu pada pengikatan yang disertakan dalam perintah dan tidak bertahan. Pengikatan di luar baris hanya berlaku saat perintah tertentu dijalankan. Sebaliknya, pengikatan sebaris terkandung dalam definisi objek ASSL, dan bertahan dengan definisi objek dalam metadata server.

ASSL memungkinkan pengikatan di luar baris ditentukan pada perintah Proses , jika tidak dalam batch, atau pada perintah Batch . Jika pengikatan di luar baris ditentukan pada perintah Batch , semua pengikatan yang ditentukan dalam perintah Batch membuat konteks pengikatan baru di mana semua perintah Proses dari eksekusi batch. Konteks pengikatan baru ini mencakup objek yang tidak langsung diproses karena perintah Proses .

Ketika pengikatan di luar baris ditentukan pada perintah, pengikatan sebaris akan menggantikan pengikatan sebaris yang terkandung dalam DDL yang bertahan untuk objek yang ditentukan. Objek yang diproses ini dapat mencakup objek yang secara langsung dinamai dalam perintah Proses , atau mereka dapat menyertakan objek lain yang pemrosesannya secara otomatis dimulai sebagai bagian dari pemrosesan.

Pengikatan di luar baris ditentukan dengan menyertakan objek pengumpulan Pengikatan opsional dengan perintah pemrosesan. Koleksi Pengikatan opsional berisi elemen berikut.

Properti Kardinalitas Jenis Deskripsi
Pengikatan 0-n Pengikatan Menyediakan kumpulan pengikatan baru.
DataSource 0-1 DataSource Mengganti DataSource dari server yang akan digunakan.
DataSourceView 0-1 DataSourceView MenggantiKan DataSourceView dari

server yang akan digunakan.

Semua elemen yang terkait dengan pengikatan di luar garis bersifat opsional. Untuk elemen apa pun yang tidak ditentukan, ASSL menggunakan spesifikasi yang terkandung dalam DDL objek yang bertahan. Spesifikasi DataSource atau DataSourceView dalam perintah Proses bersifat opsional. Jika DataSource atau DataSourceView ditentukan, data tersebut tidak dibuat dan tidak bertahan setelah perintah Proses selesai.

Definisi Tipe Pengikatan Di Luar Baris

Di dalam koleksi Pengikatan di luar garis, ASSL memungkinkan kumpulan pengikatan untuk beberapa objek, masing-masing Pengikatan. Setiap Pengikatan memiliki referensi objek yang diperluas, yang mirip dengan referensi objek, tetapi juga dapat merujuk ke objek kecil (misalnya, atribut dimensi dan mengukur atribut grup). Objek ini mengambil bentuk datar khas elemen Objek dalam perintah Proses, kecuali bahwa < tag Objek></Objek> tidak ada.

Setiap objek yang pengikatannya ditentukan diidentifikasi oleh elemen XML dari ID objek>formulir < (misalnya, DimensionID). Setelah Anda mengidentifikasi objek sesederhana mungkin dengan ID objek>formulir<, maka Anda mengidentifikasi elemen yang pengikatannya ditentukan, yang biasanya Sumber. Kasus umum yang perlu diperhatikan adalah bahwa di mana Sumber adalah properti di DataItem, yang merupakan kasus untuk pengikatan kolom dalam atribut. Dalam hal ini, Anda tidak menentukan tag DataItem ; sebagai gantinya, Anda cukup menentukan properti Sumber , seolah-olah langsung berada di kolom yang akan diikat.

KeyColumns diidentifikasi dengan pemesanan mereka di dalam koleksi KeyColumns . Di sana tidak mungkin untuk menentukan, misalnya, hanya kolom kunci pertama dan ketiga dari atribut, karena tidak ada cara untuk menunjukkan bahwa kolom kunci kedua akan dilewati. Semua kolom kunci harus ada dalam pengikatan di luar baris untuk atribut dimensi.

Terjemahan, meskipun tidak memiliki ID, secara semantik diidentifikasi oleh bahasa mereka. Oleh karena itu, Terjemahan di dalam Pengikatan perlu menyertakan pengidentifikasi bahasa mereka.

Satu elemen tambahan yang diizinkan dalam Pengikatan yang tidak ada langsung di DDL adalah ParentColumnID, yang digunakan untuk tabel berlapis untuk penggalian data. Dalam hal ini, perlu untuk mengidentifikasi kolom induk dalam tabel berlapis tempat pengikatan disediakan.