Conectar-se a fontes de dados do SAP HANA usando o DirectQuery no Power BI
Você pode se conectar às 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 funcionalidades diferentes:
Tratar o SAP HANA como uma fonte multidimensional (padrão): Nesse caso, o comportamento é semelhante ao de quando o Power BI se conecta a outras fontes multidimensionais, como SAP Business Warehouse ou Analysis Services. Quando você se conecta ao SAP HANA como uma origem multidimensional, uma única exibiçã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 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 do DirectQuery no 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. Essa abordagem oferece maior flexibilidade. Entre outras coisas, você pode adicionar colunas calculadas e incluir dados de outras fontes, mas é necessário ter cuidado para garantir que as medidas sejam agregadas conforme o esperado. Evite medidas não aditivas. Além disso, use exibições 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 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 selecionando Arquivo>Opções e configurações e, em seguida, Opções>DirectQuery, selecionando a opção Tratar SAP HANA como uma fonte relacional, conforme mostrado na imagem a seguir.
A opção de tratar o SAP HANA como uma fonte relacional controla o método de conexão para todos os novos relatórios usando DirectQuery no SAP HANA. Ele não tem efeito em nenhuma conexão SAP HANA existente no relatório atual, nem nas conexões de quaisquer outros relatórios abertos. Portanto, se a opção estiver desmarcada no momento, ao adicionar uma nova conexão ao SAP HANA usando Obter Dados, essa conexão está tratando o SAP HANA como uma fonte multidimensional. No entanto, se um relatório diferente for aberto que também se conecte ao SAP HANA, esse relatório continuará a se comportar de acordo com a opção que foi definida no momento em que foi criado. Esse fato significa que todos os relatórios que se conectam ao SAP HANA como 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 origem 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 se conectar ao SAP HANA como uma fonte multidimensional, as seguintes considerações se aplicam:
No Navegador de Obter Dados, só uma exibiçã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, 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 SQL do SAP HANA 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 de agregação corretos sempre possam ser obtidos do SAP HANA, determinadas restrições devem ser impostas. Por exemplo, não é possível adicionar colunas calculadas ou combinar dados de várias exibiçõ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 relacional
A lista Field inclui todas as medidas, atributos e hierarquias da visão SAP HANA. Observe os seguintes comportamentos que se aplicam ao usar este método de conexão:
Qualquer atributo incluído em pelo menos uma hierarquia está oculto por padrão. No entanto, é possível exibir os itens se necessário, selecionando Exibir oculto do menu de contexto na lista de campos. No mesmo menu de contexto, eles podem ficar 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
,3
e assim por diante, poderia usar ProductName, com valoresBike
,Shirt
,Gloves
e assim por diante, como seu rótulo. Nesse caso, um único campo product é mostrado na lista de campos, cujos valores são os rótulosBike
,Shirt
,Gloves
e assim por diante, mas que é classificado por, e com exclusividade determinada pelos valores principais1
,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 exibição subjacente do SAP HANA são exibidas no momento da conexão e os valores necessários podem ser inseridos. Esses valores poderão ser alterados posteriormente ao selecionar Transformar dados na faixa de opções e 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, considerando a necessidade de garantir que os dados de agregação corretos sempre possam ser obtidos do SAP HANA. No entanto, ainda é possível fazer algumas adições e alterações, incluindo definir 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 exibição do SAP HANA são aplicadas.
Restrições de modelagem adicionais
Além das limitações mencionadas acima, lembre-se das seguintes restrições de modelagem ao se conectar ao SAP HANA como uma fonte multidimensional:
- Não há suporte para colunas calculadas: A capacidade de criar colunas calculadas está desabilitada. Esse fato também significa que o Agrupamento e o Clustering, que dependem de colunas calculadas, não estão disponíveis.
- Limitações adicionais para medidas: Há 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 em uma tabela.
- Não há suporte para definir relações: Somente uma única exibição pode ser consultada em um relatório e, como tal, não há suporte para definir relações.
- Sem exibição de dados: A exibição de dados normalmente exibe os dados detalhados nas tabelas. Dada a natureza das fontes multidimensionais, essa exibição não está disponível ao usar o SAP HANA como uma fonte multidimensional.
- Detalhes da coluna e da medida foram corrigidos: as colunas e medidas na lista de campos são determinadas pela origem subjacente e não podem ser modificadas. Por exemplo, não é possível excluir uma coluna nem alterar seu tipo de dados. No entanto, ele pode ser renomeado.
Restrições de visualização adicionais
Há restrições nos visuais ao se conectar ao SAP HANA como uma fonte multidimensional:
- Não há agregação de colunas: não é possível alterar a agregação de uma coluna em um visual, ela sempre é Não Resumir.
Tratar o SAP HANA como uma fonte relacional
Para se conectar ao SAP HANA como uma origem relacional, selecione Arquivo>Opções e configurações e, em seguida, Opções>DirectQuerye, em seguida, selecione a opção Tratar o SAP HANA como uma origem relacional.
Ao usar o SAP HANA como fonte relacional, há alguma flexibilidade extra disponível. Por exemplo, você pode criar colunas calculadas, incluir dados de várias exibiçõ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, especialmente quando a Visualização SAP HANA contém medidas não aditivas, por exemplo, contagens distintas ou médias, em vez de somas simples. Medidas não aditivas podem produzir resultados incorretos. As medidas também podem reduzir a eficiência da otimização do plano de consulta no SAP HANA e resultar em baixo desempenho de consulta e tempos limite.
Noções básicas sobre o SAP HANA como uma fonte relacional
É útil começar esclarecendo o comportamento de uma fonte relacional, como o SQL Server, quando a consulta definida em Obter Dados ou o Editor do Power Query realiza uma agregação. No exemplo a seguir, uma consulta definida no Editor do Power Query retorna o preço médio ProductID.
Se os dados foram importados para o Power BI em vez de usar o DirectQuery, a seguinte situação resultaria:
- Os dados são importados no nível de agregação definido pela consulta criada no Editor do Power Query. 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 visuais.
- Em um visual, qualquer agregação subsequente, como Sum, Average, Mine outras, é realizada sobre esses dados importados. Por exemplo, incluir AveragePrice em um visual usará a agregação Sum por padrão e retornará a soma de AveragePrice para cada ProductID. Neste exemplo, 13,67. O mesmo se aplica a qualquer função de agregação alternativa, como Min ou Average, usada no visual. Por exemplo, Average de AveragePrice retorna a média de 6,66, 4 e 3, que é igual a 4,56 e não a média de Price nos seis registros da tabela subjacente, que é de 5,17.
Se o DirectQuery sobre essa mesma fonte relacional estiver sendo usado em vez de Importar, a mesma semântica será aplicada 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 Sum, Averagee Min, é novamente executada sobre essa tabela lógica da consulta. E mais uma vez, um visual contendo Average de AveragePrice retornará o mesmo valor de 4,56.
Considere o SAP HANA quando a conexão for tratada como uma fonte relacional. O Power BI pode trabalhar com Exibições Analíticas e Exibições de Cálculo no SAP HANA, que podem conter medidas. No entanto, hoje a abordagem do SAP HANA segue os mesmos princípios descritos anteriormente nesta seção: a consulta definida em Obter Dados ou o Editor do Power Query determina os dados disponíveis e, em seguida, qualquer agregação subsequente em um visual é feita sobre esses dados e o mesmo se aplica à Importação e ao DirectQuery. No entanto, dada a natureza do SAP HANA, a consulta definida na caixa de diálogo inicial Obter Dados ou Editor do Power Query é sempre uma consulta agregada e geralmente inclui medidas nas quais as agregações reais utilizadas são definidas pela visão SAP HANA.
O equivalente ao exemplo anterior do SQL Server é que há uma visualização SAP HANA contendo ID, ProductID, DepotIDe medidas, incluindo Preço Médio, definidas na visualização como Média de Preços.
Se, na experiência Obter Dados, tiverem sido feitas seleções de ProductID e da medida AveragePrice, isso define uma consulta no modo de exibição, solicitando esses dados agregados. No exemplo anterior, para simplificar pseudo-SQL é usado que não corresponde à sintaxe exata do SQL do SAP HANA. Em seguida, as agregações adicionais definidas em um visual agregam ainda mais os resultados de tal consulta. Novamente, conforme descrito anteriormente para o SQL Server, esse resultado se aplica tanto para o caso de importação quanto para o de DirectQuery. No caso do DirectQuery, a consulta de Obter Dados ou do Editor do Power Query é usada em uma subseleção, dentro de uma consulta enviada ao SAP HANA. Portanto, não se trata de um caso em que todos os dados seriam lidos antes de serem ainda mais agregados.
Todas essas considerações e comportamentos exigem as seguintes considerações importantes ao usar o DirectQuery no SAP HANA como uma fonte relacional:
É necessário prestar atenção a qualquer agregação adicional executada nos visuais, sempre que a medida no SAP HANA for não aditiva, por exemplo, não for um simples Sum, Min ou Max.
Em Obter Dados ou no Editor do Power Query, apenas as colunas obrigatórias devem ser incluídas para recuperar os dados necessários, refletindo que o resultado precisa ser uma consulta razoável que possa ser enviada ao SAP HANA. Por exemplo, se dezenas de colunas tiverem sido selecionadas, com a ideia de que elas poderão ser necessárias em visuais posteriores, então até mesmo para o DirectQuery um visual simples significará que a consulta de agregação usada na subseleção incluirá essas dezenas de colunas, o que geralmente levará a um desempenho ruim e poderá chegar ao tempo limite.
No exemplo a seguir, selecionando cinco colunas (CalendarQuarter, Color, LastName, ProductLine, SalesOrderNumber) na caixa de diálogo Obter Dados, juntamente com a medida OrderQuantity, significa que, posteriormente, a criação de um visual simples que contém o Min OrderQuantity resulta na consulta SQL a seguir para o SAP HANA. O sombreado é a subseleção, contendo a consulta de Obter Dados/Editor do Power Query. Se essa subseleção fornecer um resultado de alta cardinalidade, o desempenho resultante do SAP HANA provavelmente será ruim ou encontrará tempos limite. O impacto no desempenho não se deve ao Power BI solicitar todos os campos na subseleção; a maioria desses campos será ignorada pela consulta externa. Em vez disso, o impacto ocorre porque as medidas na subseleção estão forçando ela a ser materializada no servidor do HANA.
Devido a esse comportamento, recomendamos que os itens selecionados em Obter de Dados ou o Editor do Power Query sejam limitados aos itens necessários, enquanto ainda 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.
Práticas recomendadas
Para que ambos os métodos se conectem ao SAP HANA, siga as recomendações gerais para usar o DirectQuery, especialmente recomendações relacionadas à garantia de um bom desempenho de 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 têm suporte total ou recursos que se comportam de forma diferente ao usar o Power BI.
- Hierarquias Pai/Filho: hierarquias pai/filho não estã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 o 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 esfarrapadas, não têm efeito. Novamente, isso ocorre devido a limitações impostas pela interface SQL.
- Conexão usando SSL: você pode se conectar usando as funções de importação e multidimensional com TLS, mas não pode se conectar a instâncias do SAP HANA configuradas para usar o TLS no 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 de Análise e Cálculo, mas não pode se conectar diretamente aos modos de exibição de atributo.
- Suporte a Objetos de Catálogo: o Power BI não consegue 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 estiver conectando a uma Exibição Analítica e uma medida de Contador e algumas outras medidas de proporção estiverem incluídas no mesmo visual. Esse problema foi abordado pela Nota 2128928 do SAP (resultados inesperados ao consultar uma Coluna Calculada e um Contador). A medida de proporção está incorreta nesse caso.
Várias colunas do Power BI de coluna única 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 em duas colunas sendo criadas no Power BI. Essas colunas estão ocultas por padrão, no entanto, e todas as consultas que envolvem as hierarquias ou as colunas diretamente se comportam corretamente.
Conteúdo relacionado
Para obter mais informações sobre o DirectQuery, confira os seguintes recursos: