Apa yang harus diketahui DBA tentang SSAS?

40

Saya telah melihat banyak materi yang mencakup aspek bisnis SSAS, tetapi tidak terlalu banyak tentang aspek-aspek penting dari administrasi dan manajemen.

Dari sudut pandang mengelola contoh SQL Server Analysis Services, apa yang perlu diketahui DBA tentang SSAS untuk mengelolanya dengan benar dan efisien?

ivanmp
sumber

Jawaban:

50

Gambaran singkat SSAS untuk DBA

Jadi, Anda SQL Server DBA dan Anda baru saja mewarisi beberapa kubus untuk mengelola. Kursus kilat cepat tentang administrasi SSAS tampaknya sudah beres.

Dari sudut pandang administratif, SSAS adalah aplikasi yang cukup mudah, jika haus sumber daya. Ini jauh lebih sederhana daripada platform DBMS, meskipun berbeda dalam beberapa hal. Selain itu, ada beberapa tugas administratif seperti pengoptimalan berbasis penggunaan khusus untuk SSAS yang mungkin harus Anda lakukan.

Cadangkan file konfigurasi Anda

Semua data konfigurasi tinggal dalam file bernama msdmsrv.ini. Ini file XML. Jika Anda mengotak-atik konfigurasi melalui SSMS (Sambungkan ke server, klik kanan pada server, pilih properti) Anda dapat mengatur opsi yang akan memecah server saat memulai. Ambil salinan msmdsrv.inisebelum Anda bermain dengan apa pun.

Parameter penting

Memori: SSAS adalah babi memori alkitabiah. Ini suka build 64 bit jika memungkinkan, dan banyak memori. Parameter 'Memory \ LowMemoryLimit' dan 'Memory \ HighMemoryLimit' mengontrol kebijakan penggunaan memori. LowMemoryLimit bukan alokasi memori minimum. Ini adalah ambang batas di mana SSAS menganggap sistem rendah pada memori dan mulai membuang hal-hal dari cache. HighMemoryLimit adalah maksimum absolut yang akan digunakan.

Perhatikan bahwa SSAS menyimpan datanya dalam file (banyak file - ia tidak memiliki mekanisme yang setara dengan filegroup), sehingga SSAS banyak menggunakan caching sistem file O / S untuk file-file tersebut. Perhatikan bahwa default untuk batas-batas ini adalah sekitar 65% dan 80% dari memori mesin masing-masing, jadi jika Anda ingin server OLAP untuk hidup berdampingan dengan contoh SQL Server, Anda harus menolaknya sehingga tidak memperebutkan memori dengan server basis data.

Direktori: Lima parameter menarik mencakup ini: DataDir, DiizinkanBrowsingFolder, BackupDir, LogDir, dan TempDir. DataDir dan DiizinkanBrowsingFolders adalah yang paling penting.

  • DiizinkanBrowsingFolders memengaruhi daftar folder tempat server OLAP memasukkan file datanya. Apa pun dengan antarmuka pengguna (mis. Panduan penyebaran) akan membatasi opsi Anda ke daftar di dalam AllowBrowsingFolders. Nilainya adalah daftar direktori terbatas pipa ('|').

  • DataDir adalah jalur default untuk file. Jika Anda ingin mempartisi kubus pada beberapa volume, Anda harus mengonfigurasi DiizinkanBrowsingFolders dengan tepat.

  • LogDir adalah tempat server menempatkan berbagai file log termasuk perekam penerbangan dan log kueri. Log perekam penerbangan digunakan untuk pemecahan masalah dan log kueri OLAP digunakan untuk optimisasi berbasis penggunaan (lebih lanjut tentang ini nanti).

  • TempDir adalah lokasi untuk file sementara yang dibuat SSAS saat memproses. Jika Anda memproses volume data yang besar dan mengalami masalah kinerja, Anda dapat mengambil manfaat dari mengalihkan ini ke volume lain dari data.

  • BackupDir adalah apa yang tertulis di kaleng.

Lain-lain: Beberapa parameter lain-lain juga mungkin menarik. Beberapa set yang harus Anda tweak adalah:

  • DefaultMaxDrillthroughRows: Ini membatasi ukuran set baris drillthrough. Anda mungkin perlu mengotak-atik ini untuk memungkinkan lebih banyak.

  • Threads / Timeout: Anda mungkin perlu menyesuaikan ini. Saya tidak pernah repot.

Itulah dasar-dasarnya. Anda mungkin perlu mengubah yang lain untuk alasan tertentu, tetapi Anda dapat melakukan pekerjaan rumah Anda tentang itu.

Panduan referensi untuk properti server SSAS dapat ditemukan di sini.

Operasi

Penerapan: Anda dapat mengompilasi proyek dalam BIDS dan mendapatkan satu set file yang dapat digunakan dengan panduan penyebaran. Anda mungkin perlu menyesuaikan jalur file untuk partisi dan beberapa hal lainnya.

Tugas admin terprogram dan batch: Perintah dikeluarkan untuk SSAS melalui API layanan web yang disebut XML / A. Microsoft menyediakan alat interaktif untuk mengeluarkan MDX dan XML / A connands. Jika Anda harus menyematkan MDX dalam perintah XML / A, hati-hati dengan kebutuhan untuk menggunakan XML escape seperti &. Ini bukan masalah dengan editor MDX dan alat kueri di SSMS.

Pekerjaan offline dapat dilakukan melalui berbagai tugas pemrosesan kubus SSIS, utilitas baris perintah yang disebut ascmd.exeatau .Net API yang disebut AMO. Anda juga bisa mendapatkan berbagai alat PowerShell dan sejenisnya. ascmd.exemengambil file XML / A dan mempostingnya ke server. Jika Anda harus mencari file secara programatik, Anda mungkin lebih baik bekerja dengan sedikit alat .Net daripada mencoba memanipulasi file XML dari skrip .cmd.

The panduan operasi masuk ke dalam ini secara lebih rinci.

Keamanan

Keamanan pada SSAS cukup sederhana. Ia memiliki peran 'Server' global yang memiliki izin administratif di seluruh sistem. Sayangnya Anda membutuhkan 'Server' untuk membuat basis data, sehingga sangat mungkin Anda perlu memberikannya kepada pengembang di setiap pengembangan OLAP server yang Anda miliki.

Keamanan lainnya hanya dapat diterapkan pada skema kubus individu. Anda dapat memberikan izin untuk membaca, memproses, menelusuri, menulis balik, dan sejenisnya pada setiap item ke peran dalam skema. Peran pada skema OLAP dapat didefinisikan dalam BIDS dan digunakan dengan kubus. Grup atau pengguna AD dapat ditugaskan ke peran tersebut melalui SSMS.

Contoh bagaimana mengelola keanggotaan peran secara sistematis dapat dilihat di sini.

Optimalisasi berbasis penggunaan

Sebagai DBA Anda mungkin terlibat dalam hal ini, tetapi pertama-tama sedikit latar belakang tentang penyimpanan fisik. SSAS bekerja dengan menghitung dan mempertahankan agregat pra-bangun bersama dengan data dasar. Jika kueri dapat dipenuhi dengan menekan agregat, server OLAP akan menggunakan ini sebagai preferensi terhadap data dasar, karena agregat akan melibatkan jauh lebih sedikit I / O dan oleh karena itu akan lebih cepat untuk mengambil data.

Namun, Anda harus menentukan agregat mana yang akan dihitung (yaitu kombinasi atribut dimensi untuk menghasilkan rollup). BIDS memiliki alat yang akan menebak ini dan menghasilkan beberapa untuk Anda. Beberapa alat, seperti pembantu BIDS juga akan memungkinkan Anda untuk mengedit agregat secara manual.

Optimalisasi berbasis penggunaan bekerja dengan mengambil log dari kueri aktual yang dikeluarkan ke server, dan kemudian menggunakan log itu untuk menyusun sekumpulan agregat yang akan optimal untuk kueri tersebut. Sebagai DBA, Anda dapat mengatur pendataan OLAP untuk menangkap data ini, dan kemudian menjalankan pengoptimalan pada kubus. Sebuah uraian tentang pengaturan log kueri dapat ditemukan di sini.

Alat untuk melakukan ini disebut 'Panduan pengoptimalan berbasis penggunaan.' Ini tinggal di SSMS, dan dapat ditemukan dengan membuka partisi di penjelajah dan memilih 'Optimasi Berbasis Penggunaan' dari menu klik kanan.

The panduan kinerja masuk ke tuning lebih rinci.

MDX

MDX terlihat sedikit seperti SQL tetapi bekerja sangat berbeda. Sebuah risalah tentang 'MDX for SQL programmer' adalah seluruh topik dengan sendirinya. Saya sarankan membaca beberapa tutorial di atasnya dan / atau mendapatkan buku tentang itu. Plus, orang-orang yang ramah di sini di dba.se dapat membantu dengan pertanyaan jika Anda memiliki pertanyaan.

MDX tidak memiliki konsep baris pemfilteran. Bahasa ini memiliki banyak operasi yang ditetapkan untuk mengetahui apa yang akan ditampilkan pada berbagai sumbu kueri 1 , ditambah 'SELECT'. Anda bisa menggunakan withpernyataan yang mirip CTE untuk menentukan tindakan dan set.

Beberapa sumber daya pemrograman MDX pengantar dapat ditemukan di sini dan di sini (yang ini cukup lama dan sangat panjang lebar). Ada juga beberapa buku bagus tentang masalah ini; pertanyaan SO ini memiliki sedikit penggemar untuk sumber daya SSAS.

1 Meskipun memiliki operator tidak kosong yang membatasi hasil untuk kombinasi yang benar-benar memiliki data. Sebagian besar permintaan MDX terdiri dari menentukan irisan apa yang akan ditampilkan pada sumbu, dan operator yang tidak kosong akan diperlukan untuk menghindari permintaan yang mengembalikan jumlah sel kosong pada tingkat kombinatorik.

ConcernedOfTunbridgeWells
sumber
5
Info luar biasa. Terutama saran "Anda dapat mengatur opsi yang akan memecah server saat memulai".
SqlACID
Itu jawaban yang luar biasa! Terima kasih sobat!
Marian
6

Anda mungkin mendapatkan beberapa jawaban mengenai administrasi SSAS dari buku putih panjang ini Panduan Operasi Layanan Analisis SQL Server 2008 R2 . Beginilah pengantar dimulai:

Dalam panduan ini Anda akan menemukan informasi tentang cara menguji dan menjalankan Layanan Analisis Microsoft SQL Server di SQL Server 2005, SQL Server 2008, dan SQL Server 2008 R2 dalam lingkungan produksi. Fokus dari panduan ini adalah bagaimana Anda dapat menguji, memantau, mendiagnosis, dan menghapus masalah produksi bahkan pada kubus berskala terbesar sekalipun. Makalah ini juga memberikan panduan tentang cara mengkonfigurasi server untuk kinerja terbaik.

Jelas itu ditargetkan ke DBA / admin. Jika Anda juga mengembangkan aplikasi menggunakan SSAS, Anda juga dapat melihat pada Whitepaper Panduan Layanan Analisis 2008

DaniSQL
sumber
Terima kasih, DaniSQL. Saya juga telah menemukan makalah ini, dan mungkin saya harus menyebutkannya pada pertanyaan (maaf!), Tetapi saya sedang mencari pengantar yang lebih lembut tentang masalah ini, dan pendapat dibangun berdasarkan pengalaman sesama DBA kita di sini.
ivanmp
2
Saya tidak dapat berbicara dari pengalaman karena saya tidak secara langsung bekerja pada SSAS sendiri :-( Saya hanya mencoba membuat diri saya terbiasa dengan membaca beberapa bagian dari kertas putih yang saya sebutkan di atas dan saya juga melakukan pelatihan dua hari dari karya Pragmatik beberapa bulan kembali dan baca buku amzn.to/za1ypP yang ditulis oleh pelatih. Juga pengantar yang sangat mendasar dapat ditemukan pada bab 17 buku ini - Awal, Administrasi Microsoft® SQL Server® 2008 ( amzn.to/xnKAWw )
DaniSQL