SAP HANA database

Riepilogo

Articolo Descrizione
Stato di rilascio Disponibilità generale
Prodotti Excel
Power BI (modelli semantici)
Power BI (flussi di dati)
Infrastruttura (Dataflow Gen2)
Power Apps (flussi di dati)
Analysis Services
Tipi di autenticazione supportati Di base
Database
Windows
Documentazione di riferimento sulle funzioni SapHana.Database

Nota

Alcune funzionalità possono essere presenti in un prodotto, ma non altre a causa di pianificazioni di distribuzione e funzionalità specifiche dell'host.

Prerequisiti

È necessario un account SAP per accedere al sito Web e scaricare i driver. Se non si è certi, contattare l'amministratore SAP nell'organizzazione.

Per usare SAP HANA in Power BI Desktop o Excel, è necessario che nel computer client locale sia installato il driver ODBC SAP HANA per il corretto funzionamento della connessione dati SAP HANA. È possibile scaricare gli strumenti client SAP HANA da SAP Development Tools, che contiene il driver ODBC necessario. In alternativa, è possibile ottenerlo dall'Area download software SAP. Nel portale software cercare SAP HANA CLIENT per computer Windows. Poiché l'Area download software SAP modifica spesso la struttura, indicazioni più specifiche per l'esplorazione del sito non sono disponibili. Per istruzioni sull'installazione del driver ODBC di SAP HANA, vedere Installazione di SAP HANA ODBC Driver in Windows 64 Bit.

Per usare SAP HANA in Excel, è necessario disporre del driver ODBC SAP HANA a 32 bit o a 64 bit (a seconda che si usi la versione a 32 bit o a 64 bit di Excel) installata nel computer client locale.

Questa funzionalità è disponibile solo in Excel per Windows se si dispone di un abbonamento a Office 2019 o a Microsoft 365. Se sei un sottoscrittore di Microsoft 365, assicurati di avere la versione più recente di Office.

È supportato HANA 1.0 SPS 12rev122.09, 2.0 SPS 3rev30 e BW/4HANA 2.0.

Funzionalità supportate

  • Import
  • Direct Query (modelli semantici di Power BI)
  • Avanzate
    • Istruzione SQL

Connessione a un database SAP HANA da Power Query Desktop

