Cenários de implantação do DirectQuery (SSAS tabular)
Este tópico fornece um passo a passo do processo de design e implantação para modelos DirectQuery. Você pode configurar o DirectQuery para usar somente dados relacionais (somente DirectQuery) ou pode configurar o modelo para alternar entre usar somente dados armazenados em cache ou somente dados relacionais (modo híbrido). Este tópico explica o processo de implementação para ambos os modos e descreve possíveis diferenças em resultados da consulta dependendo do modo e da configuração de segurança.
Etapas de design e implantação
Comparando configurações do DirectQuery
Etapas de design e implantação
Etapa 1. Criar a solução
Independentemente de qual modo você usará, você deve revisar as informações que descrevem as limitações nos dados que podem ser usados em modelos DirectQuery. Por exemplo, todos os dados usados em seu modelo e relatórios devem vir de um único banco de dados do SQL Server. Para obter mais informações, consulte Modo DirectQuery (SSAS Tabular).
Além disso, revise as limitações em medidas e colunas calculadas, e determine se as fórmulas que você pretende usar são compatíveis com o modo DirectQuery. Você pode precisar remover ou modificar os elementos a seguir:
Não há suporte para colunas calculadas.
Dados copiados e colados não podem ser usados. Se você importar um modelo do PowerPivot para iniciar sua solução, exclua as tabelas vinculadas antes de importar a solução, porque estes dados não podem ser excluídos e podem bloquear a validação do DirectQuery.
Etapa 2. Habilitar o modo DirectQuery no designer de modelos
Por padrão, o DirectQuery fica desabilitado. Portanto, você deve configurar o ambiente de design para oferecer suporte ao modo DirectQuery.
Clique com o botão direito do mouse no nó Model.bim em Gerenciador de Soluções e defina a propriedade, Modo DirectQuery, como On
.
Você pode ativar a qualquer momento o DirectQuery; porém, verifique se você não criou colunas ou fórmulas que são incompatíveis com o modo DirectQuery, é recomendável habilitar o modo DirectQuery desde o início.
Inicialmente, mesmo os modelos DirectQuery são sempre criados na memória. O modo de consulta padrão para o banco de dados do workspace também é definido como DirectQuery com Na Memória. Este modo de funcionamento híbrido permite usar o cache de dados importados para desempenho aprimorado durante o processo de design de modelo, enquanto valida o modelo para requisitos de DirectQuery.
Etapa 3. Resolver erros de validação
Se você obtiver erros de validação quando ativar o DirectQuery, ou quando adicionar novos dados ou fórmulas, abra a Lista de Errosdo Visual Studio e execute as ações necessárias.
Altere qualquer configuração de propriedade exigida para o modo DirectQuery, conforme descrito nas mensagens de erro.
Remova colunas calculadas. Se você precisar de uma coluna calculada para uma medida específica, sempre poderá criar a coluna usando o SSAS (Designer de Consulta Relacional) fornecido no assistente de Importação de Tabela.
Modifique ou remova fórmulas que são incompatíveis com o modo DirectQuery. Se você precisar de uma função específica para um cálculo, pense em maneiras de fornecer um equivalente usando Transact-SQL.
Adicione dados conforme necessário. Se seu modelo anteriormente usou dados copiados e colados ou dados de provedores diferentes do SQL Server, você pode criar novas exibições e colunas derivadas dentro da conexão existente ou usar consultas distribuídas. Todos os dados usados em um modelo DirectQuery devem estar acessíveis por uma única fonte de dados do SQL Server.
Etapa 4. Definir o método preferencial para responder consultas no modelo
Somente DirectQuery | Defina a propriedade como DirectQuery. |
Modo híbrido | Defina a propriedade para Na Memória com DirectQuery ou DirectQuery com Na Memória. Você pode alterar este valor posteriormente para usar uma preferência diferente. Observe que os clientes podem substituir o método preferido na cadeia de conexão. |
Etapa 5. Especificar a partição DirectQuery
Somente DirectQuery | Opcional. Um modelo somente DirectQuery não precisa de uma partição. Porém, se você criou partições no modelo durante a fase de design, lembre-se de que somente uma partição pode ser usada como a fonte de dados. Por padrão, a primeira partição que você criou será usada como a partição DirectQuery. Para garantir que todos os dados exigidos pelo modelo estejam disponíveis pela partição DirectQuery, escolha uma partição DirectQuery e edite a instrução SQL para obter o conjunto de dados inteiro. |
Modo híbrido | Se alguma tabela em seu modelo tiver várias partições, você deverá escolher uma única partição como a partição DirectQuery. Se você não atribuir uma partição, por padrão, a primeira partição que foi criada será usada como a partição DirectQuery. Defina opções de processamento em todas as partições exceto a DirectQuery. Normalmente a partição DirectQuery nunca é processada, porque os dados são passados por meio da fonte relacional. Para obter mais informações, consulte Partições e Modo DirectQuery (SSAS Tabular). |
Etapa 6. Configurar a representação
A representação tem suporte somente para modelos DirectQuery. A opção de representação, Configurações da representação, define as credenciais que são usadas ao exibir dados da fonte de dados do SQL Server especificada.
Somente DirectQuery | Para a propriedade Configurações de Representação, especifique a conta que será usada para se conectar à fonte de dados SQL Server. Se você usar o valor ImpersonateCurrentUser, a instância do Analysis Services que hospeda o modelo passará as credenciais do usuário atual do modelo para o banco de dados SQL Server. |
Modo híbrido | Para a propriedade Configurações de Representação , especifique a conta que será usada para acessar os dados na fonte de dados do SQL Server. Esta configuração não afeta as credenciais que são usadas para processar o cache usado pelo modelo. |
Etapa 7. Implantar o modelo
Quando estiver pronto para implantar o modelo, abra o menu Projeto do Visual Studio e selecione Propriedades. Defina a propriedade QueryMode para um dos valores descritos na tabela a seguir:
Para obter mais informações, consulte Implantar do SQL Server Data Tools (SSAS Tabular).
Somente DirectQuery | DirectQueryOnly Como você só especificou Consulta Direta, os metadados do modelo serão implantados no servidor, mas o modelo não será processado. Observe que o cache que foi usado pelo banco de dados de workspace não será excluído automaticamente. Se você desejar garantir que os usuários não possam consultar os dados armazenados em cache, talvez convenha desmarcar o cache de tempo de design. Para obter mais informações, consulte Limpar os Caches do Analysis Services. |
Modo híbrido | DirectQuery com Na Memória Na Memória com DirectQuery Ambos os valores lhe permitem usar o cache ou a fonte de dados relacional, conforme necessário. A ordem define qual fonte de dados é usada por padrão ao responder consultas no modelo. Em um modo híbrido, o cache deve ser processado ao mesmo tempo que os metadados modelo são implantados no servidor. Você pode alterar esta configuração depois da implantação. |
Etapa 8. Verificar modelo implantado
Em SQL Server Management Studio, abra a instância do Analysis Services em que você implantou o modelo. Clique com o botão direito do mouse no nome do banco de dados e selecione Propriedades.
A propriedade, DirectQueryMode, foi definida quando você definiu as propriedades de implantação.
A propriedade, Informações de Representação de Fonte de Dados, foi definida quando você definiu as opções de representação de usuário. Para obter mais informações, consulte Definir opções de representação (SSAS – Multidimensional).
Após a implantação do modelo, você poderá alterar essas propriedades.
Comparando opções do DirectQuery
Somente DirectQuery
Esta opção é preferida quando você deseja garantir uma única origem de dados, ou quando seus dados são muito grandes para caber na memória. Se você estiver trabalhando com uma fonte de dados relacional muito grande, durante o tempo de design, pode criar o modelo usando um subconjunto dos dados. Quando você implanta o modelo no modo somente DirectQuery, pode editar a definição de fonte de dados para incluir todos os dados necessários.
Esta opção também será preferida se você desejar usar a segurança fornecida pela fonte de dados relacional para controlar acesso aos dados de usuário. Com modelos tabulares armazenados em cache, você também pode usar funções do Analysis Services para controlar o acesso a dados, mas os dados armazenados no cache também devem ser protegidos. Você sempre deveria usar esta opção se seu contexto de segurança requerer aqueles dados nunca deveriam ser armazenados em cache.
A tabela a seguir descreve os possíveis resultados de implantação para o modo somente DirectQuery:
DirectQuery sem cache | Nenhum dado é carregado no cache. O modelo nunca pode ser processado. O modelo só pode ser consultado usando clientes que suporte consultas de DAX. Especifica a origem da qual os resultados da consulta são retornados. DirectQueryMode = On QueryMode = DirectQuery |
DirectQuery com consultas apenas no cache | Falha na implantação. Não há suporte para essa configuração. DirectQueryMode = On QueryMode = Na Memória |
Modo híbrido
A implantação de seu modelo em um modo híbrido tem muitas vantagens: você pode obter dados atualizados da fonte de dados do SQL Server, se necessário, mas a preservação do cache oferece a possibilidade de trabalhar com dados na memória para melhorar o desempenho ao criar relatórios ou testar o modelo.
Um modo híbrido do DirectQuery também será útil se seu modelo for muito grande. Em vez de os usuários acessarem dados obsoletos ou o modelo estar indisponível enquanto o cache estiver sendo processado, você pode alternar o modelo para a modo DirectQuery durante o processamento. Os usuários poderiam experimentar o desempenho ligeiramente mais lento mas eles obteriam dados diretamente do repositório relacional, garantindo que os resultados fossem atualizados.
A tabela a seguir compara o resultado de implantação em cada uma das combinações de opções do DirectQuery.
Modo híbrido com cache preferencial | O modelo pode ser processado e dados podem ser carregados no cache. Consultas usam o cache por padrão. Se um cliente desejar usar a origem de DirectQuery, um parâmetro deverá ser inserido na cadeia de conexão. DirectQueryMode = On QueryMode = Na memória com DirectQuery |
Modo híbrido com DirectQuery preferencial | O modelo pode ser processado e dados podem ser carregados no cache. Porém, consultas usam o DirectQuery por padrão. Se um cliente desejar usar os dados em cache, deverá ser inserido um parâmetro na cadeia de conexão. Se as tabelas do modelo forem particionadas, a partição principal do cache de dados também será definida como Na Memória com DirectQuery. DirectQueryMode = On QueryMode = DirectQuery com Memória |
Consulte Também
Modo DirectQuery (SSAS tabular)
Acesso a dados de modelo de tabela