Partilhar via


Conectar-se a fontes de dados do SAP HANA usando o DirectQuery no Power BI

Você pode se conectar a fontes de dados do SAP HANA diretamente usando o DirectQuery, que geralmente é necessário para grandes conjuntos de dados que excedem os recursos disponíveis para dar suporte a modelos de importação. Há duas abordagens para se conectar ao SAP HANA no modo DirectQuery, cada uma com recursos diferentes:

  • Trate o SAP HANA como uma fonte multidimensional (padrão): Nesse caso, o comportamento é semelhante a quando o Power BI se conecta a outras fontes multidimensionais, como o SAP Business Warehouse ou o Analysis Services. Quando você se conecta ao SAP HANA como uma fonte multidimensional, uma única visualização analítica ou de cálculo é selecionada e todas as medidas, hierarquias e atributos dessa exibição estão disponíveis na lista de campos. Não é possível adicionar colunas calculadas ou outras personalizações de dados no modelo semântico. À medida que os elementos visuais são criados, os dados agregados são recuperados diretamente do SAP HANA. Tratar o SAP HANA como uma fonte multidimensional é o padrão para novos relatórios DirectQuery sobre o SAP HANA.

  • Tratar o SAP HANA como uma fonte relacional: Nesse caso, o Power BI trata o SAP HANA como uma fonte de dados relacional. Esta abordagem oferece uma maior flexibilidade. Entre outras coisas, você pode adicionar colunas calculadas e incluir dados de outras fontes, mas é preciso ter cuidado para garantir que as medidas sejam agregadas conforme o esperado. Evitar medidas não aditivas. Além disso, certifique-se de usar modos de exibição simples com poucas colunas e junções para evitar problemas de desempenho. Considere recriar medidas no modelo semântico, mas tenha em mente que medidas complexas podem não se dobrar. As hierarquias do SAP HANA não estão disponíveis ao usar o SAP HANA como fonte relacional.

O método de conexão é determinado por uma opção de ferramenta global, que é definida ao selecionar File>Options and settings seguido de Options>DirectQuerye, depois, ao selecionar a opção Tratar SAP HANA como uma fonte relacional, conforme mostrado na imagem a seguir.

Captura de tela da caixa de diálogo Opções, mostrando as opções do DirectQuery.

A opção de tratar o SAP HANA como uma fonte relacional controla o método de conexão para qualquer novo relatório de usando DirectQuery sobre SAP HANA. Ele não tem efeito sobre quaisquer conexões SAP HANA existentes no relatório atual, nem sobre conexões em quaisquer outros relatórios abertos. Portanto, se a opção estiver desmarcada no momento, ao adicionar uma nova conexão ao SAP HANA usando Get Data, essa conexão está tratando o SAP HANA como uma fonte multidimensional. No entanto, se for aberto um relatório diferente que também se conecte ao SAP HANA, esse relatório continuará a se comportar de acordo com a opção definida no momento em que foi criado. Esse fato significa que todos os relatórios que se conectam ao SAP HANA como uma fonte relacional continuam a tratar o SAP HANA como uma fonte relacional, mesmo que a opção esteja desmarcada.

Os dois métodos de conexão SAP HANA constituem um comportamento diferente, e não é possível alternar um relatório existente de um método de conexão para o outro.

Tratar o SAP HANA como uma fonte multidimensional (padrão)

Todas as novas conexões com o SAP HANA usam esse método de conexão por padrão, tratando o SAP HANA como uma fonte multidimensional. Ao conectar-se ao SAP HANA como uma fonte multidimensional, as seguintes considerações se aplicam:

  • No Obter Dados Navigator, pode ser selecionada uma única visualização do SAP HANA. Não é possível selecionar medidas ou atributos individuais. Não há nenhuma consulta definida no momento da conexão, o que é diferente da importação de dados ou ao usar o DirectQuery ao tratar o SAP HANA como uma fonte relacional. Essa consideração também significa que não é possível usar diretamente uma consulta SAP HANA SQL ao selecionar esse método de conexão.

  • Todas as medidas, hierarquias e atributos do modo de exibição selecionado são exibidos na lista de campos.

  • Como uma medida é usada em um visual, o SAP HANA é consultado para recuperar o valor da medida no nível de agregação necessário para o visual. Ao lidar com medidas não aditivas, como contadores e proporções, todas as agregações são executadas pelo SAP HANA e nenhuma agregação adicional é executada pelo Power BI.

  • Para garantir que os valores agregados corretos possam ser sempre obtidos do SAP HANA, certas restrições devem ser impostas. Por exemplo, não é possível adicionar colunas calculadas ou combinar dados de várias visualizações do SAP HANA no mesmo relatório. Também não é possível excluir colunas ou alterar seus tipos de dados.

Tratar o SAP HANA como uma fonte multidimensional oferece menos flexibilidade do que a abordagem alternativa relacional, mas é mais simples. Esse método de conexão garante valores agregados corretos ao lidar com medidas mais complexas do SAP HANA e, geralmente, resulta em maior desempenho.

A lista Field inclui todas as medidas, atributos e hierarquias da visualização SAP HANA. Observe os seguintes comportamentos que se aplicam ao usar esse método de conexão:

  • Qualquer atributo incluído em pelo menos uma hierarquia fica oculto por padrão. No entanto, eles podem ser vistos, se necessário, ao selecionar Ver itens ocultos no menu de contexto da lista de campos. A partir do mesmo menu de contexto, podem ser tornados visíveis, se necessário.

  • No SAP HANA, um atributo pode ser definido para usar outro atributo como seu rótulo. Por exemplo, Product, com valores 1, 2, 3e assim por diante, poderia usar ProductName, com valores Bike, Shirt, Glovese assim por diante, como seu rótulo. Neste caso, um único campo Produto é mostrado na lista de campos, cujos valores são os rótulos Bike, Shirt, Glovese assim por diante, mas que é classificado por, e com exclusividade determinada por, os valores-chave 1, 2, 3. Uma coluna oculta Product.Key também é criada, permitindo o acesso aos valores de chave subjacentes, se necessário.

Todas as variáveis definidas na visualização subjacente do SAP HANA são exibidas no momento da conexão e os valores necessários podem ser inseridos. Esses valores podem ser posteriormente alterados selecionando Transformar dados na barra de ferramentas e, em seguida, Editar parâmetros no menu suspenso exibido.

As operações de modelagem permitidas são mais restritivas do que no caso geral ao usar o DirectQuery, dada a necessidade de garantir que os dados agregados corretos sempre possam ser obtidos do SAP HANA. No entanto, ainda é possível fazer algumas adições e alterações, incluindo a definição de medidas, renomear e ocultar campos e definir formatos de exibição. Todas essas alterações são preservadas na atualização e todas as alterações não conflitantes feitas na visualização do SAP HANA são aplicadas.

Restrições de modelagem adicionais

Além das limitações acima mencionadas, esteja ciente das seguintes restrições de modelagem ao se conectar ao SAP HANA como uma fonte multidimensional:

  • Sem suporte para colunas calculadas: A capacidade de criar colunas calculadas está desativada. Esse fato também implica que a funcionalidade de Agrupamento e Clustering, que depende das colunas calculadas, não esteja disponível.
  • Limitações adicionais para medidas: Existem outras limitações impostas às expressões DAX que podem ser usadas em medidas, para refletir o nível de suporte oferecido pelo SAP HANA. Por exemplo, não é possível usar uma função de agregação sobre uma tabela.
  • Sem suporte para definir relacionamentos: Apenas uma única visualização pode ser consultada dentro de um relatório e, como tal, não há suporte para definir relações.
  • Sem Exibição de Tabela: A de Exibição de Tabela normalmente exibe os dados de nível de detalhe nas tabelas. Dada a natureza das fontes multidimensionais, essa visualização não está disponível ao usar o SAP HANA como uma fonte multidimensional.
  • Os detalhes da coluna e da medida são fixos: As colunas e medidas na lista de campos são determinadas pela fonte subjacente e não podem ser modificadas. Por exemplo, não é possível excluir uma coluna, nem alterar seu tipo de dados. Pode, no entanto, ser renomeado.

Restrições adicionais de visualização

Há restrições visuais ao se conectar ao SAP HANA como uma fonte multidimensional:

  • Nenhuma agregação de colunas: Não é possível alterar a agregação de uma coluna num visual, sendo sempre Não Resumir.

Trate o SAP HANA como uma fonte relacional

Para se conectar ao SAP HANA como uma fonte relacional, você deve selecionar File>Options and settings e, em seguida, Options>DirectQuerye, em seguida, selecione a opção Treat SAP HANA as a relational source.

