SAP HANA-database

Samenvatting

Item Beschrijving
Releasestatus Algemene beschikbaarheid
Producten Excel
Power BI (Semantische modellen)
Power BI (gegevensstromen)
Fabric (Dataflow Gen2)
Power Apps (gegevensstromen)
Analysis Services
Ondersteunde verificatietypen Basis
Database
Windows
Documentatie voor functiereferenties SapHana.Database

Notitie

Sommige mogelijkheden zijn mogelijk aanwezig in één product, maar niet in andere vanwege implementatieschema's en hostspecifieke mogelijkheden.

Vereisten

U hebt een SAP-account nodig om u aan te melden bij de website en de stuurprogramma's te downloaden. Als u het niet zeker weet, neemt u contact op met de SAP-beheerder in uw organisatie.

Als u SAP HANA wilt gebruiken in Power BI Desktop of Excel, moet het SAP HANA ODBC-stuurprogramma op de lokale clientcomputer zijn geïnstalleerd om de SAP HANA-gegevensverbinding goed te laten werken. U kunt de SAP HANA-clienthulpprogramma's downloaden uit SAP Development Tools, dat het benodigde ODBC-stuurprogramma bevat. Of u kunt het downloaden via het SAP Software Download Center. Zoek in de softwareportal naar de SAP HANA-CLIENT voor Windows-computers. Omdat het SAP Software Download Center de structuur regelmatig wijzigt, zijn er meer specifieke richtlijnen voor het navigeren op die site niet beschikbaar. Voor instructies over het installeren van het SAP HANA ODBC-stuurprogramma gaat u naar SAP HANA ODBC-stuurprogramma installeren in Windows 64 Bits.

Als u SAP HANA in Excel wilt gebruiken, moet het 32-bits of 64-bits SAP HANA ODBC-stuurprogramma zijn geïnstalleerd (afhankelijk van of u de 32-bits of 64-bits versie van Excel gebruikt) op de lokale clientcomputer.

Deze functie is alleen beschikbaar in Excel voor Windows als u office 2019 of een Microsoft 365-abonnement hebt. Als u een Microsoft 365-abonnee bent, controleert u of u de nieuwste versie van Office hebt.

HANA 1.0 SPS 12rev122.09, 2.0 SPS 3rev30 en BW/4HANA 2.0 wordt ondersteund.

Ondersteunde mogelijkheden

  • Importeren
  • Direct Query (semantische Power BI-modellen)
  • Geavanceerde
    • SQL-instructie

Verbinding maken naar een SAP HANA-database vanuit Power Query Desktop

Verbinding maken met een SAP HANA-database vanuit Power Query Desktop:

  1. Selecteer Gegevens > ophalen SAP HANA-database in Power BI Desktop of uit database > uit SAP HANA-database op het lint Gegevens in Excel.

  2. Voer de naam en poort in van de SAP HANA-server waarmee u verbinding wilt maken. In het voorbeeld in de volgende afbeelding wordt gebruikgemaakt SAPHANATestServer van poort 30015.

    Voer de GEGEVENS van de SAP HANA-server in.

    Standaard is het poortnummer ingesteld ter ondersteuning van één containerdatabase. Als uw SAP HANA-database meer dan één multitenant-databasecontainer kan bevatten, selecteert u multicontainersysteemdatabase (30013). Als u verbinding wilt maken met een tenantdatabase of een database met een niet-standaardexemplarennummer, selecteert u Aangepast in de vervolgkeuzelijst Poort.

    Als u vanuit Power BI Desktop verbinding maakt met een SAP HANA-database, krijgt u ook de mogelijkheid om Importeren of DirectQuery te selecteren. In het voorbeeld in dit artikel wordt Import gebruikt. Dit is de standaardmodus (en de enige modus voor Excel). Ga naar Verbinding maken naar SAP HANA-gegevensbronnen met behulp van DirectQuery in Power BI Desktop voor meer informatie over het maken van verbinding met de database met behulp van DirectQuery in Power BI.

    U kunt ook een SQL-instructie invoeren of kolombinding inschakelen vanuit geavanceerde opties. Meer informatie Verbinding maken met geavanceerde opties

    Nadat u al uw opties hebt ingevoerd, selecteert u OK.

  3. Als u voor het eerst toegang hebt tot een database, wordt u gevraagd uw referenties voor verificatie in te voeren. In dit voorbeeld vereist de SAP HANA-server databasegebruikersreferenties, dus selecteer Database en voer uw gebruikersnaam en wachtwoord in. Voer indien nodig de gegevens van het servercertificaat in.

    Voer de serverreferenties in.

    Mogelijk moet u ook het servercertificaat valideren. Zie SAP HANA-versleuteling gebruiken voor meer informatie over het gebruik van validatie van servercertificaatselecties. In Power BI Desktop en Excel is de selectie van het servercertificaat standaard ingeschakeld. Als u deze selecties al hebt ingesteld in ODBC-gegevensbron Beheer istrator, schakelt u het selectievakje Servercertificaat valideren uit. Voor meer informatie over het gebruik van ODBC-gegevensbron Beheer istrator om deze selecties in te stellen, gaat u naar SSL configureren voor ODBC-clienttoegang tot SAP HANA.

    Ga naar Verificatie met een gegevensbron voor meer informatie over verificatie.

    Nadat u alle vereiste gegevens hebt ingevuld, selecteert u Verbinding maken.

  4. In het dialoogvenster Navigator kunt u de gegevens in de Power Query-editor transformeren door Transformatiegegevens te selecteren of de gegevens te laden door Laden te selecteren.

