Del via


SAP HANA-database

Resumé

Element Beskrivelse
Udgivelsestilstand Generel tilgængelighed
Produkter Excel
Power BI (semantiske modeller)
Power BI (dataflow)
Fabric (Dataflow Gen2)
Power Apps (dataflow)
Analysis Services
Understøttede godkendelsestyper Grundlæggende
Database
Windows
Dokumentation til funktionsreference SapHana.Database

Bemærk

Nogle funktioner kan være til stede i ét produkt, men ikke andre på grund af installationsplaner og værtsspecifikke egenskaber.

Forudsætninger

Du skal bruge en SAP-konto for at logge på webstedet og downloade driverne. Hvis du er usikker, skal du kontakte SAP-administratoren i din organisation.

Hvis du vil bruge SAP HANA i Power BI Desktop eller Excel, skal SAP HANA ODBC-driveren være installeret på den lokale klientcomputer, for at SAP HANA-dataforbindelsen kan fungere korrekt. Du kan downloade SAP HANA-klientværktøjerne fra SAP Development Tools, som indeholder den nødvendige ODBC-driver. Du kan også hente den fra SAP Software Download Center. Søg efter SAP HANA CLIENT til Windows-computere på softwareportalen. Da STRUKTUREN i SAP Software Download Center ofte ændres, er mere specifik vejledning til navigering på dette websted ikke tilgængelig. Hvis du vil have oplysninger om installation af SAP HANA ODBC-driveren, skal du gå til Installation af SAP HANA ODBC-driver på Windows 64 Bits.

Hvis du vil bruge SAP HANA i Excel, skal enten 32-bit eller 64-bit SAP HANA ODBC-driveren (afhængigt af om du bruger 32-bit eller 64-bit versionen af Excel) være installeret på den lokale klientcomputer.

Denne funktion er kun tilgængelig i Excel til Windows, hvis du har Office 2019 eller et Microsoft 365-abonnement. Hvis du abonnerer på Microsoft 365, skal du sørge for, at du har den nyeste version af Office.

HANA 1.0 SPS 12rev122.09, 2.0 SPS 3rev30 og BW/4HANA 2.0 understøttes.

Understøttede egenskaber

  • Importér
  • Direct Query (semantiske Power BI-modeller)
  • Avanceret
    • SQL-sætning

Forbind til en SAP HANA-database fra Power Query Desktop

Sådan opretter du forbindelse til en SAP HANA-database fra Power Query Desktop:

  1. Vælg Hent data > SAP HANA-database i Power BI Desktop eller Fra database > fra SAP HANA-database på båndet Data i Excel.

  2. Angiv navnet og porten på den SAP HANA-server, du vil oprette forbindelse til. I eksemplet i følgende figur bruges SAPHANATestServer på port 30015.

    Angiv oplysninger om SAP HANA-serveren.

    Portnummeret er som standard angivet til at understøtte en enkelt objektbeholderdatabase. Hvis din SAP HANA-database kan indeholde mere end én flervejsdatabaseobjektbeholder, skal du vælge Systemdatabase med flere objektbeholdere (30013). Hvis du vil oprette forbindelse til en lejerdatabase eller en database med et forekomstnummer, der ikke er standard, skal du vælge Brugerdefinereti rullemenuen Port .

    Hvis du opretter forbindelse til en SAP HANA-database fra Power BI Desktop, får du også mulighed for at vælge enten Import eller DirectQuery. I eksemplet i denne artikel bruges Import, som er standardtilstanden (og den eneste tilstand for Excel). Du kan finde flere oplysninger om, hvordan du opretter forbindelse til databasen ved hjælp af DirectQuery i Power BI Desktop, ved at gå til Forbind til SAP HANA-datakilder ved hjælp af DirectQuery i Power BI.

    Du kan også angive en SQL-sætning eller aktivere kolonnebinding fra Avancerede indstillinger. Flere oplysninger: Forbind ved hjælp af avancerede indstillinger

    Når du har angivet alle dine indstillinger, skal du vælge OK.

  3. Hvis du åbner en database første gang, bliver du bedt om at angive dine legitimationsoplysninger til godkendelse. I dette eksempel kræver SAP HANA-serveren legitimationsoplysninger til databasebrugeren, så vælg Database , og angiv dit brugernavn og din adgangskode. Angiv eventuelt oplysninger om servercertifikatet.

    Angiv serverlegitimationsoplysninger.

    Du skal muligvis også validere servercertifikatet. Du kan få flere oplysninger om brug af valider valg af servercertifikater under Brug af SAP HANA-kryptering. I Power BI Desktop og Excel er valg af validering af servercertifikater aktiveret som standard. Hvis du allerede har konfigureret disse valg i ODBC-datakilden Administration istrator, skal du fjerne markeringen i afkrydsningsfeltet Valider servercertifikat. Hvis du vil vide mere om, hvordan du bruger ODBC-datakilden Administration istrator til at konfigurere disse valg, skal du gå til Konfigurer SSL for ODBC-klientadgang til SAP HANA.

    Du kan få flere oplysninger om godkendelse ved at gå til Godkendelse med en datakilde.

    Når du har udfyldt alle de påkrævede oplysninger, skal du vælge Forbind.

  4. I dialogboksen Navigator kan du enten transformere dataene i Power Query-editoren ved at vælge Transformér data eller indlæse dataene ved at vælge Indlæs.

