Base de dados do SAP HANA

Resumo

Item Description
Estado de Lançamento Disponibilidade Geral
Produtos Excel
Power BI (modelos semânticos)
Power BI (Fluxos de Dados)
Malha (Dataflow Gen2)
Power Apps (Fluxos de Dados)
Analysis Services
Tipos de autenticação suportados Básica
Base de Dados
Windows
Documentação de referência da função SapHana.Base de dados

Nota

Alguns recursos podem estar presentes em um produto, mas não em outros devido a agendas de implantação e recursos específicos do host.

Pré-requisitos

Você precisará de uma conta SAP para entrar no site e fazer o download dos drivers. Se não tiver certeza, entre em contato com o administrador do SAP em sua organização.

Para usar o SAP HANA no Power BI Desktop ou no Excel, você deve ter o driver SAP HANA ODBC instalado no computador cliente local para que a conexão de dados do SAP HANA funcione corretamente. Você pode fazer download das ferramentas do SAP HANA Client nas Ferramentas de Desenvolvimento SAP, que contém o driver ODBC necessário. Ou você pode obtê-lo no Centro de Download de Software SAP. No Portal de Software, procure o SAP HANA CLIENT para computadores Windows. Como o SAP Software Download Center muda sua estrutura com frequência, orientações mais específicas para navegar nesse site não estão disponíveis. Para obter instruções sobre como instalar o driver SAP HANA ODBC, vá para Instalando o driver SAP HANA ODBC no Windows 64 Bits.

Para usar o SAP HANA no Excel, você deve ter o driver SAP HANA ODBC de 32 bits ou 64 bits (dependendo se você estiver usando a versão de 32 bits ou 64 bits do Excel) instalado no computador cliente local.

Esta funcionalidade só está disponível no Excel para Windows se tiver o Office 2019 ou uma subscrição do Microsoft 365. Se for subscritor do Microsoft 365, certifique-se de que tem a versão mais recente do Office.

HANA 1.0 SPS 12rev122.09, 2.0 SPS 3rev30 e BW/4HANA 2.0 são suportados.

Capacidades suportadas

  • Importar
  • Consulta direta (modelos semânticos do Power BI)
  • Avançado
    • Instrução SQL

Ligar a uma base de dados SAP HANA a partir do Power Query Desktop

Para ligar a uma base de dados SAP HANA a partir do Power Query Desktop:

  1. Selecione Obter dados > do 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. Digite 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.

    Insira as informações do servidor SAP HANA.

    Por padrão, o número da porta é definido para dar suporte a um único 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 do sistema de vários contêineres (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 não padrão, selecione Personalizar no menu suspenso Porta.

    Se você estiver se conectando a um banco de dados SAP HANA a partir do Power BI Desktop, também terá a opção de selecionar Importar ou DirectQuery. O exemplo neste artigo usa Importar, que é o modo padrão (e o único para o Excel). Para obter mais informações sobre como se conectar ao banco de dados usando o DirectQuery no Power BI Desktop, vá para Conectar a fontes de dados do SAP HANA usando o DirectQuery no Power BI.

    Você também pode inserir uma instrução SQL ou habilitar a vinculação de colunas nas opções Avançadas. Para obter mais informações, Conectar usando opções avançadas

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

  3. Se estiver a aceder a uma base de dados pela primeira vez, ser-lhe-á pedido que introduza as suas credenciais para autenticação. Neste exemplo, o servidor SAP HANA requer credenciais de usuário de 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 seleções de certificado de servidor de validação, consulte Usando criptografia SAP HANA. No Power BI Desktop e no Excel, a seleção de certificado do servidor de validação é habilitada por padrão. Se você já configurou essas seleções no Administrador de Fonte de Dados ODBC, desmarque a caixa de seleção Validar certificado do servidor. Para saber mais sobre como usar o ODBC Data Source Administrator para configurar essas seleções, vá para Configurar SSL para acesso de cliente ODBC ao SAP HANA.

    Para obter mais informações sobre autenticação, vá para 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, pode transformar os dados no editor do Power Query selecionando Transformar Dados ou carregar os dados selecionando Carregar.

Ligar a uma base de dados SAP HANA a partir do Power Query Online

Para ligar aos dados do SAP HANA a partir do Power Query Online:

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

  2. Digite 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. Opcionalmente, insira uma instrução SQL das opções Avançadas. Para obter 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.

    Nota

    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 deseja usar para acessar seus dados. Também terá de introduzir um nome de utilizador e uma palavra-passe.

    Nota

    Atualmente, o Power Query Online suporta apenas a autenticação Básica.

  6. Selecione Usar conexão criptografada se estiver usando qualquer conexão criptografada e, em seguida, escolha o provedor de criptografia SSL. Se não estiver a utilizar uma ligação encriptada, desmarque Utilizar Ligação Encriptada. Para obter mais informações: Habilitar criptografia para SAP HANA

    Login on-line no banco de dados SAP HANA.

  7. Selecione Seguinte para continuar.

  8. Na caixa de diálogo Navegador, pode transformar os dados no editor do Power Query selecionando Transformar Dados ou carregar os dados selecionando Carregar.

Conecte-se usando opções avançadas

O Power Query fornece um conjunto de opções avançadas que pode adicionar à sua consulta, se necessário.

A tabela seguinte descreve todas as opções avançadas que pode definir no Power Query.

Opção avançada Description
Instrução SQL Para obter mais informações, Importar dados de um banco de dados usando consulta de banco de dados nativa
Ativar vinculação de coluna Vincula variáveis às colunas de um conjunto de resultados do SAP HANA ao buscar dados. Pode potencialmente melhorar o desempenho ao custo de uma utilização de memória ligeiramente superior. Esta opção só está disponível no Power Query Desktop. Para obter mais informações: Habilitar vinculação de coluna
ConnectionTimeout Uma duração que controla quanto tempo esperar 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 pode ser executada antes de ser cancelada. O valor padrão é dez minutos.

Recursos suportados para SAP HANA

A lista a seguir mostra os recursos suportados pelo SAP HANA. Nem todos os recursos listados aqui são suportados em todas as implementações do conector de banco de dados SAP HANA.

  • Tanto o Power BI Desktop quanto o conector do Excel para um banco de dados SAP HANA usam o driver ODBC do SAP para fornecer a melhor experiência ao usuário.

  • No Power BI Desktop, o SAP HANA oferece suporte às opções DirectQuery e Import.

  • O Power BI Desktop suporta modelos de informação HANA, tais como Vistas Analíticas e de Cálculo, e otimizou a navegação.

  • Com o SAP HANA, você também pode usar comandos SQL na instrução SQL de consulta de banco de dados nativa para se conectar a tabelas de linha e coluna em tabelas do catálogo HANA, que não estão incluídas nas visualizaçõ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 HANA.

  • O Power BI Desktop suporta variáveis e parâmetros de entrada do SAP HANA.

  • O Power BI Desktop suporta Vistas de Cálculo baseadas em contentores HDI.

  • A função SapHana.Database agora suporta tempos limite de conexão e comando. Para obter mais informações: Conectar-se usando opções avançadas

    • Para acessar suas Exibições de Cálculo baseadas em contêiner HDI no Power BI, verifique se os usuários do banco de dados HANA que você usa com o Power BI têm permissão para acessar o contêiner de tempo de execução da HDI que armazena as exibições que você deseja acessar. Para conceder esse acesso, crie uma Função que permita o acesso ao contêiner 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 deve ter permissão para ler as tabelas do sistema no esquema _SYS_BI, como de costume.) Consulte a documentação oficial do SAP para obter instruções detalhadas sobre como criar e atribuir funções de banco de dados. Esta postagem no blog da SAP pode ser um bom lugar para começar.

    • Atualmente, existem algumas limitações para variáveis HANA anexadas às Visualizações de Cálculo baseadas em IDH. Estas limitações devem-se a erros do lado do HANA. Primeiro, não é possível aplicar uma variável HANA a uma coluna compartilhada de uma Exibição de Cálculo baseada em contêiner 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. Em segundo lugar, os 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 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 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 por diante - para o 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, quando utiliza o Power Query Desktop para ligar a uma base de dados SAP HANA, pode selecionar a opção Ativar ligação de coluna avançada para ativar a ligação de colunas.