Verbinding maken naar een SAP HANA-database vanuit Power Query Online

Verbinding maken met SAP HANA-gegevens vanuit Power Query Online:

  1. Selecteer sap HANA-database op de pagina Gegevensbronnen.

  2. Voer de naam en poort in van de SAP HANA-server waarmee u verbinding wilt maken. In het voorbeeld in de volgende afbeelding wordt gebruikgemaakt SAPHANATestServer van poort 30015.

  3. Voer desgewenst een SQL-instructie uit geavanceerde opties in. Meer informatie Verbinding maken met geavanceerde opties

  4. Selecteer de naam van de on-premises gegevensgateway die u wilt gebruiken voor toegang tot de database.

    Notitie

    U moet een on-premises gegevensgateway gebruiken met deze connector, ongeacht of uw gegevens lokaal of online zijn.

  5. Kies het verificatietype dat u wilt gebruiken voor toegang tot uw gegevens. U moet ook een gebruikersnaam en wachtwoord invoeren.

    Notitie

    Momenteel ondersteunt Power Query Online alleen basisverificatie.

  6. Selecteer Versleutelde Verbinding maken ion gebruiken als u een versleutelde verbinding gebruikt en kies vervolgens de SSL-cryptoprovider. Als u geen versleutelde verbinding gebruikt, schakelt u Versleutelde Verbinding maken ion gebruiken uit. Meer informatie: Versleuteling inschakelen voor SAP HANA

    Online aanmelden voor SAP HANA-database.

  7. Selecteer Volgende om door te gaan.

  8. In het dialoogvenster Navigator kunt u de gegevens in de Power Query-editor transformeren door Transformatiegegevens te selecteren of de gegevens te laden door Laden te selecteren.

Verbinding maken met geavanceerde opties

Power Query biedt een set geavanceerde opties die u indien nodig aan uw query kunt toevoegen.

In de volgende tabel worden alle geavanceerde opties beschreven die u in Power Query kunt instellen.

Geavanceerde optie Beschrijving
SQL-instructie Meer informatie: gegevens importeren uit een database met behulp van een systeemeigen databasequery
Kolombinding inschakelen Koppelt variabelen aan de kolommen van een SAP HANA-resultatenset bij het ophalen van gegevens. Kan de prestaties mogelijk verbeteren ten koste van iets hoger geheugengebruik. Deze optie is alleen beschikbaar in Power Query Desktop. Meer informatie: Kolombinding inschakelen
Verbinding maken ionTimeout Een duur die bepaalt hoe lang moet worden gewacht voordat een poging tot het maken van een verbinding met de server wordt afgelaten. De standaardwaarde is 15 seconden.
Commandtimeout Een duur die bepaalt hoe lang de query aan de serverzijde mag worden uitgevoerd voordat deze wordt geannuleerd. De standaardwaarde is tien minuten.

Ondersteunde functies voor SAP HANA

De volgende lijst bevat de ondersteunde functies voor SAP HANA. Niet alle functies die hier worden vermeld, worden ondersteund in alle implementaties van de SAP HANA-databaseconnector.

  • Zowel de Power BI Desktop- als de Excel-connector voor een SAP HANA-database gebruiken het SAP ODBC-stuurprogramma om de beste gebruikerservaring te bieden.

  • In Power BI Desktop ondersteunt SAP HANA opties voor DirectQuery en Importeren.

  • Power BI Desktop ondersteunt HANA-informatiemodellen, zoals analyse- en berekeningsweergaven, en heeft geoptimaliseerde navigatie.

  • Met SAP HANA kunt u ook SQL-opdrachten gebruiken in de sql-instructie voor systeemeigen databasequery's om verbinding te maken met rij- en kolomtabellen in HANA-catalogustabellen, die niet zijn opgenomen in de analytische/berekeningsweergaven die door de Navigator-ervaring worden geboden. U kunt ook de ODBC-connector gebruiken om een query uit te voeren op deze tabellen.

  • Power BI Desktop bevat geoptimaliseerde navigatie voor HANA-modellen.

  • Power BI Desktop ondersteunt SAP HANA-variabelen en invoerparameters.

  • Power BI Desktop ondersteunt berekeningsweergaven op basis van HDI-containers.

  • De functie SapHana.Database ondersteunt nu time-outs voor verbindingen en opdrachten. Meer informatie: Verbinding maken met geavanceerde opties

    • Als u toegang wilt krijgen tot de berekeningsweergaven op basis van HDI-containers in Power BI, moet u ervoor zorgen dat de HANA-databasegebruikers die u met Power BI gebruikt, gemachtigd zijn voor toegang tot de HDI Runtime-container waarin de weergaven worden opgeslagen die u wilt openen. Als u deze toegang wilt verlenen, maakt u een rol waarmee u toegang verleent tot uw HDI-container. Wijs vervolgens de rol toe aan de HANA-databasegebruiker die u met Power BI gaat gebruiken. (Deze gebruiker moet ook gemachtigd zijn om te lezen uit de systeemtabellen in het _SYS_BI schema, zoals gebruikelijk.) Raadpleeg de officiële SAP-documentatie voor gedetailleerde instructies over het maken en toewijzen van databaserollen. Dit SAP-blogbericht kan een goede plek zijn om te beginnen.

    • Er zijn momenteel enkele beperkingen voor HANA-variabelen die zijn gekoppeld aan op HDI gebaseerde berekeningsweergaven. Deze beperkingen zijn te maken met fouten aan de HANA-zijde. Ten eerste is het niet mogelijk om een HANA-variabele toe te passen op een gedeelde kolom van een berekeningsweergave op basis van HDI-containers. Als u deze beperking wilt oplossen, voert u een upgrade uit naar HANA 2 versie 37.02 en hoger of naar HANA 2 versie 42 en hoger. Ten tweede worden standaardwaarden voor meerdere invoer voor variabelen en parameters momenteel niet weergegeven in de Gebruikersinterface van Power BI. Een fout in SAP HANA veroorzaakt deze beperking, maar SAP heeft nog geen oplossing aangekondigd.

Kolombinding inschakelen

Gegevens die zijn opgehaald uit de gegevensbron, worden geretourneerd naar de toepassing in variabelen die de toepassing voor dit doel heeft toegewezen. Voordat u dit kunt doen, moet de toepassing deze variabelen koppelen aan of binden aan de kolommen van de resultatenset. Conceptueel gezien is dit proces hetzelfde als bindingstoepassingsvariabelen aan instructieparameters. Wanneer de toepassing een variabele koppelt aan een kolom met resultatensets, wordt die variabele beschreven: adres, gegevenstype, enzovoort, aan het stuurprogramma. Het stuurprogramma slaat deze informatie op in de structuur die voor die instructie wordt onderhouden en gebruikt de informatie om de waarde uit de kolom te retourneren wanneer de rij wordt opgehaald.

Wanneer u Momenteel Power Query Desktop gebruikt om verbinding te maken met een SAP HANA-database, kunt u de geavanceerde optie Kolombinding inschakelen selecteren om kolombinding in te schakelen.

U kunt ook kolombinding inschakelen in bestaande query's of in query's die worden gebruikt in Power Query Online door de EnableColumnBinding optie handmatig toe te voegen aan de verbinding in de Power Query-formulebalk of geavanceerde editor. Voorbeeld:

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

Er zijn beperkingen gekoppeld aan het handmatig toevoegen van de EnableColumnBinding optie:

  • Kolombinding inschakelen werkt zowel in de importmodus als in de DirectQuery-modus. Het opnieuw aanpassen van een bestaande DirectQuery-query voor het gebruik van deze geavanceerde optie is echter niet mogelijk. In plaats daarvan moet er een nieuwe query worden gemaakt om deze functie correct te laten werken.
  • In SAP HANA Server versie 2.0 of hoger is kolombinding alles of niets. Als sommige kolommen niet kunnen worden gebonden, is er geen afhankelijk en ontvangt de gebruiker bijvoorbeeld DataSource.Error: Column MEASURE_UNIQUE_NAME of type VARCHAR cannot be bound (20002 > 16384)een uitzondering.
  • SAP HANA versie 1.0-servers rapporteren niet altijd de juiste kolomlengten. In deze context EnableColumnBinding staat u gedeeltelijke kolombinding toe. Voor sommige query's kan dit betekenen dat er geen kolommen zijn gebonden. Wanneer er geen kolommen zijn gebonden, worden er geen prestatievoordelen behaald.

Systeemeigen queryondersteuning in de SAP HANA-databaseconnector

De Power Query SAP HANA-databaseconnector ondersteunt systeemeigen query's. Voor informatie over het gebruik van systeemeigen query's in Power Query gaat u naar Gegevens importeren uit een database met behulp van een systeemeigen databasequery.

Query folding op systeemeigen query's

De Power Query SAP HANA-databaseconnector ondersteunt nu het vouwen van query's op systeemeigen query's. Meer informatie: Query folding op systeemeigen query's

Notitie

In de Power Query SAP HANA-databaseconnector bieden systeemeigen query's geen ondersteuning voor dubbele kolomnamen wanneer EnableFolding deze is ingesteld op waar.

Parameters in systeemeigen query's

De Power Query SAP HANA-databaseconnector ondersteunt nu parameters in systeemeigen query's. U kunt parameters opgeven in systeemeigen query's met behulp van de syntaxis Value.NativeQuery .

In tegenstelling tot andere connectors ondersteunt EnableFolding = True de SAP HANA-databaseconnector tegelijkertijd parameters en geeft deze op.

Als u parameters in een query wilt gebruiken, plaatst u vraagtekens (?) in uw code als tijdelijke aanduidingen. Als u de parameter wilt opgeven, gebruikt u de SqlType tekstwaarde en een waarde voor die SqlType in Value. Value kan elke M-waarde zijn, maar moet worden toegewezen aan de waarde van de opgegeven SqlTypewaarde.

Er zijn meerdere manieren om parameters op te geven:

  • Geef alleen de waarden op als een lijst:

    { “Seattle”, 1, #datetime(2022, 5, 27, 17, 43, 7) }
    
  • Geef de waarden en het type op als een lijst:

    { [ SqlType = "CHAR", Value = "M" ], 
       [ SqlType = "BINARY", Value = Binary.FromText("AKvN", BinaryEncoding.Base64) ], 
       [ SqlType = "DATE", Value = #date(2022, 5, 27) ] }
    
  • Meng en match de twee:

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

SqlType volgt de standaardtypenamen die zijn gedefinieerd door SAP HANA. De volgende lijst bevat bijvoorbeeld de meest voorkomende typen die worden gebruikt:

  • BIGINT
  • BINARY
  • BOOLEAN
  • CHAR
  • DATUM
  • DECIMAL
  • DOUBLE
  • GEHEEL GETAL
  • NVARCHAR
  • SECONDDATE
  • SHORTTEXT
  • SMALLDECIMAL
  • SMALLINT
  • TIME
  • TIMESTAMP
  • VARBINARY
  • VARCHAR

In het volgende voorbeeld ziet u hoe u een lijst met parameterwaarden opgeeft.

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

In het volgende voorbeeld ziet u hoe u een lijst met records opgeeft (of waarden en records combineert):

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

Ondersteuning voor dynamische kenmerken

De manier waarop de SAP HANA-databaseconnector berekende kolommen behandelt, is verbeterd. De SAP HANA-databaseconnector is een kubusconnector en er zijn enkele sets bewerkingen (items toevoegen, kolommen samenvouwen, enzovoort) die plaatsvinden in de kubusruimte. Deze kubusruimte wordt weergegeven in de gebruikersinterface van Power Query Desktop en Power Query Online door het kubuspictogram dat het meest voorkomende pictogram 'tabel' vervangt.

Schermopname van de linkerkant van de huidige weergave in Power Query, waarin het kubuspictogram boven aan de kolom met rijnummers wordt benadrukt.

Voordat u een tabelkolom (of een andere transformatie die intern een kolom toevoegt) hebt toegevoegd, zou de query de kubusruimte weglaten en alle bewerkingen op tabelniveau worden uitgevoerd. Op een bepaald moment kan deze vervolgkeuzelijst ertoe leiden dat de query stopt met vouwen. Het uitvoeren van kubusbewerkingen nadat het toevoegen van een kolom niet meer mogelijk was.

Met deze wijziging worden de toegevoegde kolommen behandeld als dynamische kenmerken in de kubus. Als de query in kubusruimte blijft voor deze bewerking, heeft het voordeel dat u kubusbewerkingen kunt blijven gebruiken, zelfs nadat u kolommen hebt toegevoegd.

Notitie

Deze nieuwe functionaliteit is alleen beschikbaar wanneer u verbinding maakt met berekeningsweergaven in SAP HANA Server versie 2.0 of hoger.

De volgende voorbeeldquery maakt gebruik van deze nieuwe mogelijkheid. In het verleden krijgt u de uitzondering 'de waarde is geen kubus' bij het toepassen van 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"

Volgende stappen

De volgende artikelen bevatten meer informatie die nuttig kan zijn wanneer u verbinding maakt met een SAP HANA-debase.