Habilitar o modo DirectQuery no SSMS

Aplica-se a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Você pode alterar as propriedades de acesso a dados de um modelo tabular que já foi implantado, habilitando o modo DirectQuery, em que as consultas são executadas em uma fonte de dados relacional de back-end em vez de dados armazenados em cache que residem na memória.

Importante

É recomendável usar o designer de modelo tabular no Visual Studio em vez de SQL Server Management Studio (SSMS) para alternar os modos de armazenamento de dados. Ao usar o Visual Studio para alterar o modo de modelo e, em seguida, acompanhar isso com a implantação no servidor, o modelo e o banco de dados permanecem em sincronia. Além disso, alterar os modos de armazenamento no modelo permite que você examine todos os erros de validação que ocorrem. Ao usar o SSMS conforme descrito neste artigo, os erros de validação não são relatados.

Requisitos

Habilitar o uso do modo DirectQuery em um modelo tabular é um processo de várias etapas:

  • Verifique se o modelo não tem recursos que podem causar erros de validação no modo DirectQuery e altere o modo de armazenamento de dados no modelo de na memória para DirectQuery.

    Uma lista de limitações de recursos está documentada no modo DirectQuery.

  • Examine as cadeia de conexão e as credenciais usadas pelo banco de dados implantado para recuperar dados do banco de dados externo de back-end. Certifique-se de que haja apenas uma conexão e que as configurações sejam adequadas para a execução da consulta.

    Bancos de dados de tabela que não foram projetados especificamente para DirectQuery podem ter várias conexões que agora precisam ser reduzidas a uma, conforme é exigido para o modo DirectQuery.

    As credenciais usadas originalmente para processar dados agora serão usadas para consultar dados. Como parte da configuração do DirectQuery, verifique e possivelmente altere a conta se você usar números diferentes para operações dedicadas.

    O modo DirectQuery é o único cenário no qual o Analysis Services executa delegação confiável. Se sua solução requer delegação obter resultados de consultas específicas de usuários, a conta usada para conectar-se ao banco de dados back-end deve ter permissão para delegar a identidade do usuário que fez a solicitação e as identidades de usuário devem ter permissões de leitura no banco de dados back-end.

  • A última etapa é confirmar se o modo Consulta Direta está operacional por meio da execução de uma consulta.

Alternar para o modo DirectQuery

  1. Em Pesquisador de Objetos, clique com o botão direito do mouse nomodo padrão domodelo> de propriedades> do banco de dados>.

  2. Defina o modo como DirectQuery.

    Valores válidos Descrição
    DirectQuery Consultas são executadas em um banco de dados relacional back-end, usando a conexão da fonte de dados definida para o modelo.

    Consultas ao modelo são convertidas em consultas de banco de dados nativo e redirecionadas para a fonte de dados.

    Quando você processa um modelo definido para o modo DirectQuery, somente metadados são compilados e implantados. Os dados em si são externos ao modelo, residindo nos arquivos de banco de dados da fonte de dados em funcionamento.
    Importaçãoação Consultas são executadas no banco de dados de tabela em MDX ou DAX.

    Quando você processa um modelo definido como Modo de importação, os dados são recuperados de uma fonte de dados de back-end e armazenados em disco. Quando o banco de dados é carregado, os dados são copiados totalmente para a memória para tornar verificações e consultas de tabela muito mais rápidas.

    Esse é o modo padrão para modelos de tabela e é o único modo para certas fontes de dados (não relacionais).
    Dupla Permite a Importação e o DirectQuery. Não há suporte para esse modo em Azure Analysis Services ou Power BI Premium.

Verificar propriedades de conexão

Dependendo de como a conexão da fonte de dados seja configurada, alternar para o modo DirectQuery pode alterar o contexto de segurança da conexão. Ao alterar o modo de acesso de dados, examine as propriedades da cadeia de conexão e de representação para verificar se o logon é válido para conexões contínuas com o banco de dados de back-end.

Examine a seção Configurar o Analysis Services para delegação confiável em Configure Analysis Services for Kerberos constrained delegation para obter informações básicas sobre a delegação de uma identidade de usuário para cenários de DirectQuery.

  1. No Pesquisador de Objetos, expanda Conexões e clique duas vezes em uma conexão para exibir suas propriedades.

    Para modelos DirectQuery, deve haver apenas uma conexão definida para o banco de dados e a fonte de dados deve ser relacional e de um tipo de banco de dados compatível. Consulte Fontes de dados com suporte.

  2. A cadeia de conexão deve especificar o servidor, o nome do banco de dados e o método de autenticação usado em operações de DirectQuery. Se você estiver usando a autenticação do SQL Server, pode especificar aqui o login do banco de dados.

  3. Informações sobre Representação são usadas para a autenticação do Windows. Opções válidas para modelos de tabela no modo DirectQuery incluem:

    • Use a conta de serviço. Você pode escolher essa opção se a conta de serviço do Analysis Services tiver permissões de leitura no banco de dados relacional.

    • Use um nome de usuário e uma senha específicos. Especifique uma conta de usuário do Windows que tenha permissões de leitura no banco de dados relacional.

Observe que estas credenciais são usadas apenas para responder consultas no repositório de dados relacional; elas não são iguais às credenciais usadas para processar o cache de um modelo híbrido.

A representação não pode ser usada quando o modelo é usado apenas na memória. A configuração ImpersonateCurrentUseré inválida, a menos que o modelo esteja usando o modo DirectQuery.

Validar o acesso ao DirectQuery

  1. Inicie um rastreamento usando o SQL Server Profiler ou xEvents no Management Studio, conectado ao banco de dados relacional no SQL Server.

    Se você estiver usando Oracle ou Teradata, use as ferramentas de rastreamento para essas plataformas de banco de dados.

  2. No Management Studio, digite e execute uma consulta MDX simples, como select <some measure> on 0 from model..

  3. No rastreamento, você deve ver evidências de execução de consultas no banco de dados relacional.

Confira também

Nível de compatibilidade
Fontes de dados com suporte
Eventos estendidos