SAP HANA-databas

Sammanfattning

Objekt beskrivning
Versionstillstånd Allmän tillgänglighet
Produkter Excel
Power BI (semantiska modeller)
Power BI (dataflöden)
Infrastrukturresurser (Dataflöde Gen2)
Power Apps (dataflöden)
Analysis Services
Autentiseringstyper som stöds Grundläggande
Databas
Windows
Dokumentation om funktionsreferens SapHana.Database

Kommentar

Vissa funktioner kan finnas i en produkt, men inte andra på grund av distributionsscheman och värdspecifika funktioner.

Förutsättningar

Du behöver ett SAP-konto för att logga in på webbplatsen och ladda ned drivrutinerna. Om du är osäker kontaktar du SAP-administratören i din organisation.

Om du vill använda SAP HANA i Power BI Desktop eller Excel måste du ha SAP HANA ODBC-drivrutinen installerad på den lokala klientdatorn för att SAP HANA-dataanslutningen ska fungera korrekt. Du kan ladda ned SAP HANA-klientverktygen från SAP Development Tools, som innehåller nödvändig ODBC-drivrutin. Eller så kan du hämta den från SAP Software Download Center. I programvaruportalen söker du efter SAP HANA-KLIENTEN efter Windows-datorer. Eftersom SAP Software Download Center ändrar sin struktur ofta är mer specifik vägledning för att navigera på webbplatsen inte tillgänglig. Anvisningar om hur du installerar SAP HANA ODBC-drivrutinen finns i Installera SAP HANA ODBC-drivrutin på Windows 64-bitar.

Om du vill använda SAP HANA i Excel måste du ha antingen 32- eller 64-bitars SAP HANA ODBC-drivrutinen (beroende på om du använder 32- eller 64-bitarsversionen av Excel) installerad på den lokala klientdatorn.

Den här funktionen är endast tillgänglig i Excel för Windows om du har Office 2019 eller en Microsoft 365-prenumeration. Om du är Microsoft 365-prenumerant kontrollerar du att du har den senaste versionen av Office.

HANA 1.0 SPS 12rev122.09, 2.0 SPS 3rev30 och BW/4HANA 2.0 stöds.

Funktioner som stöds

  • Importera
  • Direct Query (Power BI-semantiska modeller)
  • Avancerade
    • SQL-instruktion

Anslut till en SAP HANA-databas från Power Query Desktop

Så här ansluter du till en SAP HANA-databas från Power Query Desktop:

  1. Välj Hämta DATA > SAP HANA-databas i Power BI Desktop eller Från databas > från SAP HANA Database i menyfliksområdet Data i Excel.

  2. Ange namnet och porten för den SAP HANA-server som du vill ansluta till. Exemplet i följande bild använder SAPHANATestServer på port 30015.

    Ange SAP HANA-serverinformationen.

    Som standard är portnumret inställt på att stödja en enda containerdatabas. Om SAP HANA-databasen kan innehålla mer än en databascontainer med flera klientorganisationer väljer du Systemdatabas för flera containrar (30013). Om du vill ansluta till en klientdatabas eller en databas med ett instansnummer som inte är standard väljer du Anpassad i listrutan Port .

    Om du ansluter till en SAP HANA-databas från Power BI Desktop får du också möjlighet att välja antingen Import eller DirectQuery. Exemplet i den här artikeln använder Import, som är standard (och det enda läget för Excel). Mer information om hur du ansluter till databasen med DirectQuery i Power BI Desktop finns i Anslut till SAP HANA-datakällor med DirectQuery i Power BI.

    Du kan också ange en SQL-instruktion eller aktivera kolumnbindning från Avancerade alternativ. Mer information Anslut med avancerade alternativ

    När du har angett alla alternativ väljer du OK.

  3. Om du använder en databas för första gången uppmanas du att ange dina autentiseringsuppgifter för autentisering. I det här exemplet kräver SAP HANA-servern autentiseringsuppgifter för databasanvändare, så välj Databas och ange ditt användarnamn och lösenord. Ange information om servercertifikatet om det behövs.

    Ange autentiseringsuppgifterna för servern.

    Du kan också behöva verifiera servercertifikatet. Mer information om hur du använder verifiering av val av servercertifikat finns i Använda SAP HANA-kryptering. I Power BI Desktop och Excel är valet av verifierat servercertifikat aktiverat som standard. Om du redan har konfigurerat de här valen i ODBC Data Source Administrator avmarkerar du kryssrutan Verifiera servercertifikat . Mer information om hur du använder ODBC-datakällsadministratör för att konfigurera dessa val finns i Konfigurera SSL för ODBC-klientåtkomst till SAP HANA.

    Mer information om autentisering finns i Autentisering med en datakälla.

    När du har fyllt i all nödvändig information väljer du Anslut.

  4. I dialogrutan Navigatör kan du antingen transformera data i Power Query-redigeraren genom att välja Transformera data eller läsa in data genom att välja Läs in.

