SAP HANA-database
Resumé
Element | Beskrivelse |
---|---|
Udgivelsestilstand | Generel tilgængelighed |
Produkter | Power BI (datasæt) Power BI (dataflow) Power Apps (dataflow) Excel 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 udrulningsplaner 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øjer fra SAP-udviklingsværktøjer, som indeholder den nødvendige ODBC-driver. Du kan også få dem fra SAP software Download Center. I softwareportalen kan du søge efter SAP HANA CLIENT til Windows-computere. Da strukturen i SAP Software Download Center ofte ændres, kan vi ikke give en mere specifik vejledning til, hvordan du henter programmet. 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
- Erfaren
- SQL-sætning
Opret forbindelse til en SAP HANA-database fra Power Query Desktop
Sådan opretter du forbindelse til en SAP HANA-database fra Power Query Desktop:
Vælg Hent data > SAP HANA-database i Power BI Desktop eller Fra database > fra SAP HANA-database på båndet Data i Excel.
Angiv navnet og porten på den SAP HANA-server, du vil oprette forbindelse til. I eksemplet i følgende figur bruges
SAPHANATestServer
på port30015
.Som standard er portnummeret indstillet til at understøtte en enkelt objektbeholderdatabase. Hvis din SAP HANA-database kan indeholde mere end én databaseobjektbeholder med flere elementer, 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 Brugerdefineret i 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ér eller DirectQuery. I eksemplet i denne artikel bruges Import, som er standardtilstanden (og den eneste tilstand for Excel). Du kan finde flere oplysninger om oprettelse af forbindelse til databasen ved hjælp af DirectQuery i Power BI Desktop ved at gå til Opret forbindelse 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: Opret forbindelse ved hjælp af avancerede indstillinger
Når du har angivet alle dine indstillinger, skal du vælge OK.
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 for databasebrugeren, så vælg Database , og angiv dit brugernavn og din adgangskode. Hvis det er nødvendigt, skal du angive dine servercertifikatoplysninger.
Det kan også være nødvendigt at validere servercertifikatet. Du kan få flere oplysninger om brug af validering af servercertifikatvalg under Brug af SAP HANA-kryptering. I Power BI Desktop og Excel er valg af validering af servercertifikat aktiveret som standard. Hvis du allerede har konfigureret disse valg i ODBC-datakildeadministrator, skal du fjerne markeringen i afkrydsningsfeltet Valider servercertifikat . Hvis du vil vide mere om, hvordan du bruger ODBC-datakildeadministrator 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 nødvendige oplysninger, skal du vælge Opret forbindelse.
I dialogboksen Navigator kan du enten transformere dataene i Power Query editor ved at vælge Transformér data eller indlæse dataene ved at vælge Indlæs.
Opret forbindelse til en SAP HANA-database fra Power Query Online
Sådan opretter du forbindelse til SAP HANA-data fra Power Query Online:
Vælg SAP HANA-databasen på siden Datakilder.
Angiv navnet og porten på den SAP HANA-server, du vil oprette forbindelse til. I eksemplet i følgende figur bruges
SAPHANATestServer
på port30015
.Du kan også angive en SQL-sætning fra Avancerede indstillinger. Flere oplysninger: Opret forbindelse ved hjælp af avancerede indstillinger
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.
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.
Vælg Brug krypteret forbindelse , hvis du bruger en krypteret forbindelse, og vælg derefter SSL-kryptografiprovideren. Hvis du ikke bruger en krypteret forbindelse, skal du fjerne markeringen af Brug krypteret forbindelse. Flere oplysninger: Aktivér kryptering for SAP HANA
Vælg Næste for at fortsætte.
I dialogboksen Navigator kan du enten transformere dataene i Power Query editor ved at vælge Transformér data eller indlæse dataene ved at vælge Indlæs.
Opret forbindelse 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 |
ConnectionTimeout | En varighed, der styrer, hvor længe der skal ventes, før forsøget på at oprette forbindelse til serveren opgives. Standardværdien er 15 sekunder. |
CommandTimeout | En varighed, der styrer, hvor længe forespørgslen på serversiden må køre, før den annulleres. Standardværdien er 10 minutter. |
Understøttede funktioner til SAP HANA
På følgende liste vises de understøttede funktioner for SAP HANA. Ikke alle de 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 omfatter 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: Opret forbindelse ved hjælp af avancerede indstillinger
Hvis du vil have adgang til HDI-objektbeholderbaserede beregningsvisninger i Power BI, skal du sørge for, 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 vil 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 instruktioner til, 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 i en delt kolonne i en HDI-objektbeholderbaseret beregningsvisning. Du kan løse problemet med denne begrænsning ved at opgradere til HANA 2 version 37.02 og nyere eller HANA 2 version 42 og nyere. For det andet vises standardværdierne for variabler og parametre ikke i brugergrænsefladen i Power BI. En fejl i SAP HANA forårsager denne begrænsning, men SAP har ikke annonceret en rettelse endnu.
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. konceptuelt er denne proces den samme som bindingsprogramvariabler til sætningsparametre. Når programmet binder en variabel til en kolonne med resultatsæt, 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 kolonnebinding avanceret 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å Power Query formellinje eller i avanceret editor. Eksempel:
SapHana.Database("myserver:30015", [Implementation = "2.0", EnableColumnBinding = true]),
Der er begrænsninger knyttet til manuel tilføjelse af 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
Den Power Query SAP HANA-databaseconnector understøtter oprindelige forespørgsler. Du kan finde 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
Den Power Query SAP HANA-databaseconnector understøtter nu forespørgselsdelegering på oprindelige forespørgsler. Flere oplysninger: Forespørgselsdelegering på oprindelige forespørgsler
Bemærk
I Power Query SAP HANA-databaseconnector understøtter oprindelige forespørgsler ikke dublerede kolonnenavne, når EnableFolding
er angivet til sand.
Parametre i oprindelige forespørgsler
Den Power Query SAP HANA-databaseconnector 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å:
Angiver kun 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
- INTEGER
- NVARCHAR
- ANDEN DATO
- KORT TEKST
- SMALLDECIMAL
- SMALLINT
- TIME
- TIDSSTEMPEL
- BINÆR VARIANS
- VARCHAR
I følgende eksempel vises, hvordan du kan angive 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 kan angive en liste over poster (eller blande 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 Power Query Desktop og Power Query Online-brugergrænsefladen ved hjælp af ikonet "kube", der erstatter det mere almindelige ikon for "tabel".
Før da du tilføjede en tabelkolonne (eller en anden transformation, der internt tilføjer en kolonne), ville forespørgslen "falde ud af kubeplads", og alle handlinger ville blive udført på tabelniveau. På et tidspunkt kan denne udrulning medføre, at forespørgslen stopper med at delegere. 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. Hvis forespørgslen forbliver i kubeområdet for denne handling, har du den fordel, at 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 benytter sig af denne nye funktion. Tidligere fik du en undtagelse af typen "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.