Também pode ativar a ligação de colunas em consultas existentes ou em consultas utilizadas no Power Query Online adicionando manualmente a EnableColumnBinding opção à ligaçã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 EnableColumnBinding opção:

  • Habilitar trabalhos de vinculação de coluna no modo Importar e DirectQuery. No entanto, não é possível adaptar 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 coluna é 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 os comprimentos de coluna corretos. Neste contexto, EnableColumnBinding permite a vinculação parcial de colunas. Para algumas consultas, isso pode significar que nenhuma coluna está vinculada. Quando nenhuma coluna é vinculada, nenhum benefício de desempenho é obtido.

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

O conector de banco de dados SAP HANA do Power Query suporta consultas nativas. Para obter informações sobre como utilizar consultas nativas no Power Query, aceda a Importar dados de uma base de dados utilizando consulta de base de dados nativa.

Dobragem de consultas em consultas nativas

O conector de banco de dados SAP HANA do Power Query agora oferece suporte à dobragem de consultas em consultas nativas. Para obter mais informações: Dobragem de consulta em consultas nativas

Nota

No conector de banco de dados SAP HANA do Power Query, as consultas nativas não suportam nomes de colunas duplicados quando EnableFolding definidas como true.

Parâmetros em consultas nativas

O conector de banco de dados SAP HANA do Power Query agora suporta 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 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 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
  • BINÁRIO
  • BOOLEANO
  • CHAR
  • DATE
  • DECIMAL
  • DUPLO
  • INTEIRO
  • NVARCHAR
  • SEGUNDA DATA
  • TEXTO CURTO
  • PEQUENODECIMAL
  • SMALLINT
  • TIME
  • CARIMBO DE DATA/HORA
  • 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 do banco de dados SAP HANA trata as colunas calculadas foi melhorada. O conector do banco de dados SAP HANA é um conector "cubo", e há alguns conjuntos de operações (adicionar itens, recolher colunas e assim por diante) que acontecem no espaço "cubo". Este espaço de cubo é apresentado no Ambiente de Trabalho do Power Query e na interface de utilizador do Power Query Online pelo ícone "cubo" que substitui o ícone "tabela" mais comum.

Captura de ecrã 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 "saía do espaço do cubo" e todas as operações eram feitas em um nível de tabela. Em algum momento, esse abandono pode fazer com que a consulta pare de dobrar. Executar operações de cubo depois de adicionar 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 do cubo para esta operação tem a vantagem de permitir que você continue usando operações de cubo mesmo depois de adicionar colunas.

Nota

Essa nova funcionalidade só está disponível quando você se conecta às visualizaçõ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óximos passos

Os artigos a seguir contêm mais informações que você pode achar úteis ao se conectar a um debase do SAP HANA.