Banco de dados SAP HANA
Resumo
Item | Descrição |
---|---|
Estado da liberação | Disponibilidade geral |
Produtos | Power BI (Conjuntos de dados) Power BI (Fluxos de dados) Power Apps (Fluxos de dados) Excel Analysis Services |
Tipos de autenticação compatíveis | Basic Banco de dados Windows |
Documentação de referência da função | SapHana.Database |
Observação
Alguns recursos podem estar presentes em um produto, mas não em outros devido a cronogramas de implantação e funcionalidades específicas do host.
Pré-requisitos
Você precisará de uma conta SAP para entrar no site e baixar os drivers. Se você estiver inseguro, entre em contato com o administrador do SAP em sua organização.
Para usar o SAP HANA no Power BI Desktop ou no Excel, o driver ODBC do SAP HANA deve estar instalado no computador cliente local para que a conexão de dados do SAP HANA funcione corretamente. Você pode baixar as ferramentas de cliente SAP HANA de Ferramentas de Desenvolvimento SAP, que contém o driver ODBC necessário. Outra opção é obtê-lo do Centro de Download de Software SAP. No portal de software, pesquise os computadores com Windows em SAP HANA CLIENT. Como o Centro de Download de Software SAP altera sua estrutura com frequência, não há diretrizes mais específicas disponíveis para navegar nesse site. Para obter instruções sobre como instalar o driver ODBC do SAP HANA, acesse Instalando o Driver ODBC do SAP HANA no Windows 64 Bits.
Para usar o SAP HANA no Excel, você deve ter o driver ODBC do SAP HANA de 32 ou 64 bits (de acordo com a versão do Excel, de 32 bits ou 64 bits, que você estiver usando) instalado no computador cliente local.
Esse recurso só estará disponível no Excel para Windows se você tiver o Office 2019 ou uma assinatura do Microsoft 365. Se você for assinante do Microsoft 365, é necessário ter a versão mais recente do Office.
Há suporte para HANA 1.0 SPS 12rev122.09, 2.0 SPS 3rev30 e BW/4HANA 2.0.
Funcionalidades com suporte
- Importação
- Consulta Direta
- Avançado
- Instrução SQL
Conectar-se a um banco de dados SAP HANA por meio do Power Query Desktop
Para se conectar a um banco de dados SAP HANA usando o Power Query Desktop:
Selecione Obter dados > banco de dados SAP HANA no Power BI Desktop ou Do Banco de Dados > Do Banco de Dados SAP HANA na faixa de opções Dados no Excel.
Insira o nome e a porta do servidor SAP HANA ao qual você deseja se conectar. O exemplo na figura a seguir usa
SAPHANATestServer
na porta30015
.Por padrão, o número da porta é definido para dar suporte a apenas um banco de dados de contêiner. Se o banco de dados SAP HANA puder conter mais de um contêiner de banco de dados multilocatário, selecione Banco de dados de sistema multilocatário (30013). Se você quiser se conectar a um banco de dados de locatário ou a um banco de dados com um número de instância fora do padrão, selecione Personalizado no menu suspenso Porta.
Se você estiver se conectando a um banco de dados SAP HANA por meio do Power BI Desktop, também será dada a opção de selecionar Importação ou DirectQuery. O exemplo neste artigo usa Importação, que é o padrão (e o único modo para o Excel). Para obter mais informações sobre como se conectar ao banco de dados usando o DirectQuery no Power BI Desktop, acesse Conectar-se às fontes de dados do SAP HANA usando o DirectQuery no Power BI.
Você também pode inserir uma instrução SQL ou habilitar a associação de coluna de Opções avançadas. Mais informações, Conectar usando opções avançadas
Depois de inserir todas as opções, selecione OK.
Se você estiver acessando um banco de dados pela primeira vez, será solicitado que você insira suas credenciais para autenticação. Neste exemplo, o servidor SAP HANA requer credenciais de usuário do banco de dados, portanto, selecione Banco de Dados e insira seu nome de usuário e senha. Se necessário, insira as informações do certificado do servidor.
Além disso, talvez seja necessário validar o certificado do servidor. Para obter mais informações sobre como usar a validação de seleções de certificado de servidor, confira Usando a criptografia do SAP HANA. No Power BI Desktop e no Excel, a validação da seleção de certificado do servidor é habilitada por padrão. Se você já tiver configurado essas seleções no Administrador da Fonte de Dados ODBC, desmarque a caixa de seleção Validar certificado do servidor. Para saber mais sobre como usar o Administrador de Fonte de Dados ODBC para configurar essas seleções, acesse Configurar o SSL para acesso do cliente ODBC ao SAP HANA.
Para obter mais informações sobre a autenticação, acesse Autenticação com uma fonte de dados.
Depois de preencher todas as informações necessárias, selecione Conectar.
Na caixa de diálogo Navegador, é possível transformar os dados no Editor do Power Query ao selecionar Transformar Dados, ou carregar os dados ao selecionar Carregar.
Conectar-se a um banco de dados SAP HANA do Power Query Online
Para se conectar aos dados do SAP HANA usando o Power Query Online:
Na página Fontes de dados, selecione Banco de dados SAP HANA.
Insira o nome e a porta do servidor SAP HANA ao qual você deseja se conectar. O exemplo na figura a seguir usa
SAPHANATestServer
na porta30015
.Opcionalmente, insira uma instrução SQL de Opções avançadas. Mais informações, Conectar usando opções avançadas
Selecione o nome do gateway de dados local a ser usado para acessar o banco de dados.
Observação
Você deve usar um gateway de dados local com esse conector, independentemente de seus dados serem locais ou online.
Escolha o tipo de autenticação que você deseja usar para acessar seus dados. Você também precisará inserir um nome de usuário e uma senha.
Observação
Atualmente, o Power Query Online dá suporte apenas à autenticação Básica.
Selecione Usar Conexão Criptografada se você estiver usando qualquer conexão criptografada e escolha o provedor de criptografia SSL. Se você não estiver usando uma conexão criptografada, desmarque Usar Conexão Criptografada. Mais informações: Habilitar a criptografia para SAP HANA
Selecione Avançar para continuar.
Na caixa de diálogo Navegador, é possível transformar os dados no Editor do Power Query ao selecionar Transformar Dados, ou carregar os dados ao selecionar Carregar.
Conectar usando opções avançadas
O Power Query fornece um conjunto de opções avançadas que você pode adicionar à sua consulta, se necessário.
A tabela a seguir descreve todas as opções avançadas que você pode definir no Power Query.
Opção Avançada | Descrição |
---|---|
Instrução SQL | Mais informações: Importar dados de um banco de dados usando a consulta de banco de dados nativo |
Habilitar associação de coluna | Associa variáveis às colunas de um conjunto de resultados do SAP HANA ao buscar dados. Tem o potencial de melhorar o desempenho no caso de uma utilização de memória ligeiramente maior. Esta opção está disponível somente no Power Query Desktop. Mais informações: Habilitar associação de coluna |
ConnectionTimeout | Uma duração que controla quanto tempo aguardar antes de abandonar uma tentativa de fazer uma conexão com o servidor. O valor padrão é 15 segundos. |
CommandTimeOut | Uma duração que controla por quanto tempo a consulta do lado do servidor tem permissão para ser executada antes de ser cancelada. O valor padrão é dez minutos. |
Recursos com suporte para o SAP HANA
A lista a seguir mostra os recursos com suporte no SAP HANA. Nem todos os recursos listados aqui têm suporte em todas as implementações do conector de banco de dados do SAP HANA.
O conector do Power BI Desktop e do Excel para um banco de dados SAP HANA usam o driver ODBC do SAP para fornecer a melhor experiência do usuário.
No Power BI Desktop, o SAP HANA dá suporte às opções DirectQuery e Importação.
O Power BI Desktop é compatível com modelos de informação do HANA, como Exibições de Cálculo e Análise, e tem uma navegação otimizada.
Com o SAP HANA, você também pode usar comandos SQL na instrução SQL de consulta de banco de dados nativo para se conectar às Tabelas de Linhas e Colunas nas tabelas do Catálogo do HANA, que não estão incluídas nas Exibições de Análise/Cálculo fornecidas pela experiência do Navegador. Você também pode usar o conector ODBC para consultar essas tabelas.
O Power BI Desktop inclui Navegação Otimizada para modelos do HANA.
O Power BI Desktop é compatível com parâmetros de Variáveis e Entrada do SAP HANA.
O Power BI Desktop é compatível com Exibições de Cálculo baseadas em contêiner do HDI.
A função SapHana.Database agora dá suporte a tempos limite de conexão e comando. Mais informações: Conectar usando opções avançadas
Para acessar suas Exibições de Cálculo baseadas em contêiner do HDI no Power BI, verifique se os usuários do banco de dados do HANA que você usa com o Power BI têm permissão para acessar o contêiner de runtime do HDI que armazena as exibições que você deseja acessar. Para conceder esse acesso, crie uma função que permita o acesso ao seu contêiner do HDI. Em seguida, atribua a função ao usuário do banco de dados do HANA que você usará com o Power BI. (Esse usuário também precisa ter permissão para ler as tabelas do sistema no esquema _SYS_BI, como de costume.) Leia a documentação oficial do SAP para obter instruções detalhadas de como criar e atribuir funções de banco de dados. Esta postagem no blog do SAP pode ser um bom ponto de partida.
Atualmente há algumas limitações às variáveis do HANA anexadas a Exibições de Cálculo baseadas em HDI. Essas limitações são devido a erros no lado do HANA. Primeiro, não é possível aplicar uma variável do HANA a uma coluna compartilhada de uma Exibição de Cálculo baseada em contêiner do HDI. Para corrigir essa limitação, atualize para o HANA 2 versão 37.02 e posteriores ou para o HANA 2 versão 42 e posteriores. Segundo, valores padrão de várias entradas para variáveis e parâmetros atualmente não aparecem na interface do usuário do Power BI. Um erro no SAP HANA causa essa limitação, mas a SAP ainda não anunciou uma correção.
Habilitar associação de coluna
Os dados obtidos da fonte de dados são retornados ao aplicativo em variáveis que o aplicativo alocou para essa finalidade. Antes que isso possa ser feito, o aplicativo deve associar ou associar essas variáveis às colunas do conjunto de resultados; conceitualmente, esse processo é o mesmo que associar variáveis de aplicativo a parâmetros de instrução. Quando o aplicativo associa uma variável a uma coluna de conjunto de resultados, ele descreve essa variável - endereço, tipo de dados e assim por diante - ao driver. O driver armazena essas informações na estrutura que mantém para essa instrução e usa as informações para retornar o valor da coluna quando a linha é buscada.
Atualmente, ao usar Power Query Desktop para se conectar a um banco de dados SAP HANA, você pode selecionar a opção Habilitar associação de coluna avançada para habilitar a associação de coluna.
Você também pode habilitar a associação de coluna em consultas existentes ou em consultas usadas no Power Query Online adicionando manualmente a opção EnableColumnBinding
à conexão na barra de fórmulas Power Query ou no editor avançado. Por exemplo:
SapHana.Database("myserver:30015", [Implementation = "2.0", EnableColumnBinding = true]),
Há limitações associadas à adição manual da opção EnableColumnBinding
:
- Habilitar a associação de coluna funciona no modo Importar e DirectQuery. No entanto, não é possível readaptação de uma consulta DirectQuery existente para usar essa opção avançada. Em vez disso, uma nova consulta deve ser criada para que esse recurso funcione corretamente.
- No SERVIDOR SAP HANA versão 2.0 ou posterior, a associação de coluna é tudo ou nada. Se algumas colunas não puderem ser associadas, nenhuma será associada e o usuário receberá uma exceção, por exemplo,
DataSource.Error: Column MEASURE_UNIQUE_NAME of type VARCHAR cannot be bound (20002 > 16384)
. - Os servidores sap HANA versão 1.0 nem sempre relatam os comprimentos de coluna corretos. Nesse contexto,
EnableColumnBinding
permite a associação parcial de coluna. Para algumas consultas, isso pode significar que nenhuma coluna está associada. Quando nenhuma coluna está associada, nenhum benefício de desempenho é obtido.
Suporte à consulta nativa no conector de banco de dados do SAP HANA
O conector de banco de dados do SAP HANA Power Query dá suporte a consultas nativas. Para obter informações sobre como usar consultas nativas em Power Query, acesse Importar dados de um banco de dados usando a consulta de banco de dados nativo.
Dobramento de consultas em consultas nativas
O conector de banco de dados do SAP HANA Power Query agora dá suporte à dobragem de consulta em consultas nativas. Mais informações: Dobramento de consulta em consultas nativas
Observação
No Power Query conector de banco de dados do SAP HANA, as consultas nativas não dão suporte a nomes de coluna duplicados quando EnableFolding
é definido como true.
Parâmetros em consultas nativas
O conector de banco de dados do SAP HANA Power Query agora dá suporte a parâmetros em consultas nativas. Você pode especificar parâmetros em consultas nativas usando a sintaxe Value.NativeQuery .
Ao contrário de outros conectores, o conector de banco de dados sap HANA dá suporte EnableFolding = True
e especifica parâmetros ao mesmo tempo.
Para usar parâmetros em uma consulta, você coloca pontos de interrogação (?) em seu código como espaços reservados. Para especificar o parâmetro, use o valor de SqlType
texto e um valor para isso SqlType
em Value
. Value
pode ser qualquer valor M, mas deve ser atribuído ao valor do especificado SqlType
.
Há várias maneiras de especificar parâmetros:
Fornecendo apenas os valores como uma lista:
{ “Seattle”, 1, #datetime(2022, 5, 27, 17, 43, 7) }
Fornecendo os valores e o tipo como uma lista:
{ [ SqlType = "CHAR", Value = "M" ], [ SqlType = "BINARY", Value = Binary.FromText("AKvN", BinaryEncoding.Base64) ], [ SqlType = "DATE", Value = #date(2022, 5, 27) ] }
Misture e corresponda aos dois:
{ “Seattle”, 1, [ SqlType = "SECONDDATE", Value = #datetime(2022, 5, 27, 17, 43, 7) ] }
SqlType
segue os nomes de tipo padrão definidos pelo SAP HANA. Por exemplo, a lista a seguir contém os tipos mais comuns usados:
- bigint
- BINARY
- BOOLEAN
- CHAR
- DATE
- DECIMAL
- DOUBLE
- INTEGER
- NVARCHAR
- SECONDDATE
- SHORTTEXT
- SMALLDECIMAL
- SMALLINT
- TIME
- timestamp
- VARBINARY
- VARCHAR
O exemplo a seguir demonstra como fornecer uma lista de valores de parâmetro.
let
Source = Value.NativeQuery(
SapHana.Database(
"myhanaserver:30015",
[Implementation = "2.0"]
),
"select ""VARCHAR_VAL"" as ""VARCHAR_VAL""
from ""_SYS_BIC"".""DEMO/CV_ALL_TYPES""
where ""VARCHAR_VAL"" = ? and ""DATE_VAL"" = ?
group by ""VARCHAR_VAL""
",
{"Seattle", #date(1957, 6, 13)},
[EnableFolding = true]
)
in
Source
O exemplo a seguir demonstra como fornecer uma lista de registros (ou misturar valores e registros):
let
Source = Value.NativeQuery(
SapHana.Database(Server, [Implementation="2.0"]),
"select
""COL_VARCHAR"" as ""COL_VARCHAR"",
""ID"" as ""ID"",
sum(""DECIMAL_MEASURE"") as ""DECIMAL_MEASURE""
from ""_SYS_BIC"".""DEMO/CV_ALLTYPES""
where
""COL_ALPHANUM"" = ? or
""COL_BIGINT"" = ? or
""COL_BINARY"" = ? or
""COL_BOOLEAN"" = ? or
""COL_DATE"" = ?
group by
""COL_ALPHANUM"",
""COL_BIGINT"",
""COL_BINARY"",
""COL_BOOLEAN"",
""COL_DATE"",
{
[ SqlType = "CHAR", Value = "M" ], // COL_ALPHANUM - CHAR
[ SqlType = "BIGINT", Value = 4 ], // COL_BIGINT - BIGINT
[ SqlType = "BINARY", Value = Binary.FromText("AKvN", BinaryEncoding.Base64) ], // COL_BINARY - BINARY
[ SqlType = "BOOLEAN", Value = true ], // COL_BOOLEAN - BOOLEAN
[ SqlType = "DATE", Value = #date(2022, 5, 27) ], // COL_DATE - TYPE_DATE
} ,
[EnableFolding=false]
)
in
Source
Suporte para atributos dinâmicos
A maneira como o conector de banco de dados sap HANA trata colunas calculadas foi aprimorada. O conector de banco de dados do SAP HANA é um conector de "cubo" e há alguns conjuntos de operações (adicionar itens, recolher colunas e assim por diante) que ocorrem no espaço "cubo". Esse espaço de cubo é exibido na Power Query Desktop e na interface do usuário do Power Query Online pelo ícone "cubo" que substitui o ícone de "tabela" mais comum.
Antes, quando você adicionava uma coluna de tabela (ou outra transformação que adiciona internamente uma coluna), a consulta "sairia do espaço do cubo" e todas as operações seriam feitas em um nível de tabela. Em algum momento, essa desação pode fazer com que a consulta pare de dobrar. A execução de operações de cubo após a adição de uma coluna não era mais possível.
Com essa alteração, as colunas adicionadas são tratadas como atributos dinâmicos dentro do cubo. Fazer com que a consulta permaneça no espaço de cubo para essa operação tem a vantagem de permitir que você continue usando operações de cubo mesmo depois de adicionar colunas.
Observação
Essa nova funcionalidade só estará disponível quando você se conectar às Exibições de Cálculo no SERVIDOR SAP HANA versão 2.0 ou superior.
A consulta de exemplo a seguir aproveita essa nova funcionalidade. No passado, você obteria uma exceção "o valor não é um cubo" ao aplicar Cube.CollapseAndRemoveColumns.
let
Source = SapHana.Database(“someserver:someport”, [Implementation="2.0"]),
Contents = Source{[Name="Contents"]}[Data],
SHINE_CORE_SCHEMA.sap.hana.democontent.epm.models = Contents{[Name="SHINE_CORE_SCHEMA.sap.hana.democontent.epm.models"]}[Data],
PURCHASE_ORDERS1 = SHINE_CORE_SCHEMA.sap.hana.democontent.epm.models{[Name="PURCHASE_ORDERS"]}[Data],
#"Added Items" = Cube.Transform(PURCHASE_ORDERS1,
{
{Cube.AddAndExpandDimensionColumn, "[PURCHASE_ORDERS]", {"[HISTORY_CREATEDAT].[HISTORY_CREATEDAT].Attribute", "[Product_TypeCode].[Product_TypeCode].Attribute", "[Supplier_Country].[Supplier_Country].Attribute"}, {"HISTORY_CREATEDAT", "Product_TypeCode", "Supplier_Country"}},
{Cube.AddMeasureColumn, "Product_Price", "[Measures].[Product_Price]"}
}),
#"Inserted Year" = Table.AddColumn(#"Added Items", "Year", each Date.Year([HISTORY_CREATEDAT]), Int64.Type),
#"Filtered Rows" = Table.SelectRows(#"Inserted Year", each ([Product_TypeCode] = "PR")),
#"Added Conditional Column" = Table.AddColumn(#"Filtered Rows", "Region", each if [Supplier_Country] = "US" then "North America" else if [Supplier_Country] = "CA" then "North America" else if [Supplier_Country] = "MX" then "North America" else "Rest of world"),
#"Filtered Rows1" = Table.SelectRows(#"Added Conditional Column", each ([Region] = "North America")),
#"Collapsed and Removed Columns" = Cube.CollapseAndRemoveColumns(#"Filtered Rows1", {"HISTORY_CREATEDAT", "Product_TypeCode"})
in
#"Collapsed and Removed Columns"
Próximas etapas
Os artigos a seguir contêm mais informações que lhe podem ser úteis ao se conectar a um banco de dados SAP HANA.