Connessione alle origini dati SAP HANA usando DirectQuery in Power BI

È possibile connettersi alle origini dati SAP HANA direttamente tramite DirectQuery. Per la connessione a SAP HANA sono disponibili due opzioni:

  • Considerare SAP HANA come origine multidimensionale (impostazione predefinita): in questo caso, il comportamento è simile a quando Power BI si connette ad altre origini multidimensionali come SAP Business Warehouse o Analysis Services. Quando ci si connette a SAP HANA usando questa impostazione, viene selezionata una singola vista analitica o di calcolo e tutte le misure, le gerarchie e gli attributi di tale visualizzazione sono disponibili nell'elenco dei campi. Quando vengono creati oggetti visivi, i dati aggregati vengono sempre recuperati da SAP HANA. Questa tecnica è l'approccio consigliato ed è l'impostazione predefinita per i nuovi report DirectQuery su SAP HANA.

  • Considerare SAP HANA come origine relazionale: in questo caso, Power BI considera SAP HANA come origine relazionale. Questo approccio offre maggiore flessibilità. Occorre prestare attenzione a questo approccio per garantire che le misure vengano aggregate come previsto e per evitare problemi di prestazioni.

L'approccio di connessione è determinato da un'opzione dello strumento globale, impostata selezionando Opzioni file>e impostazioni e quindi Opzioni>DirectQuery, quindi selezionando l'opzione Considera SAP HANA come origine relazionale, come illustrato nell'immagine seguente.

Screenshot of the Options dialog, showing the DirectQuery options.

L'opzione per considerare SAP HANA come origine relazionale controlla l'approccio usato per qualsiasi nuovo report usando DirectQuery su SAP HANA. Non ha alcun effetto sulle connessioni SAP HANA esistenti nel report corrente, né sulle connessioni in altri report aperti. Pertanto, se l'opzione è attualmente deselezionata, dopo aver aggiunto una nuova connessione a SAP HANA usando Recupera dati, tale connessione viene stabilita considerando SAP HANA come origine multidimensionale. Tuttavia, se viene aperto un report diverso che si connette anche a SAP HANA, tale report continua a comportarsi in base all'opzione impostata al momento della creazione. Questo significa che tutti i report che si connettono a SAP HANA creati prima di febbraio 2018 continuano a trattare SAP HANA come origine relazionale.

I due approcci costituiscono un comportamento diverso e non è possibile passare un report esistente da un approccio all'altro.

Considerare SAP HANA come origine multidimensionale (impostazione predefinita)

Tutte le nuove connessioni a SAP HANA usano questo metodo di connessione per impostazione predefinita, trattando SAP HANA come origine multidimensionale. Per considerare una connessione a SAP HANA come origine relazionale, è necessario selezionare Opzioni file>e impostazioni>Opzioni, quindi selezionare la casella in Direct Query>Treat SAP HANA as a relational source (Considera SAP HANA come origine relazionale).

Quando ci si connette a SAP HANA come origine multidimensionale, si applicano le considerazioni seguenti:

  • In Recupera strumento di navigazione dati è possibile selezionare una singola visualizzazione SAP HANA. Non è possibile selezionare singole misure o attributi. Al momento della connessione non è definita alcuna query, diversa dall'importazione di dati o dall'uso di DirectQuery durante il trattamento di SAP HANA come origine relazionale. Questa considerazione significa anche che non è possibile usare direttamente una query SQL di SAP HANA quando si seleziona questo metodo di connessione.

  • Tutte le misure, le gerarchie e gli attributi della visualizzazione selezionata vengono visualizzate nell'elenco dei campi.

  • Come misura viene usata in un oggetto visivo, viene eseguita una query su SAP HANA per recuperare il valore della misura al livello di aggregazione necessario per l'oggetto visivo. Quando si gestiscono misure non additive, ad esempio contatori e rapporti, tutte le aggregazioni vengono eseguite da SAP HANA e non viene eseguita alcuna ulteriore aggregazione da Power BI.

  • Per garantire che i valori di aggregazione corretti possano sempre essere ottenuti da SAP HANA, è necessario imporre determinate restrizioni. Ad esempio, non è possibile aggiungere colonne calcolate o combinare dati da più viste SAP HANA all'interno dello stesso report.