Forbind til en SAP HANA-database fra Power Query Online

Sådan opretter du forbindelse til SAP HANA-data fra Power Query Online:

  1. Vælg SAP HANA-database på siden Datakilder.

  2. Angiv navnet og porten på den SAP HANA-server, du vil oprette forbindelse til. I eksemplet i følgende figur bruges SAPHANATestServer på port 30015.

  3. Du kan også angive en SQL-sætning fra Avancerede indstillinger. Flere oplysninger: Forbind ved hjælp af avancerede indstillinger

  4. Vælg navnet på den datagateway i det lokale miljø, der skal bruges til at få adgang til databasen.

    Bemærk

    Du skal bruge en datagateway i det lokale miljø med denne connector, uanset om dine data er lokale eller online.

  5. Vælg den godkendelsestype, du vil bruge til at få adgang til dine data. Du skal også angive et brugernavn og en adgangskode.

    Bemærk

    I øjeblikket understøtter Power Query Online kun basisgodkendelse.

  6. Vælg Brug krypteret Forbind ion, hvis du bruger en krypteret forbindelse, og vælg derefter SSL-kryptografiudbyderen. Hvis du ikke bruger en krypteret forbindelse, skal du fjerne markeringen i Brug krypteret Forbind ion. Flere oplysninger: Aktivér kryptering for SAP HANA

    Onlinelogon til SAP HANA-database.

  7. Vælg Næste for at fortsætte.

  8. I dialogboksen Navigator kan du enten transformere dataene i Power Query-editoren ved at vælge Transformér data eller indlæse dataene ved at vælge Indlæs.

Forbind ved hjælp af avancerede indstillinger

Power Query indeholder et sæt avancerede indstillinger, som du kan føje til din forespørgsel, hvis det er nødvendigt.

I følgende tabel beskrives alle de avancerede indstillinger, du kan angive i Power Query.

Avanceret indstilling Beskrivelse
SQL-sætning Flere oplysninger: Importér data fra en database ved hjælp af oprindelig databaseforespørgsel
Aktivér kolonnebinding Binder variabler til kolonnerne i et SAP HANA-resultatsæt ved hentning af data. Kan potentielt forbedre ydeevnen på bekostning af lidt højere hukommelsesudnyttelse. Denne indstilling er kun tilgængelig i Power Query Desktop. Flere oplysninger: Aktivér kolonnebinding
Forbind ionTimeout En varighed, der styrer, hvor længe der skal ventes, før et forsøg på at oprette forbindelse til serveren afbrydes. Standardværdien er 15 sekunder.
CommandTimeout En varighed, der styrer, hvor længe serverforespørgslen må køre, før den annulleres. Standardværdien er ti minutter.

Understøttede funktioner til SAP HANA

På følgende liste vises de understøttede funktioner til SAP HANA. Ikke alle funktioner, der er angivet her, understøttes i alle implementeringer af SAP HANA-databaseconnectoren.

  • Både Power BI Desktop og Excel-connectoren til en SAP HANA-database bruger SAP ODBC-driveren til at give den bedste brugeroplevelse.

  • I Power BI Desktop understøtter SAP HANA både DirectQuery og Import.

  • Power BI Desktop understøtter HANA-informationsmodeller, f.eks. analyse- og beregningsvisninger, og har optimeret navigation.

  • Med SAP HANA kan du også bruge SQL-kommandoer i den oprindelige SQL-databaseforespørgselssætning til at oprette forbindelse til række- og kolonnetabeller i HANA-katalogtabeller, som ikke er inkluderet i de analyse-/beregningsvisninger, der leveres af Navigator-oplevelsen. Du kan også bruge ODBC-connectoren til at forespørge disse tabeller.

  • Power BI Desktop indeholder optimeret navigation til HANA-modeller.

  • Power BI Desktop understøtter SAP HANA-variabler og inputparametre.

  • Power BI Desktop understøtter HDI-objektbeholderbaserede beregningsvisninger.

  • Funktionen SapHana.Database understøtter nu forbindelses- og kommandotimeout. Flere oplysninger: Forbind ved hjælp af avancerede indstillinger

    • Hvis du vil have adgang til dine HDI-objektbeholderbaserede beregningsvisninger i Power BI, skal du sikre, at de HANA-databasebrugere, du bruger sammen med Power BI, har tilladelse til at få adgang til HDI-kørselsobjektbeholderen, der gemmer de visninger, du vil have adgang til. Hvis du vil tildele denne adgang, skal du oprette en rolle, der giver adgang til din HDI-objektbeholder. Tildel derefter rollen til den HANA-databasebruger, du skal bruge sammen med Power BI. Denne bruger skal også have tilladelse til at læse fra systemtabellerne i _SYS_BI skema som normalt. Se den officielle SAP-dokumentation for at få detaljerede oplysninger om, hvordan du opretter og tildeler databaseroller. Dette SAP-blogindlæg kan være et godt sted at starte.

    • Der er i øjeblikket nogle begrænsninger for HANA-variabler, der er knyttet til HDI-baserede beregningsvisninger. Disse begrænsninger skyldes fejl på HANA-siden. For det første er det ikke muligt at anvende en HANA-variabel på en delt kolonne i en HDI-objektbeholderbaseret beregningsvisning. Du kan løse denne begrænsning ved at opgradere til HANA 2 version 37.02 og nyere eller til HANA 2 version 42 og nyere. For det andet vises standardværdier med flere indtastninger for variabler og parametre i øjeblikket ikke i Power BI-brugergrænsefladen. En fejl i SAP HANA forårsager denne begrænsning, men SAP har endnu ikke annonceret en rettelse.

Aktivér kolonnebinding

Data, der hentes fra datakilden, returneres til programmet i variabler, som programmet har allokeret til dette formål. Før dette kan gøres, skal programmet knytte eller binde disse variabler til kolonnerne i resultatsættet. Denne proces er konceptuelt det samme som binding af programvariabler til sætningsparametre. Når programmet binder en variabel til en resultatsætkolonne, beskrives variablen – adresse, datatype osv. – til driveren. Driveren gemmer disse oplysninger i den struktur, den vedligeholder for denne sætning, og bruger oplysningerne til at returnere værdien fra kolonnen, når rækken hentes.

Når du i øjeblikket bruger Power Query Desktop til at oprette forbindelse til en SAP HANA-database, kan du vælge indstillingen Aktivér avanceret kolonnebinding for at aktivere kolonnebinding.

Du kan også aktivere kolonnebinding i eksisterende forespørgsler eller i forespørgsler, der bruges i Power Query Online, ved manuelt at føje EnableColumnBinding indstillingen til forbindelsen på formellinjen i Power Query eller i avanceret editor. Eksempler:

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

Der er begrænsninger forbundet med manuelt at tilføje indstillingen EnableColumnBinding :

  • Aktivér kolonnebinding fungerer i både import- og DirectQuery-tilstand. Det er dog ikke muligt at eftermontere en eksisterende DirectQuery-forespørgsel for at bruge denne avancerede indstilling. Der skal i stedet oprettes en ny forespørgsel, for at denne funktion fungerer korrekt.
  • I SAP HANA Server version 2.0 eller nyere er kolonnebinding alt eller ingenting. Hvis nogle kolonner ikke kan bindes, bindes ingen, og brugeren modtager en undtagelse, DataSource.Error: Column MEASURE_UNIQUE_NAME of type VARCHAR cannot be bound (20002 > 16384)f.eks. .
  • SAP HANA version 1.0-servere rapporterer ikke altid korrekte kolonnelængder. I denne kontekst EnableColumnBinding giver mulighed for delvis binding af kolonner. For nogle forespørgsler kan det betyde, at ingen kolonner er bundet. Når der ikke er bundet nogen kolonner, opnås der ingen ydeevnefordele.

Understøttelse af oprindelige forespørgsler i SAP HANA-databaseconnectoren

Power Query SAP HANA-databaseconnectoren understøtter oprindelige forespørgsler. Du kan få oplysninger om, hvordan du bruger oprindelige forespørgsler i Power Query, ved at gå til Importér data fra en database ved hjælp af oprindelig databaseforespørgsel.

Forespørgselsdelegering på oprindelige forespørgsler

Power Query SAP HANA-databaseconnectoren understøtter nu forespørgselsdelegering på oprindelige forespørgsler. Flere oplysninger: Forespørgselsdelegering på oprindelige forespørgsler

Bemærk

I Power Query SAP HANA-databaseconnectoren understøtter oprindelige forespørgsler ikke dublerede kolonnenavne, når EnableFolding er angivet til true.

Parametre i oprindelige forespørgsler

Power Query SAP HANA-databaseconnectoren understøtter nu parametre i oprindelige forespørgsler. Du kan angive parametre i oprindelige forespørgsler ved hjælp af syntaksen Value.NativeQuery .

I modsætning til andre connectors understøtter EnableFolding = True og angiver SAP HANA-databaseconnectoren parametre på samme tid.

Hvis du vil bruge parametre i en forespørgsel, skal du placere spørgsmålstegn (?) i din kode som pladsholdere. Hvis du vil angive parameteren, skal du bruge SqlType tekstværdien og en værdi for den SqlType i Value. Value kan være en hvilken som helst M-værdi, men skal tildeles til værdien for den angivne SqlType.

Der er flere måder at angive parametre på:

  • Kun angivelse af værdierne som en liste:

    { “Seattle”, 1, #datetime(2022, 5, 27, 17, 43, 7) }
    
  • Angiver værdierne og typen som en liste:

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

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

SqlType følger de standardtypenavne, der er defineret af SAP HANA. Følgende liste indeholder f.eks. de mest almindelige typer, der bruges:

  • BIGINT
  • BINÆRE
  • BOOLESK
  • CHAR
  • DATE
  • DECIMAL
  • DOBBELT
  • HELTAL
  • NVARCHAR
  • ANDEN DATO
  • KORT TEKST
  • SMALLDECIMAL
  • SMALLINT
  • TIME
  • TIDSSTEMPEL
  • BINÆR VARIANS
  • VARCHAR

I følgende eksempel vises, hvordan du angiver en liste over parameterværdier.

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ølgende eksempel vises, hvordan du angiver en liste over poster (eller blander værdier og 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

Understøttelse af dynamiske attributter

Den måde, som SAP HANA-databaseconnectoren behandler beregnede kolonner på, er blevet forbedret. SAP HANA-databaseconnectoren er en "kube"-connector, og der er nogle sæt handlinger (tilføj elementer, skjul kolonner osv.), der sker i området "kube". Dette kubeområde er udstillet i brugergrænsefladen i Power Query Desktop og Power Query Online af ikonet "kube", der erstatter det mere almindelige ikon for "tabel".

Skærmbillede af venstre side af den aktuelle visning i Power Query, hvor du fremhæver kubeikonet øverst i rækkenummerkolonnen.

Før da du tilføjede en tabelkolonne (eller en anden transformation, der internt tilføjer en kolonne), ville forespørgslen "slippe ud af kubeområdet", og alle handlinger ville blive udført på tabelniveau. På et tidspunkt kan denne udrulning medføre, at forespørgslen stopper med at folde. Det var ikke længere muligt at udføre kubehandlinger efter tilføjelse af en kolonne.

Med denne ændring behandles de tilføjede kolonner som dynamiske attributter i kuben. Det har den fordel, at forespørgslen forbliver i kubeområdet for denne handling, så du kan fortsætte med at bruge kubehandlinger, selv efter at du har tilføjet kolonner.

Bemærk

Denne nye funktionalitet er kun tilgængelig, når du opretter forbindelse til beregningsvisninger i SAP HANA Server version 2.0 eller nyere.

Følgende eksempelforespørgsel udnytter denne nye funktion. Tidligere fik du vist undtagelsen "værdien er ikke en kube", når du anvender 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æste trin

Følgende artikler indeholder flere oplysninger, som du kan finde nyttige, når du opretter forbindelse til en SAP HANA-debase.