Uma rápida visão geral do SSAS para DBAs
Portanto, você é um DBA do SQL Server e acabou de herdar alguns cubos do nada para gerenciar. Um rápido curso intensivo sobre administração do SSAS parece estar em ordem.
Do ponto de vista administrativo, o SSAS é um aplicativo bastante simples, mas com fome de recursos. É muito mais simples que uma plataforma DBMS, embora diferente de várias maneiras. Além disso, existem algumas tarefas administrativas, como a otimização baseada no uso específica do SSAS, que você pode ter para 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 através do SSMS (conecte-se ao servidor, clique com o botão direito do mouse no servidor, selecione propriedades), poderá definir opções que interromperão o servidor na inicialização. Tire uma cópia msmdsrv.ini
antes de jogar 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 coisas de seus caches. HighMemoryLimit é o máximo absoluto que será usado.
Observe que o SSAS armazena seus dados em arquivos (muitos arquivos - ele 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 é de aproximadamente 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, será necessário desativá-los para que não brigue com a memória. 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 do 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 canal ('|').
DataDir é o caminho padrão para arquivos. Se você pretende particionar o cubo em vários volumes, precisará configurar o AllowedBrowsingFolders adequadamente.
O LogDir é onde o servidor coloca vários arquivos de log, incluindo o gravador de vôo e os 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 com base no uso (mais sobre isso mais adiante).
TempDir é um local para arquivos temporários que o SSAS cria durante o processamento. Se você estiver processando grandes volumes de dados e tendo problemas de desempenho, poderá se beneficiar de mudar isso para outro volume a partir dos dados.
BackupDir é o que diz na lata.
Diversos:
Alguns parâmetros diversos também podem ser interessantes. Alguns conjuntos que você pode precisar ajustar são:
DefaultMaxDrillthroughRows: isso limita o tamanho dos conjuntos de linhas de detalhamento. Você pode precisar mexer nisso para permitir mais.
Segmentos / tempos limite: pode ser necessário ajustá-los. Eu nunca tive que me preocupar.
Esses são os princípios. Pode ser necessário ajustar os outros por razões específicas, mas você 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 dos arquivos para partições e 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 conectores MDX e XML / A. Se você precisar incorporar o MDX em um comando XML / A, preste atenção à necessidade de usar escapes XML, como &
. Este não é um problema com o editor MDX e a ferramenta de consulta no SSMS.
Trabalhos offline podem ser realizados 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 afins. ascmd.exe
pega um arquivo XML / A e o publica no servidor. Se você precisar copiar o arquivo programaticamente, é melhor trabalhar com pequenas ferramentas .Net do que tentar manipular arquivos XML a partir de um script .cmd.
O guia de operações aborda isso 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 'Servidor' para criar bancos de dados, portanto é bem provável que você precise concedê-lo aos desenvolvedores em qualquer servidor OLAP de desenvolvimento que você tenha.
Outra segurança pode ser aplicada apenas a esquemas de cubo individuais. Você pode conceder permissões para ler, processar, detalhamento, write-back e similares em itens individuais para funções em um esquema. As funções nos esquemas OLAP podem ser definidas no BIDS e são implementadas 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 participação na função pode ser visto aqui.
Otimização baseada no uso
Como DBA, é bem possível que você se envolva com este, mas primeiro tenha um pouco de conhecimento sobre o armazenamento físico. O SSAS funciona calculando e persistindo agregados pré-criados junto com os dados base. Se uma consulta puder ser satisfeita pressionando um agregado, o servidor OLAP usará isso preferencialmente aos dados de base, pois o agregado envolverá muito menos E / S e, portanto, será mais rápido recuperar os dados.
No entanto, é necessário determinar quais agregados calcular (ou seja, para quais combinações de atributos de dimensão gerar os acúmulos). O BIDS tem uma ferramenta que adivinhar isso e gerar algumas para você. Algumas ferramentas, como o auxiliar de Lances , também permitem editar manualmente as agregações.
A otimização baseada no uso funciona registrando as consultas reais emitidas para o servidor e, em seguida, usando esse registro para elaborar um conjunto de agregados que seriam ideais para essas consultas. Como DBA, você pode configurar o log de consultas OLAP para capturar esses dados e executar a otimização no cubo. Um resumo sobre a configuração do log de consulta pode ser encontrado aqui.
A ferramenta para fazer isso é chamada de 'Assistente de otimização baseado em uso'. Ele 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 entra em sintonia com mais detalhes.
MDX
O MDX parece um pouco com SQL, mas funciona de maneira muito diferente. Um tratado sobre 'MDX para programadores SQL' é um tópico inteiro por si só. Sugiro ler alguns dos tutoriais e / ou obter um livro. Além disso, o pessoal amigável aqui no dba.se pode ajudar com perguntas, se você tiver alguma.
MDX não tem nenhum conceito de filtragem de linhas. O idioma possui várias operações definidas para determinar 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 demorado). Existem também alguns bons livros sobre o assunto; essa pergunta 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 serão exibidas nos eixos, e operadores não vazios serão necessários para evitar consultas retornando quantidades no nível combinatório de células vazias.