Il trattamento di SAP HANA come origine multidimensionale non offre la maggiore flessibilità offerta dall'approccio relazionale alternativo, ma è più semplice. L'approccio garantisce anche valori aggregati corretti quando si gestiscono misure SAP HANA più complesse e in genere genera prestazioni più elevate.

L'elenco Campi include tutte le misure, gli attributi e le gerarchie dalla visualizzazione SAP HANA. Si notino i comportamenti seguenti che si applicano quando si usa questo metodo di connessione:

  • Qualsiasi attributo incluso in almeno una gerarchia è nascosto per impostazione predefinita. Tuttavia, possono essere visualizzati se necessario selezionando Visualizza nascosto dal menu di scelta rapida nell'elenco dei campi. Dallo stesso menu di scelta rapida possono essere resi visibili, se necessario.

  • In SAP HANA è possibile definire un attributo per usare un altro attributo come etichetta. Ad esempio, Product, con valori 1, 2, 3e così via, potrebbe usare ProductName, con valori Bike, Shirt, Glovese così via, come etichetta. In questo caso, un singolo campo Product viene visualizzato nell'elenco dei campi, i cui valori sono le etichette Bike, Shirt, Glovese così via, ma ordinati in base a e con univocità determinata dai valori 1chiave , , 23. Viene creata anche una colonna nascosta Product.Key , consentendo l'accesso ai valori di chiave sottostanti, se necessario.

Tutte le variabili definite nella visualizzazione SAP HANA sottostante vengono visualizzate al momento della connessione e i valori necessari possono essere immessi. Questi valori possono essere modificati in un secondo momento selezionando Trasforma dati dalla barra multifunzione e quindi Modifica parametri dal menu a discesa visualizzato.

Le operazioni di modellazione consentite sono più restrittive rispetto al caso generale quando si usa DirectQuery, data la necessità di garantire che i dati aggregati corretti possano sempre essere ottenuti da SAP HANA. Tuttavia, è comunque possibile apportare molte aggiunte e modifiche, tra cui la definizione di misure, la ridenominazione e la disattivazione dei campi e la definizione dei formati di visualizzazione. Tutte queste modifiche vengono mantenute all'aggiornamento e vengono applicate eventuali modifiche non in conflitto apportate alla visualizzazione SAP HANA.

Restrizioni di modellazione aggiuntive

Le altre restrizioni di modellazione principali per la connessione a SAP HANA tramite DirectQuery (considerate come origine multidimensionale) sono le restrizioni seguenti:

  • Nessun supporto per le colonne calcolate: la possibilità di creare colonne calcolate è disabilitata. Questo significa anche che il raggruppamento e il clustering, che creano colonne calcolate, non sono disponibili.
  • Limitazioni aggiuntive per le misure: esistono altre limitazioni imposte alle espressioni DAX che possono essere usate nelle misure, per riflettere il livello di supporto offerto da SAP HANA.
  • Nessun supporto per la definizione delle relazioni: è possibile eseguire query solo in una singola visualizzazione all'interno di un report e, di conseguenza, non esiste alcun supporto per la definizione delle relazioni.
  • Nessuna vista dati: la vista dati visualizza in genere i dati del livello di dettaglio nelle tabelle. Data la natura delle origini OLAP, ad esempio SAP HANA, questa vista non è disponibile su SAP HANA.
  • I dettagli delle colonne e delle misure sono fissi: l'elenco di colonne e misure visualizzate nell'elenco dei campi è fisso dall'origine sottostante e non può essere modificato. Ad esempio, non è possibile eliminare una colonna né modificarne il tipo di dati. Può tuttavia essere rinominato.
  • Limitazioni aggiuntive in DAX: esistono altre limitazioni per DAX che possono essere usate nelle definizioni di misura, per riflettere le limitazioni nell'origine. Ad esempio, non è possibile usare una funzione di aggregazione su una tabella.

Restrizioni aggiuntive per la visualizzazione

Esistono restrizioni negli oggetti visivi durante la connessione a SAP HANA tramite DirectQuery (considera come origine multidimensionale):

  • Nessuna aggregazione di colonne: non è possibile modificare l'aggregazione per una colonna in un oggetto visivo ed è sempre Non riepilogare.

Considerare SAP HANA come origine relazionale