Ao usar o SAP HANA como fonte relacional, alguma flexibilidade extra está disponível. Por exemplo, você pode criar colunas calculadas, incluir dados de várias visualizações do SAP HANA e criar relações entre as tabelas resultantes. No entanto, há diferenças em relação ao comportamento ao se conectar ao SAP HANA como uma fonte multidimensional, particularmente quando a visualização do SAP HANA contém medidas não aditivas, por exemplo, contagens ou médias distintas, em vez de somas simples. As medidas não aditivas podem produzir resultados errados. As medidas também podem reduzir a eficiência da otimização do plano de consulta no SAP HANA e resultar em baixo desempenho e tempos limite de consulta.

Entendendo o SAP HANA como uma fonte relacional

É útil começar por esclarecer o comportamento de uma fonte relacional, como o SQL Server, quando a consulta definida em Obter Dados ou no Editor do Power Query realiza uma agregação. No exemplo a seguir, uma consulta definida no Power Query Editor retorna o preço médio por ProductID.

Diagrama que mostra uma consulta definida no Power Query Editor que devolve o preço médio por ID de Produto.

Se os dados fossem importados para o Power BI em vez de usar o DirectQuery, a seguinte situação resultaria:

  • Os dados são importados ao nível de agregação definido pela consulta criada no Power Query Editor. Por exemplo, preço médio por produto. Esse fato resulta em uma tabela com as duas colunas ProductID e AveragePrice que podem ser usadas em elementos visuais.
  • Em um visual, qualquer agregação subsequente, como Soma, Média, Min, e outros, é executada sobre os dados importados. Por exemplo, incluir AveragePrice num visual usa a Soma agregada por padrão e retornaria a soma do AveragePrice por cada ProductID, neste exemplo, 13,67. O mesmo se aplica a qualquer função agregada alternativa, como Min ou Average, usada no visual. Por exemplo, a média de de de AveragePrice retorna a média de 6,66, 4 e 3, o que equivale a 4,56, e não a média de Price nos seis registos da tabela subjacente, que é 5,17.

Se o DirectQuery sobre essa mesma fonte relacional estiver sendo usado em vez de Importar, a mesma semântica se aplicará e os resultados serão exatamente os mesmos:

  • Dada a mesma consulta, logicamente exatamente os mesmos dados são apresentados à camada de relatório – mesmo que os dados não sejam realmente importados.

  • Em um visual, qualquer agregação subsequente, como Soma, Média, e Mínimo, é novamente executada sobre essa tabela lógica da consulta. Novamente, um visual contendo a média de do preço médio de retorna os mesmos 4,56.

Considere o SAP HANA quando a conexão for tratada como uma fonte relacional. O Power BI pode trabalhar tanto com Visualizações Analíticas quanto com Visualizações de Cálculo no SAP HANA, ambas podendo conter medidas. No entanto, hoje a abordagem para o SAP HANA segue os mesmos princípios descritos anteriormente nesta seção: a consulta definida em Get Data ou Power Query Editor determina os dados disponíveis e, em seguida, qualquer agregação subsequente em um visual é sobre esses dados, e o mesmo se aplica para Import e DirectQuery. No entanto, dada a natureza do SAP HANA, a consulta definida na caixa de diálogo inicial Obter Dados ou do Power Query Editor é sempre uma consulta agregada e geralmente inclui medidas em que as agregações reais usadas são definidas pela visualização SAP HANA.

O equivalente ao exemplo anterior do SQL Server é que há uma view do SAP HANA contendo ID, ProductID, DepotIDe medidas que incluem Preço Médio, definido na view como Média de Preço.

Se, na experiência Obter Dados, as seleções feitas foram para ProductID e a medida AveragePrice, isso define uma consulta na vista, solicitando esses dados agregados. No exemplo anterior, para simplificar, é usado pseudo-SQL que não corresponde à sintaxe exata do SAP HANA SQL. Em seguida, quaisquer outras agregações definidas em um visual estão agregando ainda mais os resultados de tal consulta. Novamente, conforme descrito anteriormente para o SQL Server, esse resultado se aplica ao caso Import e DirectQuery. No caso do DirectQuery, a consulta do Get Data ou do Power Query Editor é usada em uma subseleção dentro de uma única consulta enviada ao SAP HANA e, portanto, não é realmente o caso de todos os dados serem lidos antes de agregar ainda mais.

