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. Há duas opções ao se conectar ao SAP HANA:

  • 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 usando essa configuração, 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. À medida que os visuais são criados, os dados agregados são sempre recuperados do SAP HANA. Essa técnica é a abordagem recomendada e é o padrão para novos relatórios DirectQuery no SAP HANA.

  • Trate o SAP HANA como uma fonte relacional: neste caso, o Power BI trata o SAP HANA como uma fonte relacional. Esta abordagem oferece uma maior flexibilidade. Há que ter cuidado com esta abordagem para garantir que as medidas são agregadas conforme esperado e para evitar problemas de desempenho.

A abordagem de conexão é determinada por uma opção de ferramenta global, que é definida selecionando Opções e configurações de arquivo e>, em seguida, Opções>DirectQuery e, em seguida, selecionando a opção Tratar SAP HANA como uma fonte relacional, conforme mostrado na imagem a seguir.

Screenshot of the Options dialog, showing the DirectQuery options.

A opção de tratar o SAP HANA como uma fonte relacional controla a abordagem usada para qualquer novo relatório 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 será feita 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 que foram criados antes de fevereiro de 2018 continuam a tratar o SAP HANA como uma fonte relacional.

As duas abordagens constituem comportamentos diferentes, e não é possível mudar um relatório existente de uma abordagem para a outra.

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. Para tratar uma conexão com o SAP HANA como uma fonte relacional, você deve selecionar Opções de arquivo e opções de>configurações> e, em seguida, marcar a caixa em Direct Query>Treat SAP HANA como uma fonte relacional.

Ao conectar-se ao SAP HANA como uma fonte multidimensional, as seguintes considerações se aplicam:

  • No Get Data Navigator, uma única visualização do SAP HANA pode ser selecionada. 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.

Tratar o SAP HANA como uma fonte multidimensional não oferece a maior flexibilidade proporcionada pela abordagem relacional alternativa, mas é mais simples. A abordagem também garante valores agregados corretos ao lidar com medidas mais complexas do SAP HANA, e geralmente resulta em maior desempenho.

A lista Campo 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, selecionando Exibir oculto no menu de contexto na 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 , , , e assim por diante, poderia usar ProductName, com valores 1Bike, , , e assim por diante, 3GlovesShirt2como seu rótulo. Neste caso, um único campo Produto é mostrado na lista de campos, cujos valores são os rótulos Bike, , , e assim por diante, mas que é classificado por, e com exclusividade determinada por, os valores-chave 1, GlovesShirt2, 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 alterados posteriormente selecionando Transformar dados na faixa de opções 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 muitas 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

As outras principais restrições de modelagem ao se conectar ao SAP HANA usando o DirectQuery (tratar como fonte multidimensional) são as seguintes restrições:

  • Sem suporte para colunas calculadas: A capacidade de criar colunas calculadas está desativada. Esse fato também significa que o Agrupamento e o Clustering, que criam colunas calculadas, não estão disponíveis.
  • 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.
  • Sem suporte para definir relacionamentos: apenas uma única exibição pode ser consultada em um relatório e, como tal, não há suporte para definir relacionamentos.
  • Sem Modo de Exibição de Dados: o Modo de Exibição de Dados normalmente exibe os dados de nível de detalhe nas tabelas. Dada a natureza das fontes OLAP, como o SAP HANA, essa visualização não está disponível no SAP HANA.
  • Os detalhes da coluna e da medida são fixos: a lista de colunas e medidas vistas na lista de campos é corrigida pela fonte subjacente e não pode ser modificada. Por exemplo, não é possível excluir uma coluna, nem alterar seu tipo de dados. Pode, no entanto, ser renomeado.
  • Limitações adicionais no DAX: Existem outras limitações no DAX que podem ser usadas em definições de medida, para refletir limitações na origem. Por exemplo, não é possível usar uma função de agregação sobre uma tabela.

Restrições adicionais de visualização