Quando si sceglie di connettersi a SAP HANA come origine relazionale, diventa disponibile una maggiore flessibilità. Ad esempio, è possibile creare colonne calcolate, includere dati da più viste SAP HANA e creare relazioni tra le tabelle risultanti. Esistono tuttavia differenze rispetto al comportamento quando si considera SAP HANA come origine multidimensionale, in particolare quando la vista SAP HANA contiene misure non additive, ad esempio conteggi distinti o medie, anziché semplici somme e correlate all'efficienza delle query eseguite su SAP HANA.

È utile iniziare chiarire il comportamento di un'origine relazionale, ad esempio SQL Server, quando la query definita in Recupera dati o editor di Power Query esegue un'aggregazione. Nell'esempio seguente una query definita in editor di Power Query restituisce il prezzo medio di ProductID.

Diagram showing a query defined in Power Query Editor that returns the average price by Product ID.

Se i dati sono in fase di importazione in Power BI rispetto all'uso di DirectQuery, la situazione seguente genererà:

  • I dati sono importati al livello di aggregazione definito dalla query creata in editor di Power Query. Ad esempio, prezzo medio per prodotto. Questo risultato è una tabella con le due colonne ProductID e AveragePrice che possono essere usate negli oggetti visivi.
  • In un oggetto visivo, qualsiasi aggregazione successiva, ad esempio Sum, Average, Min e altri, viene eseguita su tali dati importati. Ad esempio, l'inclusione di AveragePrice in un oggetto visivo usa l'aggregazione Sum per impostazione predefinita e restituisce la somma su AveragePrice per ogni ProductID, in questo esempio 13,67. Lo stesso vale per qualsiasi funzione di aggregazione alternativa, ad esempio Min o Average, usata nell'oggetto visivo. Ad esempio, Average of AveragePrice restituisce la media di 6,66, 4 e 3, che equivale a 4,56 e non la media di Price sui sei record della tabella sottostante, ovvero 5,17.

Se DirectQuery su quella stessa origine relazionale viene usata invece di Import, la stessa semantica si applica e i risultati saranno esattamente gli stessi:

  • Data la stessa query, esattamente gli stessi dati vengono presentati al livello di report, anche se i dati non vengono effettivamente importati.

  • In un oggetto visivo, qualsiasi aggregazione successiva, ad esempio Sum, Average e Min, viene eseguita nuovamente su tale tabella logica dalla query. E anche in questo caso, un oggetto visivo contenente AveragePrice restituisce lo stesso valore di 4,56.

Si consideri SAP HANA quando la connessione viene considerata come origine relazionale. Power BI può essere abilitata sia con le visualizzazioni analitiche che con le viste di calcolo in SAP HANA, entrambe le quali possono contenere misure. Ma oggi l'approccio per SAP HANA segue gli stessi principi descritti in precedenza in questa sezione: la query definita in Recupera dati o editor di Power Query determina i dati disponibili e quindi qualsiasi aggregazione successiva in un oggetto visivo si trova su tali dati e lo stesso vale sia per Import che per DirectQuery. Tuttavia, data la natura di SAP HANA, la query definita nella finestra di dialogo Iniziale Recupera dati o editor di Power Query è sempre una query di aggregazione e in genere include misure in cui l'aggregazione effettiva usata è definita dalla vista SAP HANA.

L'equivalente dell'esempio di SQL Server precedente è che è disponibile una vista SAP HANA contenente ID, ProductID, DepotID e misure che includono AveragePrice, definite nella vista come Average of Price.

Se nell'esperienza Recupera dati , le selezioni effettuate per ProductID e la misura AveragePrice definiscono una query sulla vista, richiedendo tali dati aggregati. Nell'esempio precedente, per semplicità viene usato pseudo-SQL che non corrisponde alla sintassi esatta di SAP HANA SQL. Quindi, eventuali altre aggregazioni definite in un oggetto visivo aggregano ulteriormente i risultati di una query di questo tipo. Anche in questo caso, come descritto in precedenza per SQL Server, questo risultato si applica sia per il caso Import che per DirectQuery. Nel caso di DirectQuery, la query da Recupera dati o editor di Power Query viene usata in una sottoselezione all'interno di una singola query inviata a SAP HANA e pertanto non è effettivamente il caso in cui tutti i dati vengano letti prima di aggregare ulteriormente.