Anslut till en SAP HANA-databas från Power Query Online

Så här ansluter du till SAP HANA-data från Power Query Online:

  1. På sidan Datakällor väljer du SAP HANA-databas.

  2. Ange namnet och porten för den SAP HANA-server som du vill ansluta till. Exemplet i följande bild använder SAPHANATestServer på port 30015.

  3. Du kan också ange en SQL-instruktion från Avancerade alternativ. Mer information Anslut med avancerade alternativ

  4. Välj namnet på den lokala datagateway som ska användas för att komma åt databasen.

    Kommentar

    Du måste använda en lokal datagateway med den här anslutningsappen, oavsett om dina data är lokala eller online.

  5. Välj den autentiseringstyp som du vill använda för att komma åt dina data. Du måste också ange ett användarnamn och lösenord.

    Kommentar

    För närvarande stöder Power Query Online endast grundläggande autentisering.

  6. Välj Använd krypterad Anslut ion om du använder en krypterad anslutning och välj sedan SSL-kryptoprovidern. Om du inte använder en krypterad anslutning avmarkerar du Använd krypterad Anslut ion. Mer information: Aktivera kryptering för SAP HANA

    Inloggning med SAP HANA-databas online.

  7. Klicka på Nästa när du vill fortsätta.

  8. I dialogrutan Navigatör kan du antingen transformera data i Power Query-redigeraren genom att välja Transformera data eller läsa in data genom att välja Läs in.

Anslut med hjälp av avancerade alternativ

Power Query innehåller en uppsättning avancerade alternativ som du kan lägga till i din fråga om det behövs.

I följande tabell beskrivs alla avancerade alternativ som du kan ange i Power Query.

Avancerat alternativ beskrivning
SQL-instruktion Mer information: Importera data från en databas med hjälp av intern databasfråga
Aktivera kolumnbindning Binder variabler till kolumnerna i en SAP HANA-resultatuppsättning när data hämtas. Kan potentiellt förbättra prestanda på bekostnad av något högre minnesanvändning. Det här alternativet är bara tillgängligt i Power Query Desktop. Mer information: Aktivera kolumnbindning
Anslut ionTimeout En varaktighet som styr hur länge du ska vänta innan du överger ett försök att upprätta en anslutning till servern. Standardvärdet är 15 sekunder.
CommandTimeout En varaktighet som styr hur länge frågan på serversidan tillåts köras innan den avbryts. Standardvärdet är tio minuter.

Funktioner som stöds för SAP HANA

I följande lista visas de funktioner som stöds för SAP HANA. Alla funktioner som anges här stöds inte i alla implementeringar av SAP HANA-databasanslutningen.

  • Både Power BI Desktop- och Excel-anslutningsappen för en SAP HANA-databas använder SAP ODBC-drivrutinen för att ge bästa möjliga användarupplevelse.

  • I Power BI Desktop stöder SAP HANA både DirectQuery- och Import-alternativ.

  • Power BI Desktop stöder HANA-informationsmodeller, till exempel analys- och beräkningsvyer, och har optimerad navigering.

  • Med SAP HANA kan du också använda SQL-kommandon i sql-instruktionen för intern databasfråga för att ansluta till rad- och kolumntabeller i HANA-katalogtabeller, som inte ingår i analys-/beräkningsvyerna som tillhandahålls av navigatörsupplevelsen. Du kan också använda ODBC-anslutningsappen för att köra frågor mot dessa tabeller.

  • Power BI Desktop innehåller optimerad navigering för HANA-modeller.

  • Power BI Desktop stöder SAP HANA-variabler och indataparametrar.

  • Power BI Desktop stöder HDI-containerbaserade beräkningsvyer.

  • Funktionen SapHana.Database stöder nu tidsgränser för anslutningar och kommandon. Mer information: Anslut med hjälp av avancerade alternativ

    • Om du vill komma åt dina HDI-containerbaserade beräkningsvyer i Power BI kontrollerar du att de HANA-databasanvändare som du använder med Power BI har behörighet att komma åt HDI-körningscontainern som lagrar de vyer som du vill komma åt. Om du vill bevilja den här åtkomsten skapar du en roll som ger åtkomst till din HDI-container. Tilldela sedan rollen till den HANA-databasanvändare som du ska använda med Power BI. (Den här användaren måste också ha behörighet att läsa från systemtabellerna i _SYS_BI schema som vanligt.) Mer information om hur du skapar och tilldelar databasroller finns i den officiella SAP-dokumentationen. Det här SAP-blogginlägget kan vara ett bra ställe att börja på.

    • Det finns för närvarande vissa begränsningar för HANA-variabler som är kopplade till HDI-baserade beräkningsvyer. Dessa begränsningar beror på fel på HANA-sidan. För det första är det inte möjligt att tillämpa en HANA-variabel på en delad kolumn i en HDI-containerbaserad beräkningsvy. Du kan åtgärda den här begränsningen genom att uppgradera till HANA 2 version 37.02 och senare eller till HANA 2 version 42 och senare. För det andra visas standardvärden för flera inmatningar för variabler och parametrar för närvarande inte i Power BI-användargränssnittet. Ett fel i SAP HANA orsakar den här begränsningen, men SAP har inte meddelat någon korrigering ännu.

Aktivera kolumnbindning

Data som hämtas från datakällan returneras till programmet i variabler som programmet har allokerat för detta ändamål. Innan detta kan göras måste programmet associera, eller binda, dessa variabler till kolumnerna i resultatuppsättningen. Konceptuellt är den här processen samma som att binda programvariabler till instruktionsparametrar. När programmet binder en variabel till en resultatuppsättningskolumn beskriver det variabeln – adress, datatyp och så vidare – till drivrutinen. Drivrutinen lagrar den här informationen i den struktur som den underhåller för instruktionen och använder informationen för att returnera värdet från kolumnen när raden hämtas.

När du använder Power Query Desktop för att ansluta till en SAP HANA-databas kan du välja alternativet Aktivera kolumnbindning avancerat för att aktivera kolumnbindning.

Du kan också aktivera kolumnbindning i befintliga frågor eller i frågor som används i Power Query Online genom att manuellt lägga EnableColumnBinding till alternativet till anslutningen i Formelfältet för Power Query eller avancerad redigerare. Till exempel:

SapHana.Database("myserver:30015", [Implementation = "2.0", EnableColumnBinding = true]),

Det finns begränsningar som är associerade med att manuellt lägga till alternativet EnableColumnBinding :

  • Aktivera kolumnbindning fungerar i både import- och DirectQuery-läge. Det går dock inte att efteranpassa en befintlig DirectQuery-fråga för att använda det här avancerade alternativet. I stället måste en ny fråga skapas för att den här funktionen ska fungera korrekt.
  • I SAP HANA Server version 2.0 eller senare är kolumnbindningen allt eller inget. Om vissa kolumner inte kan bindas kommer ingen att bindas och användaren får ett undantag, DataSource.Error: Column MEASURE_UNIQUE_NAME of type VARCHAR cannot be bound (20002 > 16384)till exempel .
  • SAP HANA version 1.0-servrar rapporterar inte alltid rätt kolumnlängder. I det här sammanhanget EnableColumnBinding tillåter partiell kolumnbindning. För vissa frågor kan det innebära att inga kolumner är bundna. När inga kolumner är bundna får du inga prestandafördelar.

Stöd för intern fråga i SAP HANA-databasanslutningsappen

Power Query SAP HANA-databasanslutningsappen stöder interna frågor. Information om hur du använder interna frågor i Power Query finns i Importera data från en databas med hjälp av intern databasfråga.

Frågedelegering på interna frågor

Power Query SAP HANA-databasanslutningsappen stöder nu frågedelegering på interna frågor. Mer information: Frågedelegering på interna frågor

Kommentar

I Power Query SAP HANA-databasanslutningsappen stöder interna frågor inte duplicerade kolumnnamn när EnableFolding värdet är true.

Parametrar i interna frågor

Power Query SAP HANA-databasanslutningsappen stöder nu parametrar i interna frågor. Du kan ange parametrar i interna frågor med hjälp av syntaxen Value.NativeQuery .

Till skillnad från andra anslutningsappar stöder EnableFolding = True och anger SAP HANA-databasanslutningen parametrar samtidigt.

Om du vill använda parametrar i en fråga placerar du frågetecken (?) i koden som platshållare. Om du vill ange parametern använder SqlType du textvärdet och ett värde för det SqlType i Value. Value kan vara valfritt M-värde, men måste tilldelas värdet för det angivna SqlType.

Det finns flera sätt att ange parametrar:

  • Anger bara värdena som en lista:

    { “Seattle”, 1, #datetime(2022, 5, 27, 17, 43, 7) }
    
  • Ange värdena och typen som en lista:

    { [ SqlType = "CHAR", Value = "M" ], 
       [ SqlType = "BINARY", Value = Binary.FromText("AKvN", BinaryEncoding.Base64) ], 
       [ SqlType = "DATE", Value = #date(2022, 5, 27) ] }
    
  • Blanda och matcha de två:

    { “Seattle”, 1, [ SqlType = "SECONDDATE", Value = #datetime(2022, 5, 27, 17, 43, 7) ] }
    

SqlType följer standardtypnamnen som definierats av SAP HANA. Följande lista innehåller till exempel de vanligaste typerna som används:

  • BIGINT
  • BINARY
  • BOOLEAN
  • CHAR
  • DATUM
  • DECIMAL
  • DOUBLE
  • INTEGER
  • NVARCHAR
  • SECONDDATE
  • KORTTEXT
  • SMALLDECIMAL
  • SMALLINT
  • TID
  • TIMESTAMP
  • VARBINARY
  • VARCHAR

I följande exempel visas hur du anger en lista med parametervärden.

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

I följande exempel visas hur du anger en lista med poster (eller blandar värden och poster):

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

Stöd för dynamiska attribut

Det sätt på vilket SAP HANA-databasanslutningen behandlar beräknade kolumner har förbättrats. SAP HANA-databasanslutningsappen är en "kub"-anslutningsapp och det finns vissa uppsättningar åtgärder (lägga till objekt, komprimera kolumner och så vidare) som inträffar i "kub"-utrymme. Det här kubutrymmet visas i användargränssnittet för Power Query Desktop och Power Query Online med ikonen "kub" som ersätter den vanligare "tabellikonen".

Skärmbild av den vänstra sidan av den aktuella vyn i Power Query, med fokus på kubikonen överst i radnummerkolumnen.

Innan, när du lade till en tabellkolumn (eller en annan transformering som internt lägger till en kolumn), skulle frågan "hoppa ur kubutrymmet" och alla åtgärder skulle utföras på tabellnivå. Vid något tillfälle kan det här avhoppet leda till att frågan slutar vika. Det gick inte längre att utföra kubåtgärder efter att ha lagt till en kolumn.

Med den här ändringen behandlas de tillagda kolumnerna som dynamiska attribut i kuben. Att ha frågan kvar i kubutrymmet för den här åtgärden har fördelen att du kan fortsätta använda kubåtgärder även efter att du har lagt till kolumner.

Kommentar

Den här nya funktionen är endast tillgänglig när du ansluter till beräkningsvyer i SAP HANA Server version 2.0 eller senare.

Följande exempelfråga utnyttjar den här nya funktionen. Tidigare skulle du få undantaget "värdet är inte en kub" när du tillämpar 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"

Nästa steg

Följande artiklar innehåller mer information som du kan ha nytta av när du ansluter till en SAP HANA-debase.