Banco de dados do SAP HANA

Resumo

Item Descrição
Estado da liberação Disponibilidade geral
Produtos Excel
Power BI (Modelos semânticos)
Power BI (Fluxos de dados)
Malha (fluxo de dados Gen2)
Power Apps (Fluxos de dados)
Analysis Services
Tipos de autenticação compatíveis Basic
Backup de 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 SAP HANA ODBC, acesse Instalando o driver SAP HANA ODBC 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
  • Direct Query (modelos semânticos do Power BI)
  • 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:

  1. 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.

  2. 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 porta 30015.

    Inserir informações do servidor SAP HANA.

    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 a fontes de dados do SAP HANA usando o DirectQuery no Power BI.

    Você também pode inserir uma instrução SQL ou ativar a vinculação de coluna nas Opções avançadas. Mais informações, Conectar usando opções avançadas

    Depois de inserir todas as opções, selecione OK.

  3. Se você estiver acessando um banco de dados pela primeira vez, 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.

    Insira as credenciais 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 SSL para acesso de 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.

  4. 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 a partir do Power Query Online

Para se conectar aos dados do SAP HANA usando o Power Query Online:

  1. Na página Fontes de dados, selecione Banco de dados SAP HANA.

  2. 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 porta 30015.

  3. Se desejar, insira uma instrução SQL em Opções avançadas. Mais informações, Conectar usando opções avançadas

  4. 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.

  5. 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.

  6. Selecione Usar Conexão Criptografada se estiver usando qualquer conexão criptografada e escolha o provedor de criptografia SSL. Se não estiver usando uma conexão criptografada, desmarque Usar Conexão Criptografada. Para obter mais informações: Ativar criptografia para SAP HANA

    Conexão online com o Banco de dados SAP HANA.

  7. Selecione Avançar para continuar.

  8. 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 tem 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
Ativar vinculação de colunas 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. Para obter mais informações: Ativar vinculação de colunas
ConnectionTimeout Uma duração que controla por quanto tempo é necessário esperar antes de abandonar a tentativa de obter uma conexão com o servidor. O valor padrão é 15 segundos.
CommandTimeOut Uma duração que controla por quanto tempo a consulta do servidor tem permissão para ser executada antes do cancelamento. 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 a tabelas de linhas e colunas em tabelas do Catálogo do HANA, que não estão incluídas nas exibições analíticas/de cálculo fornecidas pela experiência do Navigator. 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 oferece 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 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.

Ativar vinculação de colunas

Os dados obtidos de uma fonte de dados retornam ao aplicativo em variáveis que o aplicativo alocou para essa finalidade. Antes que isso possa ser feito, o aplicativo deve associar, ou vincular, essas variáveis às colunas do conjunto de resultados. Conceitualmente, esse processo é o mesmo que vincular variáveis de aplicativo a parâmetros de instrução. Quando o aplicativo vincula uma variável a uma coluna de conjunto de resultados, ele descreve essa variável (endereço, tipo de dados e assim em diante) ao driver. O driver armazena essas informações na estrutura que ele mantém para essa instrução e usa as informações para retornar o valor da coluna quando a linha é buscada.

Atualmente, ao usar o Power Query Desktop para se conectar a um banco de dados SAP HANA, você pode selecionar a opção avançada Ativar vinculação de colunas para ativar a vinculação de colunas.

Você também pode ativar a vinculação de colunas em consultas existentes ou em consultas usadas no Power Query Online adicionando manualmente a opção EnableColumnBinding à conexão na barra de fórmulas do 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:

  • A ativação da a vinculação de colunas funciona no modo Importar e DirectQuery. No entanto, não é possível ajustar 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 SAP HANA Server versão 2.0 ou posterior, a vinculação de colunas é tudo ou nada. Se algumas colunas não puderem ser vinculadas, nenhuma será vinculada 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 comprimentos de coluna corretos. Nesse contexto, EnableColumnBinding permite a vinculação parcial de colunas. Para algumas consultas, isso pode significar que nenhuma coluna está vinculada. Quando nenhuma coluna está vinculada, nenhum benefício de desempenho é obtido.

Suporte a consultas nativas no conector de banco de dados SAP HANA

O conector de banco de dados SAP HANA do Power Query oferece suporte a consultas nativas. Para obter informações sobre como usar consultas nativas no Power Query, acesse Importar dados de um banco de dados usando consulta nativa de banco de dados.

Dobragem de consultas em consultas nativas

O conector de banco de dados SAP HANA do Power Query agora oferece suporte à dobragem de consultas nativas. Mais informações: Dobramento de consultas em consultas nativas

Observação

No conector de banco de dados SAP HANA do Power Query, as consultas nativas não oferecem suporte a nomes de coluna duplicados quando EnableFolding está definido como true.

Parâmetros em consultas nativas

O conector de banco de dados SAP HANA do Power Query agora oferece 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 suporta EnableFolding = True e especifica parâmetros ao mesmo tempo.

Para usar parâmetros em uma consulta, coloque pontos de interrogação (?) em seu código como placeholders. Para especificar o parâmetro, use o valor de texto SqlType e um valor para isso SqlType em Value. Value pode ser qualquer valor M, mas deve ser atribuído ao valor do SqlType especificado.

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 combine os 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 a atributos dinâmicos

A maneira como o conector de banco de dados SAP HANA trata as colunas calculadas foi aprimorada. O conector de banco de dados SAP HANA é um conector de "cubo", e há alguns conjuntos de operações (adicionar itens, recolher colunas e assim por diante) que acontecem no espaço de "cubo". Esse espaço de cubo é exibido na interface do usuário do Power Query Desktop e do Power Query Online pelo ícone de "cubo" que substitui o ícone de "tabela" mais comum.

Captura de tela do lado esquerdo da vista atual no Power Query, enfatizando o ícone de cubo na parte superior da coluna de número de linha.

Antes, quando você adicionava uma coluna de tabela (ou outra transformação que adiciona internamente uma coluna), a consulta "descartava o espaço do cubo" e todas as operações eram feitas no nível da tabela. Em algum momento, essa desistência pode fazer com que a consulta pare de dobrar. Não era mais possível executar operações de cubo depois de adicionar uma coluna.

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 do 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ó está disponível quando você se conecta às Exibições de Cálculo no SAP HANA Server versão 2.0 ou superior.

A consulta de exemplo a seguir aproveita esse novo recurso. 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 podem ser úteis para você ao se conectar a um banco de dados SAP HANA.