Tutte queste considerazioni e comportamenti richiedono le considerazioni importanti seguenti quando si usa DirectQuery su SAP HANA:

  • È necessario prestare attenzione a qualsiasi ulteriore aggregazione eseguita negli oggetti visivi, ogni volta che la misura in SAP HANA non è additivi, ad esempio, non una semplice somma, min o max.

  • In Recupera dati o editor di Power Query devono essere incluse solo le colonne necessarie per recuperare i dati necessari, riflettendo il fatto che il risultato è una query che deve essere una query ragionevole che può essere inviata a SAP HANA. Ad esempio, se sono state selezionate decine di colonne, con il pensiero che potrebbero essere necessarie negli oggetti visivi successivi, anche per DirectQuery un oggetto visivo semplice significa che la query di aggregazione usata nella sottoseleziona contiene quelle decine di colonne, che in genere hanno prestazioni scarse.

Nell'esempio seguente la selezione di cinque colonne (CalendarQuarter, Color, LastName, ProductLine, SalesOrderNumber) nella finestra di dialogo Recupera dati , insieme alla misura OrderQuantity, significa che in un secondo momento la creazione di un oggetto visivo semplice contenente min OrderQuantity genera la query SQL seguente in SAP HANA. L'ombreggiato è la sottoselezionata, contenente la query da Recupera dati/editor di Power Query. Se questa sottoselezione restituisce un risultato di cardinalità elevata, è probabile che le prestazioni di SAP HANA risultanti siano scarse.

Screenshot of a query example, showing the SQL query to SAP HANA.

A causa di questo comportamento, è consigliabile che gli elementi selezionati in Recupera dati o editor di Power Query siano limitati a quelli necessari, mantenendo comunque una query ragionevole per SAP HANA.

Procedure consigliate

Per entrambi gli approcci alla connessione a SAP HANA, le raccomandazioni per l'uso di DirectQuery si applicano anche a SAP HANA, in particolare raccomandazioni correlate a garantire prestazioni ottimali. Per altre informazioni, vedere Uso di DirectQuery in Power BI.

Considerazioni e limitazioni

L'elenco seguente descrive tutte le funzionalità di SAP HANA non completamente supportate o funzionalità che si comportano in modo diverso quando si usa Power BI.

  • Gerarchie figlio padre: le gerarchie figlio padre non sono visibili in Power BI. Questo è dovuto al fatto che Power BI accede a SAP HANA usando l'interfaccia SQL e non è possibile accedere completamente alle gerarchie figlio padre tramite SQL.
  • Altri metadati della gerarchia: la struttura di base delle gerarchie viene visualizzata in Power BI, ma alcuni metadati della gerarchia, ad esempio il controllo del comportamento delle gerarchie incomplete, non hanno alcun effetto. Anche in questo caso, questo fatto è dovuto alle limitazioni imposte dall'interfaccia SQL.
  • Connessione ion tramite SSL: È possibile connettersi usando Import e multidimensionale con TLS, ma non è possibile connettersi alle istanze di SAP HANA configurate per l'uso di TLS per il connettore relazionale.
  • Supporto per le visualizzazioni degli attributi: Power BI può connettersi alle visualizzazioni analitiche e di calcolo, ma non può connettersi direttamente alle visualizzazioni attributo.
  • Supporto per gli oggetti Catalog: Power BI non è in grado di connettersi agli oggetti Catalog.
  • Passare a Variabili dopo la pubblicazione: non è possibile modificare i valori per le variabili SAP HANA direttamente nel servizio Power BI, dopo la pubblicazione del report.

Problemi noti

L'elenco seguente descrive tutti i problemi noti durante la connessione a SAP HANA (DirectQuery) tramite Power BI.

  • Problema di SAP HANA quando si esegue una query per contatori e altre misure: i dati non corretti vengono restituiti da SAP HANA se ci si connette a una vista analitica e una misura Counter e altre misure di rapporto, sono incluse nello stesso oggetto visivo. Questo problema è trattato dalla nota SAP 2128928 (risultati imprevisti quando si eseguono query su una colonna calcolata e un contatore). La misura del rapporto non è corretta in questo caso.

  • Più colonne di Power BI da una singola colonna SAP HANA: per alcune viste di calcolo, in cui viene usata una colonna SAP HANA in più di una gerarchia, SAP HANA espone la colonna come due attributi separati. Questo approccio comporta la creazione di due colonne in Power BI. Queste colonne sono nascoste per impostazione predefinita, ma tutte le query che coinvolgono le gerarchie o direttamente le colonne si comportano correttamente.

Per altre informazioni su DirectQuery, vedere le risorse seguenti: