Una rapida panoramica di SSAS per DBA
Quindi, sei un DBA di SQL Server e hai appena ereditato alcuni cubi all'improvviso da gestire. Un rapido corso accelerato sull'amministrazione SSAS sembra essere in ordine.
Da un punto di vista amministrativo, SSAS è un'applicazione abbastanza semplice, se affamata di risorse. È molto più semplice di una piattaforma DBMS, sebbene diversa in diversi modi. Inoltre, ci sono alcune attività amministrative come l'ottimizzazione basata sull'utilizzo specifiche di SSAS che potresti dover affrontare.
Eseguire il backup del file di configurazione
Tutti i dati di configurazione si trovano in un file chiamato msdmsrv.ini
. È un file XML. Se armeggi con la configurazione tramite SSMS (Connetti al server, fai clic con il pulsante destro del mouse sul server, seleziona le proprietà) puoi impostare le opzioni che interromperanno il server all'avvio. Prendi una copia di msmdsrv.ini
prima di giocare con qualsiasi cosa.
Parametri importanti
Memoria: SSAS è un porco di memoria biblica. Adora le build a 64 bit, se possibile, e molta memoria. I parametri 'Memory \ LowMemoryLimit' e 'Memory \ HighMemoryLimit' controllano i criteri di utilizzo della memoria. LowMemoryLimit non è un'allocazione di memoria minima. È una soglia in cui SSAS ritiene che il sistema abbia poca memoria e inizia a svuotare la cache. HighMemoryLimit è il massimo assoluto che utilizzerà.
Nota che SSAS archivia i suoi dati in file (molti file - non ha alcun meccanismo equivalente ai filegroup), quindi fa molto uso della cache del file system O / S per quei file. Si noti che il valore predefinito per questi limiti è rispettivamente circa il 65% e l'80% della memoria della macchina, quindi se si desidera che il server OLAP coesista con un'istanza di SQL Server, è necessario disattivarli in modo da non combattere la memoria con il server di database.
Directory: cinque parametri di interesse riguardano questo: DataDir, AllowBrowsingFolders, BackupDir, LogDir e TempDir. DataDir e AllowBrowsingFolders sono i più importanti.
AllowBrowsingFolders influisce sull'elenco delle cartelle in cui il server OLAP inserirà i suoi file di dati. Qualsiasi cosa con un'interfaccia utente (ad esempio la procedura guidata di distribuzione) limiterà le opzioni all'elenco in AllowBrowsingFolders. Il valore è un elenco di directory delimitato da pipe ('|').
DataDir è il percorso predefinito per i file. Se si intende partizionare il cubo su più volumi, è necessario configurare in modo appropriato AllowBrowsingFolders.
LogDir è il luogo in cui il server posiziona vari file di registro, inclusi il registro di registrazione e i registri delle query. Il registro del registratore di volo viene utilizzato per la risoluzione dei problemi e il registro delle query OLAP viene utilizzato per l'ottimizzazione basata sull'utilizzo (ne parleremo più avanti).
TempDir è un percorso per i file temporanei creati da SSAS durante l'elaborazione. Se si stanno elaborando grandi volumi di dati e si riscontrano problemi di prestazioni, è possibile che sia necessario spostarli su un altro volume dai dati.
BackupDir è ciò che dice sulla scatola.
Varie:
alcuni parametri vari possono anche essere interessanti. Un paio di set che potresti dover modificare sono:
DefaultMaxDrillthroughRows: limita la dimensione dei set di righe drill-through. Potrebbe essere necessario giocherellare per consentirne di più.
Discussioni / Timeout: potrebbe essere necessario modificarli. Non ho mai dovuto preoccuparmi.
Queste sono le basi. Potrebbe essere necessario modificare gli altri per motivi specifici, ma puoi fare i compiti su questo.
Una guida di riferimento per le proprietà del server SSAS è disponibile qui.
operazioni
Distribuzione: è possibile compilare un progetto in BIDS e ottenere una serie di file che possono essere distribuiti con la procedura guidata di distribuzione. Potrebbe essere necessario regolare i percorsi dei file per le partizioni e alcune altre cose.
Attività amministrative programmate e in batch: i comandi vengono inviati a SSAS tramite un'API del servizio Web denominata XML / A. Microsoft fornisce uno strumento interattivo per l'emissione di connandi MDX e XML / A. Se devi incorporare MDX in un comando XML / A, fai attenzione alla necessità di utilizzare escape XML come &
. Questo non è un problema con l'editor MDX e lo strumento di query in SSMS.
I lavori offline possono essere eseguiti attraverso varie attività di elaborazione del cubo SSIS, un'utilità della riga di comando chiamata ascmd.exe
o un'API .Net chiamata AMO. Puoi anche ottenere vari strumenti PowerShell e simili. ascmd.exe
prende un file XML / A e lo pubblica sul server. Se devi programmare il file in modo programmatico, è meglio lavorare con piccoli strumenti .Net piuttosto che provare a manipolare i file XML da uno script .cmd.
La guida operativa approfondisce questo aspetto in modo più dettagliato.
Sicurezza
La sicurezza su SSAS è abbastanza semplicistica. Ha un ruolo globale di "Server" che dispone delle autorizzazioni amministrative per l'intero sistema. Sfortunatamente hai bisogno di 'Server' per creare database, quindi è molto probabile che dovrai concederlo agli sviluppatori su tutti i server OLAP di sviluppo che hai.
Altra sicurezza può essere applicata solo ai singoli schemi cubo. È possibile concedere autorizzazioni per la lettura, l'elaborazione, il drill-through, il writeback e simili su singoli elementi ai ruoli all'interno di uno schema. I ruoli sugli schemi OLAP possono essere definiti in BIDS e distribuiti con il cubo. I gruppi o gli utenti AD possono essere assegnati a tali ruoli tramite SSMS.
Un esempio di come gestire in modo programmatico l'appartenenza al ruolo può essere visto qui.
Ottimizzazione basata sull'utilizzo
Come DBA potresti essere coinvolto in questo, ma prima un po 'di background sulla memoria fisica. SSAS funziona calcolando e persistendo aggregati precostruiti insieme ai dati di base. Se una query può essere soddisfatta colpendo un aggregato, il server OLAP lo utilizzerà preferibilmente ai dati di base, poiché l'aggregato coinvolgerà molto meno I / O e quindi sarà più veloce recuperare i dati.
Tuttavia, devi capire quali aggregati calcolare (ovvero quali combinazioni di attributi di dimensione per cui generare i rollup). BIDS ha uno strumento che indovina e ne genera un po 'per te. Alcuni strumenti, come l' helper BIDS, ti permetteranno anche di modificare manualmente gli aggregati.
L'ottimizzazione basata sull'utilizzo funziona prendendo un registro delle query effettive emesse sul server e quindi utilizzando quel registro per elaborare una serie di aggregati che sarebbero ottimali per tali query. Come DBA, è possibile impostare la registrazione delle query OLAP per acquisire questi dati e quindi eseguire l'ottimizzazione sul cubo. Qui puoi trovare informazioni sulla configurazione del registro delle query .
Lo strumento per eseguire questa operazione è chiamato "Procedura guidata per l'ottimizzazione basata sull'utilizzo". Questo si trova in SSMS e può essere trovato aprendo la partizione in Explorer e selezionando "Ottimizzazione basata sull'utilizzo" dal menu di scelta rapida.
La guida alle prestazioni viene messa a punto in modo più dettagliato.
MDX
MDX assomiglia un po 'a SQL ma funziona in modo molto diverso. Un trattato su "MDX per programmatori SQL" è un argomento a sé stante. Suggerisco di leggere alcuni dei tutorial su di esso e / o ottenere un libro su di esso. Inoltre, le persone amichevoli qui su dba.se possono aiutare con domande se ne hai.
MDX non ha alcun concetto di filtro delle righe. La lingua ha molte operazioni impostate per capire cosa visualizzare sui vari assi della query 1 , più 'SELEZIONA'. È possibile utilizzare with
istruzioni che assomigliano un po 'a CTE per definire misure e set.
Alcune risorse introduttive di programmazione MDX possono essere trovate qui e qui (questa è piuttosto vecchia e molto lunga). Ci sono anche alcuni buoni libri sull'argomento; questa domanda SO ha un po 'di fan-out alle risorse SSAS.
1 Sebbene disponga di operatori non vuoti che limitano i risultati alle combinazioni che contengono effettivamente dati. La maggior parte delle query MDX consiste nella definizione delle sezioni da mostrare sugli assi e saranno necessari operatori non vuoti per evitare che le query restituiscano quantità a livello combinatorio di celle vuote.