Condividi tramite


Collegarsi alle fonti di dati SAP HANA utilizzando DirectQuery in Power BI

È possibile connettersi alle origini dati SAP HANA direttamente usando DirectQuery, spesso necessario per set di dati di grandi dimensioni che superano le risorse disponibili per supportare i modelli di importazione. Esistono due approcci per la connessione a SAP HANA in modalità DirectQuery, ognuna con funzionalità diverse:

  • Considera SAP HANA come origine multidimensionale (impostazione predefinita): In questo caso, il comportamento è simile a quando Power BI si connette ad altre origini multidimensionali, ad esempio SAP Business Warehouse o Analysis Services. Quando ci si connette a SAP HANA come origine multidimensionale, 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. Non è possibile aggiungere colonne calcolate o altre personalizzazioni dei dati nel modello semantico. Quando vengono creati oggetti visivi, i dati aggregati vengono recuperati direttamente da SAP HANA. Considerare SAP HANA come origine multidimensionale è 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 dati relazionale. Questo approccio offre maggiore flessibilità. Tra le altre cose, è possibile aggiungere colonne calcolate e includere dati da altre origini, ma è necessario prestare attenzione per garantire che le misure vengano aggregate come previsto. Evitare misure non additivi. Assicurarsi inoltre di usare visualizzazioni semplici con poche colonne e join per evitare problemi di prestazioni. Considerare la possibilità di ricreare le misure nel modello semantico, ma tenere presente che le misure complesse potrebbero non aggregarsi. Le gerarchie SAP HANA non sono disponibili quando si usa SAP HANA come origine relazionale.

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

Screenshot della finestra di dialogo Opzioni, che mostra le opzioni di DirectQuery.

L'opzione per considerare SAP HANA come origine relazionale controlla il metodo di connessione 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. Se l'opzione è attualmente deselezionata, dopo aver aggiunto una nuova connessione a SAP HANA usando Recupera dati, tale connessione considera 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 come origine relazionale continuano a considerare SAP HANA come origine relazionale anche se l'opzione è ora deselezionata.

I due metodi di connessione SAP HANA costituiscono un comportamento diverso e non è possibile passare un report esistente da un metodo di connessione 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. Quando ci si connette a SAP HANA come origine multidimensionale, si applicano le considerazioni seguenti:

  • Nel Strumento di navigazione Recupero dati, è possibile selezionare una singola vista 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.

  • Quando una misura viene utilizzata in un visual, viene eseguita una query su SAP HANA per recuperare il valore della misura al livello di aggregazione necessario per il visual. 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. Non è inoltre possibile eliminare colonne o modificare i tipi di dati.

Trattare SAP HANA come una fonte multidimensionale offre meno flessibilità rispetto all'alternativa dell'approccio relazionale, ma è più semplice. Questo metodo di connessione garantisce valori aggregati corretti quando si gestiscono misure SAP HANA più complesse e in genere genera prestazioni più elevate.

L'elenco Field include tutte le misure, gli attributi e le gerarchie della vista 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 richiesto 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, possono usare ProductName, con valori Bike, Shirt, Glovese così via, come etichetta. In questo caso, viene visualizzato un singolo campo Product nell'elenco dei campi, i cui valori sono le etichette Bike, Shirt, Glovese così via, ordinati e resi unici dai valori chiave 1, 2, 3. 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 successivamente selezionando Trasforma i dati dalla barra multifunzione e quindi Modifica parametri dal menu a tendina 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 alcune aggiunte e modifiche, tra cui la definizione di misure, la ridenominazione e la nascondere 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

Oltre alle limitazioni indicate in precedenza, tenere presente le restrizioni di modellazione seguenti quando ci si connette a SAP HANA come origine multidimensionale:

  • Nessun supporto per le colonne calcolate: La possibilità di creare colonne calcolate è disabilitata. Questo significa anche che il raggruppamento e il clustering, che si basano su 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. Ad esempio, non è possibile usare una funzione di aggregazione su una tabella.
  • Nessun supporto per la definizione delle relazioni: è possibile eseguire query solo su una singola visualizzazione all'interno di un report e, di conseguenza, non esiste alcun supporto per la definizione delle relazioni.
  • Nessuna Vista Tabella: La Vista Tabella generalmente visualizza i dati dettagliati nelle tabelle. Data la natura delle origini multidimensionali, questa vista non è disponibile quando si usa SAP HANA come origine multidimensionale.
  • I dettagli delle colonne e delle misure sono fissati: Le colonne e le misure nell'elenco dei campi sono determinate dall'origine sottostante e non possono essere modificate. Ad esempio, non è possibile eliminare una colonna né modificarne il tipo di dati. Può tuttavia essere rinominato.

Restrizioni aggiuntive per la visualizzazione

Ci sono restrizioni negli elementi visivi quando ci si connette a SAP HANA 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

Per connettersi a SAP HANA come origine relazionale, è necessario selezionare File>Opzioni e impostazioni e quindi Opzioni>DirectQuery, dopodiché selezionare l'opzione Tratta SAP HANA come origine relazionale.

Quando si usa SAP HANA come origine relazionale, è disponibile una maggiore flessibilità. Ad esempio, è possibile creare colonne calcolate, includere dati da più viste SAP HANA e creare relazioni tra le tabelle risultanti. Tuttavia, esistono differenze rispetto al comportamento durante la connessione a 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. Le misure non additivi possono produrre risultati errati. Le misure possono anche ridurre l'efficienza dell'ottimizzazione del piano di query in SAP HANA e portare a prestazioni scadenti e timeout delle query.

Comprendere SAP HANA come origine relazionale

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

Diagramma che mostra una query definita nell'editor di Power Query che restituisce il prezzo medio in base all'ID prodotto.

Se i dati sono stati importati in Power BI invece di usare DirectQuery, la situazione seguente genererebbe:

  • I dati sono importati al livello di aggregazione definito dalla query creata nell'editor di Power Query. Ad esempio, prezzo medio per prodotto. Questo fatto si traduce in una tabella con le due colonne ProductID e AveragePrice che possono essere utilizzate nelle visualizzazioni.
  • In una visualizzazione, qualsiasi aggregazione successiva, ad esempio Somma, Media, Mine altre, viene eseguita sui dati importati. Ad esempio, includere AveragePrice in un oggetto visivo utilizza l'aggregazione Sum per impostazione predefinita e restituirà la somma su AveragePrice per ogni ProductIDin questo esempio 13,67. Lo stesso vale per qualsiasi funzione di aggregazione alternativa, ad esempio Min o Media, usata nella visualizzazione. Ad esempio, Media di MediaPrezzo restituisce la media di 6,66, 4 e 3, che equivale a 4,56 e non alla media di Prezzo sui sei record della tabella sottostante, cioè 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 interrogazione, esattamente gli stessi dati vengono presentati al livello di reportistica, anche se i dati non vengono effettivamente importati.

  • In una visualizzazione, qualsiasi successiva aggregazione, come Sum, Averagee Min, viene eseguita nuovamente su quella tabella logica derivata dalla query. Inoltre, un oggetto visivo contenente la media di PrezzoMedio restituisce lo stesso valore di 4,56.

Si consideri SAP HANA quando la connessione viene considerata come origine relazionale. Power BI può funzionare sia con le viste analitiche che con le viste di calcolo in SAP HANA, entrambe le quali possono contenere misure. Tuttavia, oggi l'approccio per SAP HANA segue gli stessi principi descritti in precedenza in questa sezione: la query definita in Ottieni dati o nell'editor di Power Query determina i dati disponibili, e quindi qualsiasi aggregazione successiva in un oggetto visivo riguarda tali dati. Lo stesso vale sia per l'Importazione che per DirectQuery. Tuttavia, data la natura di SAP HANA, la query definita nella finestra di dialogo iniziale Recupera dati o nell'Editor di Power Query è sempre una query di tipo aggregato e include in genere misure dove le aggregazioni effettive utilizzate sono definite dalla vista di SAP HANA.

L'equivalente dell'esempio di SQL Server precedente è rappresentato dal fatto che è presente una vista SAP HANA contenente ID, ProductID, DepotIDe misure, tra cui AveragePrice, definita nella vista come Media del prezzo.