Todas essas considerações e comportamentos exigem as seguintes considerações importantes ao usar o DirectQuery sobre SAP HANA como uma fonte relacional:

  • Deve-se prestar atenção a qualquer agregação adicional realizada em visuais, sempre que a medida no SAP HANA não for aditiva, por exemplo, não um simples Sum, Min, ou Max.

  • No Obter Dados ou no Editor do Power Query, apenas as colunas necessárias devem ser incluídas para recuperar os dados essenciais, refletindo o fato de que o resultado é uma consulta que precisa ser razoável o suficiente para ser enviada ao SAP HANA. Por exemplo, se dezenas de colunas foram selecionadas, pensando que poderiam ser necessárias em visuais subsequentes, então, mesmo no caso do DirectQuery, um visual simples implica que a consulta agregada usada na subseleção contém essas dezenas de colunas, que geralmente têm um desempenho ruim e podem encontrar limites de tempo.

No exemplo a seguir, selecionar cinco colunas (CalendarQuarter, Color, LastName, ProductLine, SalesOrderNumber) na caixa de diálogo Get Data, juntamente com a medida OrderQuantity, significa que a criação posterior de um visual simples contendo o Min OrderQuantity resulta na seguinte consulta SQL ao SAP HANA. O sombreado é a subseleção, que contém a consulta do Obter Dados / Power Query Editor. Se essa subseleção fornecer um resultado de cardinalidade alta, é provável que o desempenho resultante do SAP HANA seja fraco ou encontre tempos limites. O impacto no desempenho não se deve ao facto de o Power BI pedir todos os campos da subconsulta; A maioria desses campos, será eliminada pela consulta externa. O impacto deve-se antes a medidas na subseleção que exigem a sua materialização no servidor HANA.

Captura de tela de um exemplo de consulta, mostrando a consulta SQL para SAP HANA.

Devido a esse comportamento, recomendamos que os itens selecionados no Obter Dados ou Power Query Editor sejam limitados aos itens necessários, ao mesmo tempo em que resultam em uma consulta razoável para o SAP HANA. Se possível, considere recriar todas as medidas necessárias no modelo semântico e usar o SAP HANA mais como uma fonte relacional tradicional.

Melhores práticas

Para que ambos os métodos se conectem ao SAP HANA, siga as recomendações gerais para usar o DirectQuery, particularmente as recomendações relacionadas a garantir um bom desempenho da consulta. Para obter mais informações, consulte usando o DirectQuery no Power BI.

Considerações e limitações

A lista a seguir descreve todos os recursos do SAP HANA que não são totalmente suportados ou recursos que se comportam de forma diferente ao usar o Power BI.

  • Hierarquias pai-filho: Hierarquias pai-filho não são visíveis no Power BI. Isso ocorre porque o Power BI acessa o SAP HANA usando a interface SQL e as hierarquias pai filho não podem ser totalmente acessadas usando SQL.
  • Outros metadados de hierarquia: A estrutura básica de hierarquias é exibida no Power BI, no entanto, alguns metadados de hierarquia, como controlar o comportamento de hierarquias irregulares, não têm efeito. Novamente, isso se deve a limitações impostas pela interface SQL.
  • Conexão utilizando SSL: Pode conectar-se utilizando Import e multidimensional com TLS, mas não pode conectar-se a instâncias do SAP HANA configuradas para utilizar TLS para o método de conexão relacional.
  • Suporte para modos de exibição de Atributo: o Power BI pode se conectar aos modos de exibição Analítico e de Cálculo, mas não pode se conectar diretamente aos modos de exibição de Atributo.
  • Suporte para objetos de catálogo: o Power BI não pode se conectar a objetos de catálogo.
  • Alterar para variáveis após a publicação: Não é possível alterar os valores de nenhuma variável do SAP HANA diretamente no serviço do Power BI após a publicação do relatório.

Problemas conhecidos

A lista a seguir descreve todos os problemas conhecidos ao se conectar ao SAP HANA (DirectQuery) usando o Power BI.

  • Problema do SAP HANA ao consultar contadores e outras medidas: Dados incorretos são retornados do SAP HANA quando se conecta a uma visualização analítica e uma medida de contador, juntamente com alguma outra medida de proporção, é incluída no mesmo visual. Esse problema é coberto pelo SAP Note 2128928 (Resultados inesperados ao consultar uma coluna calculada e um contador). A medida do rácio está incorreta neste caso.

  • Várias colunas do Power BI de uma única coluna do SAP HANA: Para algumas exibições de cálculo, em que uma coluna SAP HANA é usada em mais de uma hierarquia, o SAP HANA expõe a coluna como dois atributos separados. Essa abordagem resulta na criação de duas colunas no Power BI. No entanto, essas colunas ficam ocultas por padrão, e todas as consultas que envolvem as hierarquias, ou as colunas diretamente, se comportam corretamente.

Para obter mais informações sobre o DirectQuery, consulte os seguintes recursos: