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 modelo para usar somente dados relacionais (somente DirectQuery) ou pode configurar o modelo para alternar entre o uso somente de dados armazenados em cache ou somente de 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 no modelo e os relatórios devem ser provenientes de uma única fonte de dados relacionais, SQL Server ou SQL Server PDW. Para obter mais informações, consulte Modo DirectQuery (SSAS tabular).
Em seguida, revise as limitações das medidas e das colunas calculadas, e determine se as fórmulas que você pretende usar são compatíveis com o modo DirectQuery. Talvez seja necessário remover ou modificar as seguintes partes do modelo:
Não há suporte para colunas calculadas.
Dados copiados e colados não podem ser usados. Portanto, se você quiser iniciar a solução importando um modelo PowerPivot, exclua todas as tabelas vinculadas antes de importar a solução, pois esses dados não poderão ser excluídos e bloquearão a validação do DirectQuery.
Importante:
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 no 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 espaço de trabalho 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 Erros do 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 Designer de consulta relacional (SSAS) 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 o modelo tiver usado anteriormente dados de cópia e colagem ou dados de outros provedores, você poderá criar novas exibições e colunas derivadas na fonte de dados relacional ou até mesmo na definição de consulta usada na importação da tabela. No entanto, todos os dados usados em um modelo DirectQuery devem estar acessíveis em uma única fonte de dados relacional. Se alguns dados estiverem em sistemas externos, é recomendável prepará-los na fonte de dados relacional.
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 na conexão com a fonte de dados relacional. 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 a fonte de dados relacional. |
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 relacional. 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 você 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 a partir 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 espaço de trabalho 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
No SQL Server Management Studio, abra a instância do Analysis Services na qual o modelo foi implantado. 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.
Voltar ao início
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 de tabela armazenados em cache, você pode usar também funções Analysis Services a acesso de dados de controle, mas os dados armazenados no cache também deve ser protegido. 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 do modelo em um modo híbrido tem muitas vantagens: você pode obter dados atualizados na fonte de dados relacional quando necessário, principalmente quando os dados tiverem que ser atualizados em tempo real. No entanto, a preservação do cache permite que você trabalhe com dados na memória para obter um melhor desempenho durante a criação dos relatórios ou o teste do 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 podem experimentar uma ligeira diminuição no desempenho, mas poderão obter os dados diretamente no repositório relacional, garantindo que os resultados serão 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 Na Memória