Já vi muito material cobrindo o aspecto comercial do SSAS, mas não muito sobre os aspectos importantes de administração e gerenciamento.
Do ponto de vista da administração de uma instância do SQL Server Analysis Services, o que um DBA ativo precisa saber sobre o SSAS para gerenciá-lo de maneira correta e eficiente?
Uma rápida visão geral do SSAS para DBAs
Então, você é um DBA do SQL Server e acabou de herdar alguns cubos do nada para gerenciar. Um rápido curso intensivo sobre administração SSAS parece estar em ordem.
Do ponto de vista administrativo, o SSAS é um aplicativo bastante direto, embora com muitos recursos. É muito mais simples que uma plataforma DBMS, embora diferente em vários aspectos. Além disso, existem algumas tarefas administrativas, como otimização baseada em uso específica para SSAS, que você pode ter que entender.
Faça backup do seu arquivo de configuração
Todos os dados de configuração residem em um arquivo chamado
msdmsrv.ini
. É um arquivo XML. Se você mexer na configuração por meio do SSMS (conectar ao servidor, clicar com o botão direito do mouse no servidor, selecionar propriedades), poderá definir opções que interromperão o servidor na inicialização. Faça uma cópiamsmdsrv.ini
antes de brincar com qualquer coisa.Parâmetros importantes
Memória: SSAS é um porco da memória bíblica. Gosta de compilações de 64 bits, se possível, e muita memória. Os parâmetros 'Memory\LowMemoryLimit' e 'Memory\HighMemoryLimit' controlam as políticas de uso de memória. LowMemoryLimit não é uma alocação mínima de memória. É um limite em que o SSAS considera que o sistema está com pouca memória e começa a liberar itens de seus caches. HighMemoryLimit é o máximo absoluto que ele usará.
Observe que o SSAS armazena seus dados em arquivos (muitos arquivos - não possui nenhum mecanismo equivalente a grupos de arquivos), portanto, faz muito uso do cache do sistema de arquivos O/S para esses arquivos. Observe que o padrão para esses limites é cerca de 65% e 80% da memória da máquina, respectivamente; portanto, se você deseja que o servidor OLAP coexista com uma instância do SQL Server, precisará desativá-los para que não brigue pela memória com o servidor de banco de dados.
Diretórios: cinco parâmetros de interesse cobrem isso: DataDir, AllowedBrowsingFolders, BackupDir, LogDir e TempDir. DataDir e AllowedBrowsingFolders são os mais importantes.
AllowedBrowsingFolders afeta a lista de pastas em que o servidor OLAP colocará seus arquivos de dados. Qualquer coisa com uma interface de usuário (por exemplo, o assistente de implantação) restringirá suas opções à lista em AllowedBrowsingFolders. O valor é uma lista de diretórios delimitada por pipe ('|').
DataDir é o caminho padrão para arquivos. Se você pretende particionar o cubo em vários volumes, precisará configurar AllowedBrowsingFolders adequadamente.
LogDir é onde o servidor coloca vários arquivos de log, incluindo gravador de voo e logs de consulta. O log do gravador de vôo é usado para solução de problemas e o log de consulta OLAP é usado para otimização baseada em uso (mais sobre isso posteriormente).
TempDir é um local para arquivos temporários que o SSAS cria durante o processamento. Se você estiver processando grandes volumes de dados e tiver problemas de desempenho, poderá se beneficiar ao transferir isso para outro volume de dados.
BackupDir é o que diz na lata.
Diversos: Alguns parâmetros diversos também podem ser de interesse. Alguns conjuntos que você pode ter que ajustar são:
DefaultMaxDrillthroughRows: limita o tamanho dos conjuntos de linhas de detalhamento. Você pode precisar mexer nisso para permitir mais.
Tópicos/tempo limite: talvez seja necessário ajustá-los. Eu nunca tive que me incomodar.
Esses são os princípios. Você pode precisar ajustar os outros por motivos específicos, mas pode fazer sua lição de casa sobre isso.
Um guia de referência para as propriedades do servidor SSAS pode ser encontrado aqui.
Operações
Implantação: você pode compilar um projeto no BIDS e obter um conjunto de arquivos que podem ser implantados com o assistente de implantação. Pode ser necessário ajustar os caminhos de arquivo para partições e algumas outras coisas.
Tarefas administrativas programadas e em lote: os comandos são emitidos para o SSAS por meio de uma API de serviço da Web chamada XML/A. A Microsoft fornece uma ferramenta interativa para emitir comandos MDX e XML/A. Se você tiver que incorporar MDX em um comando XML/A, fique atento à necessidade de usar escapes XML, como
&
. Isso não é um problema com o editor MDX e a ferramenta de consulta no SSMS.Os trabalhos off-line podem ser executados por meio de várias tarefas de processamento de cubo SSIS, um utilitário de linha de comando chamado
ascmd.exe
ou uma API .Net chamada AMO. Você também pode obter várias ferramentas do PowerShell e similares.ascmd.exe
pega um arquivo XML/A e o envia para o servidor. Se você tiver que salvar o arquivo programaticamente, talvez seja melhor trabalhar com pequenas ferramentas .Net em vez de tentar manipular arquivos XML a partir de um script .cmd.O guia de operações trata disso com mais detalhes.
Segurança
A segurança no SSAS é bastante simplista. Ele tem uma função global de 'Servidor' que possui permissões administrativas em todo o sistema. Infelizmente, você precisa de 'Server' para criar bancos de dados, então é bem provável que você precise concedê-lo aos desenvolvedores em qualquer servidor OLAP de desenvolvimento que você tenha.
Outra segurança só pode ser aplicada a esquemas de cubo individuais. Você pode conceder permissões para ler, processar, detalhar, escrever novamente e coisas semelhantes em itens individuais para funções em um esquema. As funções nos esquemas OLAP podem ser definidas no BIDS e são implantadas com o cubo. Grupos ou usuários do AD podem ser atribuídos a essas funções por meio do SSMS.
Um exemplo de como gerenciar programaticamente a associação de função pode ser visto aqui.
Otimização baseada no uso
Como um DBA, você pode se envolver nisso, mas primeiro um pouco de histórico sobre o armazenamento físico. O SSAS funciona calculando e mantendo agregados pré-construídos junto com os dados básicos. Se uma consulta puder ser atendida atingindo um agregado, o servidor OLAP usará isso em vez dos dados básicos, pois o agregado envolverá muito menos E/S e, portanto, será mais rápido recuperar os dados.
No entanto, você precisa descobrir quais agregações calcular (ou seja, para quais combinações de atributos de dimensão gerar rollups). O BIDS tem uma ferramenta que adivinha isso e gera alguns para você. Algumas ferramentas, como o auxiliar BIDS , também permitirão que você edite manualmente os agregados.
A otimização baseada em uso funciona obtendo um log das consultas reais emitidas para o servidor e, em seguida, usando esse log para elaborar um conjunto de agregados que seria ideal para essas consultas. Como DBA, você pode configurar o log de consulta OLAP para capturar esses dados e, em seguida, executar a otimização no cubo. Uma sinopse sobre como configurar o log de consulta pode ser encontrada aqui.
A ferramenta para fazer isso é chamada de 'Assistente de otimização baseado em uso'. Isso reside no SSMS e pode ser encontrado abrindo a partição no explorer e selecionando 'Otimização baseada em uso' no menu do botão direito.
O guia de desempenho aborda o ajuste com mais detalhes.
MDX
O MDX se parece um pouco com o SQL, mas funciona de maneira muito diferente. Um tratado sobre 'MDX para programadores SQL' é um tópico completo por si só. Sugiro ler alguns dos tutoriais sobre ele e/ou comprar um livro sobre ele. Além disso, o pessoal amigável aqui no dba.se pode ajudar com dúvidas, se você tiver alguma.
O MDX não tem nenhum conceito de filtragem de linhas. A linguagem tem um monte de operações definidas para descobrir o que exibir nos vários eixos da consulta 1 , além de 'SELECT'. Você pode usar
with
instruções que se parecem um pouco com CTEs para definir medidas e conjuntos.Alguns recursos introdutórios de programação MDX podem ser encontrados aqui e aqui (este é bastante antigo e muito prolixo). Existem também alguns bons livros sobre o assunto; esta questão do SO tem um pouco de fan-out para os recursos do SSAS.
1 Embora tenha operadores não vazios que restringem os resultados a combinações que realmente possuem dados. A maioria das consultas MDX consiste em definir quais fatias mostrar nos eixos, e operadores não vazios serão necessários para evitar que as consultas retornem quantidades de nível combinatório de células vazias.
Você pode obter algumas das respostas sobre a administração do SSAS neste longo white paper Guia de operações do SQL Server 2008 R2 Analysis Services . Assim começa a introdução:
Claramente, é direcionado para DBA/admins. Se você também desenvolve aplicativos usando SSAS, também pode consultar o whitepaper Guia de desempenho do Analysis Services 2008
Não posso falar por experiência própria, pois não trabalho diretamente no SSAS - apenas tento me familiarizar examinando algumas partes do white paper que mencionei acima e também fiz um treinamento de dois dias da Pragmatic Works alguns meses atrás e leia o livro http://amzn.to/za1ypP da autoria dos formadores. Além disso, uma introdução muito básica pode ser encontrada no capítulo 17 deste livro - Beginning Microsoft® SQL Server&® 2008 Administration .