Os mecanismos OLAP na memória têm vantagens sobre os mecanismos OLAP tradicionais com RAM suficiente para conter o(s) cubo(s) inteiro(s)?
Por exemplo, se eu usar um mecanismo MOLAP (SSAS) e GB/TB de RAM onde todo o cubo (ou mesmo o esquema em estrela) é residente na RAM, qual é a diferença em comparação com algo como TM1/SAP HANA?
Não é minha área de especialização, mas, pelo que entendi, a diferença na maioria dos chamados bancos de dados OLAP in-memory (não é um termo que eu goste, é usado mais como argumento de marketing do que como uma comparação justa de tecnologias) é coluna armazenar índices .
Column-Stores vs Row-Stores (How Different Are They Really) é uma boa introdução à tecnologia se você estiver familiarizado com as estruturas tradicionais de banco de dados OLTP e OLAP.
Os índices de armazenamento de colunas aparecerão no SQL Server 2012 (também conhecido como 'Denali').
Aqui está um link para uma apresentação em Power Point de Conor Cunningham, principal arquiteto de software da equipe do SQL Server Query Processor, que aborda esse novo recurso.
Bancos de dados projetados com a suposição de que serão inteiramente residentes na memória principal podem usar estruturas como índices T-tree . Mas a vantagem real é que os IMDBs são mais simples. Eles fazem menos (já que não precisam se preocupar em gerenciar um cache, ou serializar gravações para consistência, ou qualquer coisa a ver com E/S compatível com ACID), então eles executam menos instruções no hardware para realizar o mesmo "trabalhar". Um banco de dados de uso geral deve ser tudo para todas as pessoas; como um Leatherman tem uma dúzia de ferramentas, mas às vezes você só precisa de uma ponta, então você compra uma lâmina da Cold Steel e ninguém discute que é uma faca melhor!
Os armazenamentos de coluna permitem compactação de dados significativa de uma maneira que não é possível em um sistema de armazenamento de linha. Basicamente, todos os valores em uma coluna são armazenados apenas uma vez em um dicionário, então o banco de dados armazena uma chave de dicionário inteira em vez do valor original. Se você tivesse um banco de dados de armazenamento de linha na memória, ele seria significativamente maior e mais impraticável, daria o custo da memória. As melhorias de desempenho são significativas o suficiente para que você não precise mais pré-agregar os dados da transação e os cubos não são necessários na maioria dos casos.
Além disso, porque o armazenamento de colunas mantém todos os valores de colunas na varredura de blocos de memória sequencial, há menos blocos para pular em operações como Select. No entanto, existem algumas desvantagens para armazenamentos de colunas transacionalmente e o HANA, por exemplo, adicionou tabelas rowstore em versões posteriores.