Cosa deve sapere un DBA su SSAS?


40

Ho visto molto materiale sull'aspetto commerciale di SSAS, ma non molto sugli aspetti importanti dell'amministrazione e della gestione.

Dal punto di vista della gestione di un'istanza di SQL Server Analysis Services, cosa deve sapere un DBA funzionante su SSAS per gestirlo in modo corretto ed efficiente?

Risposte:


50

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.iniprima 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.exeo un'API .Net chiamata AMO. Puoi anche ottenere vari strumenti PowerShell e simili. ascmd.exeprende 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 withistruzioni 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.


5
Informazioni eccellenti ... in particolare il consiglio "è possibile impostare opzioni che spezzano il server all'avvio".
SqlACID

È una risposta formidabile! Grazie uomo!
Marian

6

È possibile ottenere alcune delle risposte relative all'amministrazione SSAS da questo lungo white paper Guida operativa di SQL Server 2008 R2 Analysis Services . Ecco come inizia l'introduzione:

In questa guida troverai informazioni su come testare ed eseguire Microsoft SQL Server Analysis Services in SQL Server 2005, SQL Server 2008 e SQL Server 2008 R2 in un ambiente di produzione. L'obiettivo di questa guida è come testare, monitorare, diagnosticare e rimuovere i problemi di produzione anche sui cubi di dimensioni maggiori. Questo documento fornisce inoltre indicazioni su come configurare il server per le migliori prestazioni possibili.

Chiaramente è indirizzato a DBA / amministratori. Se si sviluppano anche applicazioni mediante SSAS, è possibile anche dare un'occhiata al White paper della Guida alle prestazioni di Analysis Services 2008


Grazie DaniSQL. Ho anche trovato questo documento, e probabilmente dovrei averlo menzionato sulla domanda (scusate!), Ma stavo cercando un'introduzione più delicata sull'argomento e opinioni costruite sull'esperienza dei nostri colleghi DBA qui.
Ivanmp

2
Non posso parlare per esperienza poiché non lavoro direttamente su SSAS da solo :-( Cerco solo di farmi familiarità esaminando alcune parti del libro bianco che ho menzionato sopra e ho anche fatto un allenamento di due giorni da lavori pragmatici pochi mesi torna indietro e leggi il libro amzn.to/za1ypP creato dai formatori.Inoltre, un'introduzione molto semplice può essere trovata nel capitolo 17 di questo libro - Inizio, Microsoft® SQL Server® 2008 Administration ( amzn.to/xnKAWw )
DaniSQL
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.