Se nell'esperienza di Recupera dati, le selezioni effettuate sono state per ProductID e la misura AveragePrice, questo definisce una query sulla visualizzazione, richiedendo quei 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 elemento 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 di Recupera dati o del Power Query Editor viene usata in una sottoquery all'interno di una singola query inviata a SAP HANA e pertanto non è infatti vero che tutti i dati vengano letti prima di essere ulteriormente aggregati.

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

  • È necessario prestare attenzione a qualsiasi ulteriore aggregazione eseguita nelle visualizzazioni, ogni volta che la misura in SAP HANA è non additiva, ad esempio, non una semplice Sum, Mino Max.

  • In Recupera dati o Editor di Power Query, è necessario includere solo le colonne richieste per recuperare i dati necessari, riflettendo il fatto che il risultato è una query che deve essere sufficientemente ottimizzata per poter essere inviata a SAP HANA. Ad esempio, se sono state selezionate decine di colonne, pensando che potrebbero essere necessarie per gli oggetti visivi successivi, allora anche in DirectQuery, un oggetto visivo semplice comporta che la query di aggregazione usata nella sottoselezione contenga quelle decine di colonne, che in genere offrono prestazioni scarse e possono incontrare timeout.

Nell'esempio seguente, selezionando cinque colonne (CalendarQuarter, Color, LastName, ProductLine, SalesOrderNumber) nella finestra di dialogo Recupera dati, insieme alla misura OrderQuantity, significa che in seguito la creazione di un oggetto visivo semplice contenente l'Min OrderQuantity restituisce la query SQL seguente in SAP HANA. La parte ombreggiata è la sottoselezione, contiene la query da Recupera dati / Power Query Editor. Se questa sottoselezione restituisce un risultato di cardinalità elevata, è probabile che le prestazioni di SAP HANA risultanti siano scarse o si verifichino timeout. L'impatto sulle prestazioni non è dovuto al fatto che Power BI richieda tutti i campi nella selezione secondaria; la maggior parte di questi campi verrà eliminata dalla query esterna. L'impatto è invece dovuto alle misure nella selezione secondaria forzandola a materializzare nel server HANA.

Screenshot di un esempio di query che mostra la query SQL in 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, pur ottenendo comunque una query ragionevole per SAP HANA. Se possibile, considerate di ricreare tutte le misure necessarie nel modello semantico e di utilizzare SAP HANA in modo più simile a un'origine relazionale tradizionale.

Procedure consigliate

Per entrambi i metodi per connettersi a SAP HANA, seguire le indicazioni generali per l'uso di DirectQuery, in particolare raccomandazioni correlate a garantire prestazioni ottimali delle query. Per ulteriori informazioni, vedere sull'utilizzo 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 genitore-figlio: Le gerarchie genitore-figlio non sono visibili in Power BI. Ciò è 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, tuttavia alcuni metadati della gerarchia, ad esempio il controllo del comportamento delle gerarchie incomplete, non hanno alcun effetto. Anche in questo caso, ciò è dovuto alle limitazioni imposte dall'interfaccia SQL.
  • Connessione tramite SSL: è possibile connettersi usando le modalità Import e multi-dimensionale con TLS, ma non è possibile connettersi alle istanze di SAP HANA configurate per l'uso di TLS per il metodo relazionale di connessione.
  • Supporto per le visualizzazioni degli attributi: Power BI può connettersi alle visualizzazioni analitiche e di calcolo, ma non può connettersi direttamente alle visualizzazioni degli attributi.
  • Supporto per gli oggetti del Catalogo: Power BI non è in grado di connettersi agli oggetti del Catalogo.
  • Passare alle 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 da Nota SAP 2128928 (risultati imprevisti quando si effettua una query su una colonna calcolata e un contatore). La misura del rapporto non è corretta in questo caso.

  • Più colonne Power BI da un'unica colonna SAP HANA: In alcune viste di calcolo, quando una colonna di SAP HANA è utilizzata in più di una gerarchia, SAP HANA espone la colonna come due attributi distinti. 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: