SAP HANA-database

Sammendrag

Element Bekrivelse
Utgivelsestilstand Generell tilgjengelighet
Produkter Excel
Power BI (semantiske modeller)
Power BI (dataflyter)
Stoff (Dataflyt gen2)
Power Apps (dataflyter)
Analysis Services
Godkjenningstyper som støttes Grunnleggende
Database
Windows
Funksjonsreferansedokumentasjon SapHana.Database

Merk

Noen funksjoner kan være til stede i ett produkt, men ikke andre på grunn av distribusjonsplaner og vertsspesifikke funksjoner.

Forutsetning

Du trenger en SAP-konto for å logge på nettstedet og laste ned driverne. Hvis du er usikker, kan du kontakte SAP-administratoren i organisasjonen.

Hvis du vil bruke SAP HANA i Power BI Desktop eller Excel, må du ha SAP HANA ODBC-driveren installert på den lokale klientdatamaskinen for at SAP HANA-datatilkoblingen skal fungere som den skal. Du kan laste ned SAP HANA-klientverktøyene fra SAP Development Tools, som inneholder den nødvendige ODBC-driveren. Eller du kan få det fra SAP Software Download Center. Søk etter SAP HANA CLIENT for Windows-datamaskiner i programvareportalen. Siden NEDLASTINGSSENTERET for SAP-programvare endrer strukturen ofte, er ikke mer spesifikk veiledning for navigering av dette nettstedet tilgjengelig. Hvis du vil ha instruksjoner om hvordan du installerer SAP HANA ODBC-driveren, kan du gå til Installer SAP HANA ODBC-driver på Windows 64-biter.

Hvis du vil bruke SAP HANA i Excel, må du ha enten 32-biters eller 64-biters SAP HANA ODBC-driver (avhengig av om du bruker 32-biters eller 64-biters versjonen av Excel) installert på den lokale klientdatamaskinen.

Denne funksjonen er bare tilgjengelig i Excel for Windows hvis du har Office 2019 eller et Microsoft 365-abonnement. Hvis du er en Microsoft 365-abonnent, må du kontrollere at du har den nyeste versjonen av Office.

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

Funksjoner som støttes

  • Importer
  • Direktespørring (semantiske Modeller for Power BI)
  • Avansert
    • SQL-setning

Koble til til en SAP HANA-database fra Power Query Desktop

Slik kobler du til en SAP HANA-database fra Power Query Desktop:

  1. Velg Hent DATA > SAP HANA-database i Power BI Desktop eller Fra database > fra SAP HANA-databaseData-båndet i Excel.

  2. Skriv inn navnet og porten for SAP HANA-serveren du vil koble til. Eksemplet i illustrasjonen nedenfor brukes SAPHANATestServer på port 30015.

    Skriv inn SAP HANA-serverinformasjonen.

    Portnummeret er som standard angitt til å støtte én enkelt beholderdatabase. Hvis SAP HANA-databasen kan inneholde mer enn én flertenant databasebeholder, velger du database med flere beholdere (30013). Hvis du vil koble til en leierdatabase eller en database med et forekomstnummer som ikke er standard, velger du Egendefinert fra rullegardinmenyen Port .

    Hvis du kobler til en SAP HANA-database fra Power BI Desktop, får du også muligheten til å velge enten Import ellerDirectQuery. Eksemplet i denne artikkelen bruker Import, som er standard (og den eneste modusen for Excel). Hvis du vil ha mer informasjon om hvordan du kobler til databasen ved hjelp av DirectQuery i Power BI Desktop, kan du gå til Koble til til SAP HANA-datakilder ved hjelp av DirectQuery i Power BI.

    Du kan også skrive inn en SQL-setning eller aktivere kolonnebinding fra avanserte alternativer. Mer informasjon, Koble til ved hjelp av avanserte alternativer

    Når du har angitt alle alternativene, velger du OK.

  3. Hvis du får tilgang til en database for første gang, blir du bedt om å angi legitimasjonen for godkjenning. I dette eksemplet krever SAP HANA-serveren legitimasjon for databasebrukere, så velg Database og skriv inn brukernavn og passord. Skriv om nødvendig inn serversertifikatinformasjonen.

    Angi serverlegitimasjonen.

    Du må kanskje også validere serversertifikatet. Hvis du vil ha mer informasjon om hvordan du bruker validering av serversertifikatvalg, kan du se Bruke SAP HANA-kryptering. I Power BI Desktop og Excel aktiveres det validerte serversertifikatvalget som standard. Hvis du allerede har konfigurert disse valgene i ODBC-datakildeadministrator, fjerner du merket for Valider serversertifikat . Hvis du vil lære mer om hvordan du bruker ODBC-datakildeadministrator til å konfigurere disse valgene, kan du gå til Konfigurer SSL for ODBC-klienttilgang til SAP HANA.

    Hvis du vil ha mer informasjon om godkjenning, kan du gå til Godkjenning med en datakilde.

    Når du har fylt ut all nødvendig informasjon, velger du Koble til.

  4. I dialogboksen Navigator kan du enten transformere dataene i redigeringsprogrammet for Power Query ved å velge Transformer data eller laste inn dataene ved å velge Last inn.

Koble til til en SAP HANA-database fra Power Query Online

Slik kobler du til SAP HANA-data fra Power Query Online:

  1. Velg SAP HANA-database på datakildesiden.

  2. Skriv inn navnet og porten for SAP HANA-serveren du vil koble til. Eksemplet i illustrasjonen nedenfor brukes SAPHANATestServer på port 30015.

  3. Du kan også skrive inn en SQL-setning fra Avanserte alternativer. Mer informasjon, Koble til ved hjelp av avanserte alternativer

  4. Velg navnet på den lokale datagatewayen som skal brukes til å få tilgang til databasen.

    Merk

    Du må bruke en lokal datagateway med denne koblingen, enten dataene er lokale eller tilkoblet.

  5. Velg godkjenningstypen du vil bruke til å få tilgang til dataene. Du må også angi brukernavn og passord.

    Merk

    Power Query Online støtter for øyeblikket bare enkel godkjenning.

  6. Velg Bruk kryptert Koble til ion hvis du bruker en kryptert tilkobling, og velg deretter SSL-kryptoleverandøren. Hvis du ikke bruker en kryptert tilkobling, fjerner du merket for Bruk kryptert Koble til ion. Mer informasjon: Aktiver kryptering for SAP HANA

    PÅlogging for SAP HANA-database på nettet.

  7. Klikk Neste for å fortsette.

  8. I dialogboksen Navigator kan du enten transformere dataene i redigeringsprogrammet for Power Query ved å velge Transformer data eller laste inn dataene ved å velge Last inn.

Koble til ved hjelp av avanserte alternativer

Power Query inneholder et sett med avanserte alternativer som du kan legge til i spørringen om nødvendig.

Tabellen nedenfor beskriver alle de avanserte alternativene du kan angi i Power Query.

Avansert alternativ Bekrivelse
SQL-setning Mer informasjon, Importer data fra en database ved hjelp av opprinnelig databasespørring
Aktiver kolonnebinding Binder variabler til kolonnene i et SAP HANA-resultatsett når du henter data. Kan potensielt forbedre ytelsen på bekostning av noe høyere minneutnyttelse. Dette alternativet er bare tilgjengelig i Power Query Desktop. Mer informasjon: Aktiver kolonnebinding
Koble til ionTimeout En varighet som styrer hvor lenge du skal vente før du forlater et forsøk på å opprette en tilkobling til serveren. Standardverdien er 15 sekunder.
CommandTimeout En varighet som styrer hvor lenge spørringen på serversiden kan kjøres før den avbrytes. Standardverdien er ti minutter.

Støttede funksjoner for SAP HANA

Listen nedenfor viser de støttede funksjonene for SAP HANA. Ikke alle funksjoner som er oppført her, støttes i alle implementeringer av SAP HANA-databasekoblingen.

  • Både Power BI Desktop- og Excel-koblingen for en SAP HANA-database bruker SAP ODBC-driveren til å gi den beste brukeropplevelsen.

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

  • Power BI Desktop støtter HANA-informasjonsmodeller, for eksempel analytiske visninger og beregningsvisninger, og har optimalisert navigasjon.

  • Med SAP HANA kan du også bruke SQL-kommandoer i den opprinnelige SQL-setningen for databasespørring til å koble til rad- og kolonnetabeller i HANA-katalogtabeller, som ikke er inkludert i analytiske/beregningsvisninger som leveres av Navigator-opplevelsen. Du kan også bruke ODBC-koblingen til å spørre i disse tabellene.

  • Power BI Desktop inkluderer optimalisert navigasjon for HANA-modeller.

  • Power BI Desktop støtter SAP HANA-variabler og inndataparametere.

  • Power BI Desktop støtter HDI-beholderbaserte beregningsvisninger.

  • SapHana.Database-funksjonen støtter nå tidsavbrudd for tilkobling og kommando. Mer informasjon: Koble til ved hjelp av avanserte alternativer

    • Hvis du vil ha tilgang til HDI-beholderbaserte beregningsvisninger i Power BI, må du kontrollere at HANA-databasebrukerne du bruker med Power BI, har tilgang til HDI-kjøretidsbeholderen som lagrer visningene du vil ha tilgang til. Hvis du vil gi denne tilgangen, oppretter du en rolle som gir tilgang til HDI-beholderen. Deretter tilordner du rollen til HANA-databasebrukeren du skal bruke med Power BI. (Denne brukeren må også ha tillatelse til å lese fra systemtabellene i _SYS_BI-skjemaet, som vanlig.) Se den offisielle SAP-dokumentasjonen for detaljerte instruksjoner om hvordan du oppretter og tilordner databaseroller. Dette SAP-blogginnlegget kan være et godt sted å starte.

    • Det finnes for øyeblikket noen begrensninger for HANA-variabler knyttet til HDI-baserte beregningsvisninger. Disse begrensningene skyldes feil på HANA-siden. For det første er det ikke mulig å bruke en HANA-variabel på en delt kolonne i en HDI-beholderbasert beregningsvisning. Du kan løse denne begrensningen ved å oppgradere til HANA 2 versjon 37.02 og videre eller til HANA 2 versjon 42 og videre. For det andre vises ikke standardverdier for variabler og parametere med flere oppføringer i Power BI-brukergrensesnittet. En feil i SAP HANA forårsaker denne begrensningen, men SAP har ikke kunngjort en løsning ennå.

Aktiver kolonnebinding

Data hentet fra datakilden returneres til programmet i variabler som programmet har tildelt for dette formålet. Før dette kan gjøres, må programmet knytte eller binde disse variablene til kolonnene i resultatsettet. Denne prosessen er begrepsmessig den samme som binding av programvariabler til setningsparametere. Når programmet binder en variabel til en resultatsettkolonne, beskriver den variabelen - adresse, datatype og så videre - til driveren. Driveren lagrer denne informasjonen i strukturen den vedlikeholder for denne setningen, og bruker informasjonen til å returnere verdien fra kolonnen når raden hentes.

Når du for øyeblikket bruker Power Query Desktop til å koble til en SAP HANA-database, kan du velge alternativet Aktiver avansert kolonnebinding for å aktivere kolonnebinding.

Du kan også aktivere kolonnebinding i eksisterende spørringer eller i spørringer som brukes i Power Query Online, ved å legge til EnableColumnBinding alternativet manuelt i tilkoblingen på formellinjen i Power Query eller avansert redigeringsprogram. Eksempel:

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

Det finnes begrensninger knyttet til manuelt å legge til EnableColumnBinding alternativet:

  • Aktiver kolonnebinding fungerer i både Import- og DirectQuery-modus. Det er imidlertid ikke mulig å ettermontere en eksisterende DirectQuery-spørring for å bruke dette avanserte alternativet. I stedet må det opprettes en ny spørring for at denne funksjonen skal fungere som den skal.
  • I SAP HANA Server versjon 2.0 eller nyere er kolonnebinding alt eller ingenting. Hvis noen kolonner ikke kan bindes, blir ingen bundet, og brukeren vil for eksempel DataSource.Error: Column MEASURE_UNIQUE_NAME of type VARCHAR cannot be bound (20002 > 16384)få et unntak.
  • SAP HANA versjon 1.0-servere rapporterer ikke alltid riktige kolonnelengder. I denne konteksten EnableColumnBinding tillater du delvis kolonnebinding. For enkelte spørringer kan dette bety at ingen kolonner er bundet. Når ingen kolonner er bundet, oppnås ingen ytelsesfordeler.

Støtte for opprinnelig spørring i SAP HANA-databasekoblingen

Power Query SAP HANA-databasekoblingen støtter opprinnelige spørringer. Hvis du vil ha informasjon om hvordan du bruker opprinnelige spørringer i Power Query, kan du gå til Importer data fra en database ved hjelp av opprinnelig databasespørring.

Spørringsdelegering på opprinnelige spørringer

Power Query SAP HANA-databasekoblingen støtter nå spørringsdelegering på opprinnelige spørringer. Mer informasjon: Spørringsdelegering på opprinnelige spørringer

Merk

I Power Query SAP HANA-databasekoblingen støtter ikke opprinnelige spørringer dupliserte kolonnenavn når EnableFolding de er satt til sann.

Parametere i opprinnelige spørringer

Power Query SAP HANA-databasekoblingen støtter nå parametere i opprinnelige spørringer. Du kan angi parametere i opprinnelige spørringer ved hjelp av syntaksen Value.NativeQuery .

I motsetning til andre koblinger støtter EnableFolding = True og angir SAP HANA-databasekoblingen samtidig parametere.

Hvis du vil bruke parametere i en spørring, plasserer du spørsmålstegn (?) i koden som plassholdere. Hvis du vil angi parameteren SqlType , bruker du tekstverdien og en verdi for SqlType den i Value. Value kan være en hvilken som helst M-verdi, men må tilordnes verdien til den angitte SqlType.

Det finnes flere måter å angi parametere på:

  • Gir bare verdiene som en liste:

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

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

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

SqlType følger standardtypenavnene definert av SAP HANA. Følgende liste inneholder for eksempel de vanligste typene som brukes:

  • BIGINT
  • BINÆRE
  • BOOLSK
  • CHAR
  • DATE
  • DESIMAL
  • DOBBEL
  • HELTALL
  • NVARCHAR
  • SECONDDATE
  • SHORTTEXT
  • SMALLDECIMAL
  • SMALLINT
  • TIME
  • TIDSSTEMPEL
  • VARBINARY
  • VARCHAR

Eksemplet nedenfor viser hvordan du angir en liste over parameterverdier.

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

Eksemplet nedenfor viser hvordan du angir en liste over poster (eller blande verdier 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

Støtte for dynamiske attributter

Måten SAP HANA-databasekoblingen behandler beregnede kolonner på, er forbedret. SAP HANA-databasekoblingen er en kubekobling, og det finnes noen sett med operasjoner (legg til elementer, skjul kolonner og så videre) som skjer i "kube" mellomrom. Dette kubeområdet vises i brukergrensesnittet for Power Query Desktop og Power Query Online av kubeikonet som erstatter det vanligste tabellikonet.

Skjermbilde av venstre side av gjeldende visning i Power Query, med vekt på kubeikonet øverst i radnummerkolonnen.

Før du la til en tabellkolonne (eller en annen transformasjon som internt legger til en kolonne), ville spørringen «slippe ut av kubeområdet», og alle operasjoner ville bli utført på et tabellnivå. På et tidspunkt kan denne rullegardinlisten føre til at spørringen slutter å brette seg. Det var ikke lenger mulig å utføre kubeoperasjoner etter å ha lagt til en kolonne.

Med denne endringen behandles de tilføyde kolonnene som dynamiske attributter i kuben. Hvis spørringen forblir i kubeområdet for denne operasjonen, kan du fortsette å bruke kubeoperasjoner selv etter at du har lagt til kolonner.

Merk

Denne nye funksjonaliteten er bare tilgjengelig når du kobler til beregningsvisninger i SAP HANA Server versjon 2.0 eller nyere.

Følgende eksempelspørring drar nytte av denne nye funksjonen. Tidligere fikk du unntaket «verdien er ikke en kube» når du bruker 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"

Neste trinn

Følgende artikler inneholder mer informasjon som kan være nyttig når du kobler til en SAP HANA-debase.