Per connettersi a un database SAP HANA da Power Query Desktop:

  1. Selezionare Recupera database > SAP HANA dati in Power BI Desktop o Da database da database > SAP HANA nella barra multifunzione Dati in Excel.

  2. Immettere il nome e la porta del server SAP HANA a cui connettersi. Nell'esempio riportato di seguito viene SAPHANATestServer usato sulla porta 30015.

    Immettere le informazioni sul server SAP HANA.

    Per impostazione predefinita, il numero di porta è impostato per supportare un singolo database contenitore. Se il database SAP HANA può contenere più contenitori di database multi-tenant, selezionare Database di sistema multi-contenitore (30013). Per connettersi a un database tenant o a un database con un numero di istanza non predefinito, selezionare Personalizzato dal menu a discesa Porta .

    Se ci si connette a un database SAP HANA da Power BI Desktop, è anche possibile selezionare Importa o DirectQuery. L'esempio in questo articolo usa Import, ovvero l'impostazione predefinita (e l'unica modalità per Excel). Per altre informazioni sulla connessione al database tramite DirectQuery in Power BI Desktop, passare a Connessione alle origini dati SAP HANA usando DirectQuery in Power BI.

    È anche possibile immettere un'istruzione SQL o abilitare l'associazione di colonne da Opzioni avanzate. Altre informazioni, Connessione usando le opzioni avanzate

    Dopo aver immesso tutte le opzioni, selezionare OK.

  3. Se si accede a un database per la prima volta, verrà chiesto di immettere le credenziali per l'autenticazione. In questo esempio il server SAP HANA richiede le credenziali utente del database, quindi selezionare Database e immettere il nome utente e la password. Se necessario, immettere le informazioni sul certificato del server.

    Immettere le credenziali del server.

    Potrebbe anche essere necessario convalidare il certificato del server. Per altre informazioni sull'uso di convalidare le selezioni dei certificati del server, vedere Uso della crittografia SAP HANA. In Power BI Desktop ed Excel la selezione del certificato server convalidata è abilitata per impostazione predefinita. Se queste selezioni sono già state configurate in ODBC Data Source Amministrazione istrator, deselezionare la casella di controllo Convalida certificato server. Per altre informazioni sull'uso dell'origine dati ODBC Amministrazione istrator per configurare queste selezioni, vedere Configurare SSL per l'accesso client ODBC a SAP HANA.

    Per altre informazioni sull'autenticazione, vedere Autenticazione con un'origine dati.

    Dopo aver compilato tutte le informazioni necessarie, selezionare Connessione.

  4. Nella finestra di dialogo Strumento di navigazione è possibile trasformare i dati nell'editor di Power Query selezionando Trasforma dati oppure caricando i dati selezionando Carica.

Connessione a un database SAP HANA da Power Query Online

Per connettersi ai dati di SAP HANA da Power Query Online:

  1. Nella pagina Origini dati selezionare database SAP HANA.

  2. Immettere il nome e la porta del server SAP HANA a cui connettersi. Nell'esempio riportato di seguito viene SAPHANATestServer usato sulla porta 30015.

  3. Facoltativamente, immettere un'istruzione SQL da Opzioni avanzate. Altre informazioni, Connessione usando le opzioni avanzate

  4. Selezionare il nome del gateway dati locale da usare per l'accesso al database.

    Nota

    È necessario usare un gateway dati locale con questo connettore, indipendentemente dal fatto che i dati siano locali o online.

  5. Scegliere il tipo di autenticazione da usare per accedere ai dati. Dovrai anche immettere un nome utente e una password.

    Nota

    Attualmente, Power Query Online supporta solo l'autenticazione di base.

  6. Selezionare Usa Connessione crittografato se si usa una connessione crittografata e quindi scegliere il provider di crittografia SSL. Se non si usa una connessione crittografata, deselezionare Usa Connessione crittografato. Altre informazioni: Abilitare la crittografia per SAP HANA

    Accesso online al database SAP HANA.

  7. Selezionare Avanti per continuare.

  8. Nella finestra di dialogo Strumento di navigazione è possibile trasformare i dati nell'editor di Power Query selezionando Trasforma dati oppure caricando i dati selezionando Carica.

Connessione con opzioni avanzate

Power Query offre un set di opzioni avanzate che è possibile aggiungere alla query, se necessario.

La tabella seguente descrive tutte le opzioni avanzate che è possibile impostare in Power Query.

Opzione Avanzate Descrizione
Istruzione SQL Altre informazioni, Importare dati da un database usando una query di database nativa
Abilitare l'associazione di colonne Associa le variabili alle colonne di un set di risultati SAP HANA durante il recupero dei dati. Può potenzialmente migliorare le prestazioni a fronte di un utilizzo leggermente superiore della memoria. Questa opzione è disponibile solo in Power Query Desktop. Altre informazioni: Abilitare l'associazione di colonne
ConnectionTimeout Durata che controlla il tempo di attesa prima di abbandonare un tentativo di stabilire una connessione al server. Il valore predefinito è 15 secondi.
CommandTimeout Durata che controlla per quanto tempo è consentita l'esecuzione della query sul lato server prima dell'annullamento. Il valore predefinito è dieci minuti.

Funzionalità supportate per SAP HANA

L'elenco seguente mostra le funzionalità supportate per SAP HANA. Non tutte le funzionalità elencate di seguito sono supportate in tutte le implementazioni del connettore di database SAP HANA.

  • Sia il connettore Power BI Desktop che Excel per un database SAP HANA usano il driver ODBC SAP per offrire un'esperienza utente ottimale.

  • In Power BI Desktop SAP HANA supporta le opzioni DirectQuery e Import.

  • Power BI Desktop supporta modelli di informazioni HANA, ad esempio visualizzazioni analitiche e di calcolo, e offre una navigazione ottimizzata.

  • Con SAP HANA è anche possibile usare i comandi SQL nell'istruzione SQL di query del database nativo per connettersi alle tabelle di righe e colonne nelle tabelle del catalogo HANA, che non sono incluse nelle viste analitiche/calcolate fornite dall'esperienza Strumento di navigazione. È anche possibile usare il connettore ODBC per eseguire query su queste tabelle.

  • Power BI Desktop include la navigazione ottimizzata per i modelli HANA.

  • Power BI Desktop supporta variabili e parametri di input di SAP HANA.

  • Power BI Desktop supporta le viste di calcolo basate su contenitori HDI.

  • La funzione SapHana.Database supporta ora i timeout di connessione e comando. Altre informazioni: Connessione usando le opzioni avanzate

    • Per accedere alle viste di calcolo basate su contenitori HDI in Power BI, assicurarsi che gli utenti del database HANA usati con Power BI dispongano dell'autorizzazione per accedere al contenitore di runtime HDI in cui sono archiviate le visualizzazioni a cui si vuole accedere. Per concedere questo accesso, creare un ruolo che consenta l'accesso al contenitore HDI. Assegnare quindi il ruolo all'utente del database HANA che verrà usato con Power BI. L'utente deve inoltre disporre dell'autorizzazione per la lettura dalle tabelle di sistema nello schema _SYS_BI, come di consueto. Per istruzioni dettagliate su come creare e assegnare ruoli di database, vedere la documentazione ufficiale di SAP. Questo post di blog sap può essere un buon punto di partenza.

    • Esistono attualmente alcune limitazioni per le variabili HANA collegate alle viste di calcolo basate su HDI. Queste limitazioni sono causate da errori sul lato HANA. In primo luogo, non è possibile applicare una variabile HANA a una colonna condivisa di una vista di calcolo basata su contenitori HDI. Per risolvere questa limitazione, eseguire l'aggiornamento a HANA 2 versione 37.02 e successive o a HANA 2 versione 42 e successive. In secondo luogo, i valori predefiniti di più voci per variabili e parametri non vengono attualmente visualizzati nell'interfaccia utente di Power BI. Un errore in SAP HANA causa questa limitazione, ma SAP non ha ancora annunciato una correzione.

Abilitare l'associazione di colonne

I dati recuperati dall'origine dati vengono restituiti all'applicazione in variabili allocate dall'applicazione per questo scopo. Prima di poter eseguire questa operazione, l'applicazione deve associare o associare queste variabili alle colonne del set di risultati. Concettualmente, questo processo corrisponde all'associazione delle variabili dell'applicazione ai parametri delle istruzioni. Quando l'applicazione associa una variabile a una colonna del set di risultati, descrive tale variabile, ovvero indirizzo, tipo di dati e così via, al driver. Il driver archivia queste informazioni nella struttura gestita per tale istruzione e usa le informazioni per restituire il valore dalla colonna quando la riga viene recuperata.

Attualmente, quando si usa Power Query Desktop per connettersi a un database SAP HANA, è possibile selezionare l'opzione Abilita associazione di colonne avanzata per abilitare l'associazione di colonne.

È anche possibile abilitare l'associazione di colonne nelle query esistenti o nelle query usate in Power Query Online aggiungendo manualmente l'opzione EnableColumnBinding alla connessione nella barra delle formule di Power Query o nell'editor avanzato. Ad esempio:

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

Esistono limitazioni associate all'aggiunta manuale dell'opzione EnableColumnBinding :

  • L'abilitazione dell'associazione di colonne funziona sia in modalità Import che DirectQuery. Tuttavia, l'adattamento di una query DirectQuery esistente per l'uso di questa opzione avanzata non è possibile. Per il corretto funzionamento di questa funzionalità, è invece necessario creare una nuova query.
  • In SAP HANA Server versione 2.0 o successiva, l'associazione di colonne è tutto o niente. Se alcune colonne non possono essere associate, nessuna verrà associata e l'utente riceverà un'eccezione, ad esempio DataSource.Error: Column MEASURE_UNIQUE_NAME of type VARCHAR cannot be bound (20002 > 16384).
  • I server SAP HANA versione 1.0 non segnalano sempre lunghezze di colonna corrette. In questo contesto, consente l'associazione EnableColumnBinding parziale di colonne. Per alcune query, ciò potrebbe significare che nessuna colonna è associata. Quando non sono associate colonne, non vengono ottenuti vantaggi in termini di prestazioni.

Supporto di query native nel connettore di database SAP HANA

Il connettore di database SAP HANA di Power Query supporta query native. Per informazioni su come usare query native in Power Query, vedere Importare dati da un database usando una query di database nativa.

Riduzione delle query nelle query native

Il connettore di database SAP HANA di Power Query supporta ora la riduzione delle query nelle query native. Altre informazioni: Riduzione delle query sulle query native

Nota

Nel connettore di database SAP HANA di Power Query le query native non supportano nomi di colonna duplicati quando EnableFolding è impostato su true.

Parametri nelle query native

Il connettore di database SAP HANA di Power Query supporta ora i parametri nelle query native. È possibile specificare i parametri nelle query native usando la sintassi Value.NativeQuery .

A differenza di altri connettori, il connettore di database SAP HANA supporta EnableFolding = True e specifica i parametri contemporaneamente.

Per usare i parametri in una query, inserire i punti interrogativi (?) nel codice come segnaposto. Per specificare il parametro , usare il SqlType valore di testo e un valore per tale SqlType valore in Value. Value può essere qualsiasi valore M, ma deve essere assegnato al valore dell'oggetto specificato SqlType.

Esistono diversi modi per specificare i parametri:

  • Specificare solo i valori come elenco:

    { “Seattle”, 1, #datetime(2022, 5, 27, 17, 43, 7) }
    
  • Specificare i valori e il tipo come elenco:

    { [ SqlType = "CHAR", Value = "M" ], 
       [ SqlType = "BINARY", Value = Binary.FromText("AKvN", BinaryEncoding.Base64) ], 
       [ SqlType = "DATE", Value = #date(2022, 5, 27) ] }
    
  • Combinare e abbinare i due elementi:

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

SqlType segue i nomi dei tipi standard definiti da SAP HANA. Ad esempio, l'elenco seguente contiene i tipi più comuni usati:

  • bigint
  • BINARY
  • BOOLEAN
  • CHAR
  • DATE
  • DECIMAL
  • DOUBLE
  • INTEGER
  • NVARCHAR
  • SECONDDATE
  • SHORTTEXT
  • SMALLDECIMAL
  • SMALLINT
  • ORA
  • TIMESTAMP
  • VARBINARY
  • VARCHAR

Nell'esempio seguente viene illustrato come fornire un elenco di valori di parametro.

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

Nell'esempio seguente viene illustrato come fornire un elenco di record (o combinare valori e record):

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

Supporto per gli attributi dinamici

Il modo in cui il connettore di database SAP HANA gestisce le colonne calcolate è stato migliorato. Il connettore di database SAP HANA è un connettore "cubo" e sono disponibili alcuni set di operazioni (aggiungere elementi, comprimere colonne e così via) che si verificano nello spazio "cubo". Questo spazio cubo è visualizzato nell'interfaccia utente di Power Query Desktop e Power Query Online con l'icona "cubo" che sostituisce l'icona "tabella" più comune.

Screenshot del lato sinistro della visualizzazione corrente in Power Query, evidenziando l'icona del cubo nella parte superiore della colonna del numero di riga.

In precedenza, quando è stata aggiunta una colonna di tabella (o un'altra trasformazione che aggiunge internamente una colonna), la query "esce dallo spazio del cubo" e tutte le operazioni verrebbero eseguite a livello di tabella. A un certo punto, l'eliminazione potrebbe causare l'arresto della riduzione della query. L'esecuzione di operazioni del cubo dopo l'aggiunta di una colonna non è più possibile.

Con questa modifica, le colonne aggiunte vengono considerate come attributi dinamici all'interno del cubo. La presenza della query nello spazio del cubo per questa operazione ha il vantaggio di consentire di continuare a usare le operazioni del cubo anche dopo l'aggiunta di colonne.

Nota

Questa nuova funzionalità è disponibile solo quando ci si connette alle viste di calcolo in SAP HANA Server versione 2.0 o successiva.

La query di esempio seguente sfrutta questa nuova funzionalità. In passato, si otterrebbe un'eccezione "il valore non è un cubo" quando si applica 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"

Passaggi successivi

Gli articoli seguenti contengono altre informazioni utili per la connessione a una debase di SAP HANA.