Há restrições nos elementos visuais ao conectar-se ao SAP HANA usando o DirectQuery (tratar como fonte multidimensional):

  • Sem agregação de colunas: não é possível alterar a agregação de uma coluna em um visual, e é sempre Não resumir.

Trate o SAP HANA como uma fonte relacional

Ao optar por se conectar ao SAP HANA como uma fonte relacional, alguma flexibilidade extra fica 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 tratar o 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, e relacionadas à eficiência das consultas que são executadas no SAP HANA.

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

Diagram showing a query defined in Power Query Editor that returns the average price by Product ID.

Se os dados estiverem sendo importados para o Power BI em vez de usar o DirectQuery, a seguinte situação resultará:

  • 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, Mínimo e outros, é executada sobre os dados importados. Por exemplo, incluir AveragePrice em um visual usa a agregação Soma por padrão e retornaria a soma sobre o AveragePrice para 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, Average of AveragePrice retorna a média de 6,66, 4 e 3, que equivale a 4,56, e não a média de Price nos seis registros 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ín, é novamente executada sobre essa tabela lógica da consulta. E novamente, um visual contendo Média de Preço Médio retorna os mesmos 4,56.

Considere o SAP HANA quando a conexão for tratada como uma fonte relacional. O Power BI pode trabalhar com Visualizações Analíticas e Visualizações de Cálculo no SAP HANA, que podem 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 Obter Dados 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 no Power Query Editor é sempre uma consulta agregada e geralmente inclui medidas em que a agregação real usada é definida pela visualização do SAP HANA.

O equivalente ao exemplo anterior do SQL Server é que há uma exibição do SAP HANA contendo ID, ProductID, DepotID e medidas, incluindo AveragePrice, definido na exibição como Average of Price.

Se na experiência Obter Dados, as seleções feitas foram para ProductID e a medida AveragePrice, isso é definir uma consulta sobre a exibição, solicitando que os 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 de Obter Dados 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 que todos os dados sejam 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:

  • 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 uma simples Soma, Min ou Max.

  • Em Obter Dados ou Power Query Editor, apenas as colunas necessárias devem ser incluídas para recuperar os dados necessários, refletindo o fato de que o resultado é uma consulta que deve ser uma consulta razoável que pode ser enviada ao SAP HANA. Por exemplo, se dezenas de colunas foram selecionadas, com o pensamento de que elas podem ser necessárias em visuais subsequentes, então, mesmo para o DirectQuery, um visual simples significa que a consulta agregada usada na subseleção contém essas dezenas de colunas, que geralmente têm um desempenho ruim.

No exemplo a seguir, selecionar cinco colunas (CalendarQuarter, Color, LastName, ProductLine, SalesOrderNumber) na caixa de diálogo Obter Dados, 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 de Obter Dados / Power Query Editor. Se essa subseleção fornecer um resultado de alta cardinalidade, o desempenho resultante do SAP HANA provavelmente será ruim.

Screenshot of a query example, showing the SQL query to SAP HANA.

Devido a esse comportamento, recomendamos que os itens selecionados em Obter Dados ou no Power Query Editor sejam limitados aos itens necessários, ao mesmo tempo em que resultam em uma consulta razoável para o SAP HANA.

Melhores práticas

Para ambas as abordagens de conexão ao SAP HANA, as recomendações para o uso do DirectQuery também se aplicam ao SAP HANA, particularmente as recomendações relacionadas à garantia de um bom desempenho. 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 de filho pai: as hierarquias filho pai não são visíveis no Power BI. Esse fato 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 o controle do comportamento de hierarquias irregulares, não têm efeito. Mais uma vez, este facto deve-se às limitações impostas pela interface SQL.
  • Conexão usando SSL: Você pode se conectar usando Import e multidimensional com TLS, mas não pode se conectar a instâncias SAP HANA configuradas para usar TLS para o conector 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 se a conexão a uma Visualização Analítica, e uma Medida de Contador e alguma outra medida de proporção são incluídas 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 do 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: