Introduzione
Gli strumenti Pentaho Data Integration e BA Server vengono forniti con molti driver di database diversi. Tuttavia, a partire dalla versione 7 della Community Edition, non vengono forniti con i driver JDBC per Oracle, SQL Server o MySQL (negli strumenti di integrazione dei dati). I seguenti passaggi descrivono come aggiungere i driver MySQL JDBC a Pentaho.
Segui queste istruzioni sull'installazione di Pentaho BA Server e degli strumenti di integrazione dei dati se gli strumenti non sono ancora stati installati. Dopo aver installato gli strumenti Pentaho, spegni il server BA e il software di integrazione dei dati.
Come ottenere i driver MYSQL JDBC
I driver JDBC per MySQL sono chiamati "Connector/J"
Visita:https://dev.mysql.com/downloads/connector/j/
Scorri verso il basso fino alla sezione con le opzioni di download.
Assicurati che sia selezionato "Indipendente dalla piattaforma"
Per il sistema operativo Windows scarica l'Archivio ZIP
Accedi con il tuo account del sito Web Oracle (o creane uno gratuitamente). Oppure fai clic su Avvia il download collegamento.
Salva il file ZIP in una cartella:
Decomprimi (decomprimi) l'archivio ZIP:
Le istruzioni per copiare i driver JDBC nelle cartelle appropriate negli strumenti Pentaho sono descritte nella pagina successiva.
Si noti che a partire da novembre 2019 gli strumenti Pentaho versione 8.x non funzioneranno direttamente con i driver MySQL Connector versione 8.x più recenti. La soluzione più semplice è utilizzare i driver del connettore MySQL 5.x. Una soluzione alternativa consiste nell'utilizzare i driver MySQL versione 8.x ma utilizzare una connessione generica. Qualche discussione la trovi a questo link. Un altro consiglio è installare il plug-in PDI MySql da Pentaho Marketplace in Pentaho Data Integration.
Copia dei file del driver JDBC nelle cartelle Pentaho BA Server e Data Integration Lib
Individua il file mysql-connector-java-5.1.41-bin.jar (tieni presente che potrebbe avere un nome leggermente diverso a seconda della versione).
Copia questo file .jar nella cartella LIB appropriata nella distribuzione Pentaho Community Edition.
Per Pentaho Data Integration, la cartella di destinazione dovrebbe essere .\Pentaho\data-integration\lib come mostrato di seguito:
Il Pentaho BA Server memorizza i suoi driver nella cartella .\pentaho-server\tomcat\lib. Assicurati che un driver MySQL JDBC non sia già installato. In tal caso, conservare solo la copia più recente del file .jar. Ad esempio, la versione 7.0 di Pentaho Server include MySQL JDBC Driver versione mysql-connector-java-5.1.17. Tuttavia questa versione presenta alcuni bug, quindi assicurati di rimuovere il file mysql-connector-java-5.1.17.jar e sostituirlo con il file mysql-connector-java-5.1.41-bin.jar più recente.
Ora che i driver JDBC sono stati copiati nelle cartelle appropriate, riavvia il Pentaho BA Server (start-pentaho) e avvia gli strumenti di integrazione dei dati (Spoon). Le istruzioni sulla creazione di una connessione al database negli strumenti di integrazione dei dati di Pentaho sono fornite nella pagina successiva.
Configurazione di una connessione MySQL in Pentaho Data Integration
Segui questa serie di passaggi per creare una nuova connessione di database a MySQL dagli strumenti di integrazione dei dati di Pentaho. In Pentaho Data Integration, molti dei passaggi di trasformazione inviano i dati a una tabella di database. Alcuni esempi possono essere trovati in questo tutorial su Pentaho Data Integration.
Prima di iniziare, avrai bisogno delle credenziali di accesso a un'istanza MySQL. Potresti visitare il mio tutorial sulla configurazione di un'istanza MySQL gratuita su GearHost o questo tutorial sull'installazione di MySQL su Windows.
In Pentaho Data Integration, seleziona qualsiasi passaggio di trasformazione che utilizzi un database come output, ad esempio un passaggio Ricerca/Aggiorna dimensione, Inserisci/Aggiorna o Output tabella. Fai clic su Nuovo accanto al Nome connessione per visualizzare la finestra di dialogo Connessione al database come mostrato di seguito.
Assegna un nome alla connessione e quindi seleziona MySQL come Tipo di connessione.
Fornisci il Nome host del server che esegue MySQL. Se hai installato MySQL sul tuo PC o server locale, usa localhost come Nome host . Fornisci il Nome database e utilizza il Numero di porta predefinito di 3306. Infine, dai al database MySQL Nome utente e Password .
Fai clic su Test per assicurarsi che la connessione al database funzioni correttamente.
Se viene visualizzato il seguente errore, assicurati che il file .jar del driver MySQL JDBC sia stato copiato in Pentaho Data Integration lib cartella (come discusso nella pagina precedente di questo tutorial). Esci dallo strumento di integrazione dei dati ed eseguilo di nuovo.
Error connecting to database [MySQLConnetion] : org.pentaho.di.core.exception.KettleDatabaseException: Error occurred while trying to connect to the database Driver class 'org.gjt.mm.mysql.Driver' could not be found, make sure the 'MySQL' driver (jar file) is installed.
Si noti che a partire da novembre 2019 gli strumenti Pentaho versione 8.x non funzioneranno direttamente con i driver MySQL Connector versione 8.x più recenti. La soluzione più semplice è utilizzare i driver del connettore MySQL 5.x. Una soluzione alternativa consiste nell'utilizzare i driver MySQL versione 8.x ma utilizzare una connessione generica. Qualche discussione la trovi a questo link. Un altro consiglio è installare il plug-in PDI MySql da Pentaho Marketplace in Pentaho Data Integration.
Assicurati di impostare lo schema di destinazione in qualsiasi output del database o nei passaggi di ricerca delle dimensioni. In MySQL lo schema può essere lasciato vuoto per utilizzare il database MySQL predefinito.
Se ti sei esercitato a eseguire la trasformazione sul database H2 come destinazione, hai usato per rendere PUBLIC lo schema di destinazione. per MySQL lascia vuoto lo schema di destinazione in modo che venga utilizzato il valore predefinito.
La pagina successiva spiega come configurare una nuova connessione al database e un'origine dati Mondrian in Pentaho BA Server.
Configurazione di un'origine dati MySQL in Pentaho BA Server
Dalla home page della console utente di Pentaho, fai clic su Gestisci origini dati per visualizzare la schermata Gestisci origini dati. Il primo passo da questo punto sarà creare una nuova connessione al database a un database MySQL.
Fai clic sull'icona a forma di ingranaggio per aprire il menu, quindi fai clic su Nuova connessione... voce di menu come mostrato di seguito.
Fornire un nome per la nuova connessione al database. Seleziona MySQL come Tipo di database e quindi fai clic sull'opzione Nativa (JDBC) in Accesso: intestazione. Inserisci il Nome host , Nome database , Numero di porta , Nome utente e Password per il tuo database MySQL. Se MySQL è installato sul tuo PC o server locale, usa localhost come Nome host .
Al termine, fai clic sul Test blu pulsante per testare la connessione al database
In caso di errori, controlla le informazioni di connessione (nome host, nome utente, password ecc.) e quindi ripeti il test.
Se ricevi un errore relativo alle connessioni SSL (la tua connessione potrebbe scadere dopo alcuni minuti), aggiungi il parametro useSSL con il valore false come mostrato di seguito.
Al termine, fai clic su OK pulsante per salvare la nuova connessione al database. La nuova connessione al database dovrebbe ora apparire nell'elenco:
Ora che la connessione è stata creata e testata, è possibile creare un'origine dati Mondrian. Queste istruzioni sono fornite nella pagina successiva.
Creazione di una nuova origine dati in Pentaho BA Server
In Pentaho BA Server, un'origine dati rappresenta uno schema di database multidimensionale Mondrian che si trova sopra un datastore multidimensionale o un database relazionale. L'origine dati richiede una connessione al database sottostante e un modello di dati Mondrian da costruire su di esso. Il Mondrian Data Model è costituito da Dimensioni e Misure. Le Dimensioni contengono campi impilati in una gerarchia. È possibile avere diversi modelli di dati costruiti sulla stessa origine dati sottostante.
Per iniziare a creare una nuova origine dati, fai clic sulla Nuova origine dati blu pulsante. Verrà avviata la procedura guidata origine dati.
Inserisci un nuovo nome per la Sorgente dati e seleziona la Connessione al database . Scegli le tabelle del database come Fonte Tipo. Per questo esempio, lavoreremo con uno schema a stella, quindi selezioniamo l'opzione per Reporting e analisi .
Fai clic su Avanti pulsante e il server Pentaho BA interrogherà lo schema del database sottostante per la connessione al database
La schermata successiva della procedura guidata presenterà un elenco delle tabelle che sono state trovate nello schema dalla connessione al database.
Fai clic su una delle Tabelle disponibili quindi fai clic sul pulsante freccia destra per spostarlo nelle Tabelle selezionate lato. Ripetere questa operazione per ciascuna delle tabelle che verranno incluse nell'origine dati.
Poiché questo esempio utilizza un'opzione "Rapporti e analisi", una delle tabelle del database dovrà essere selezionata come Tabella dei fatti . Una volta apportate queste modifiche, fai clic su Avanti pulsante per passare al passaggio finale per definire i join.
Nota:se non vengono visualizzate chiavi esterne, assicurati di lavorare con il driver JDBC MySQL più recente poiché corregge diversi bug. mysql-connector-java-5.1.17 è una versione precedente fornita con Pentaho Server 7.0. Se aggiorni il driver JDBC, assicurati di riavviare il Pentaho BA Server.
Per ogni coppia di tabelle, fai clic sul Campo chiave nella tabella di sinistra e nel campo chiave associato nella tavola di destra. Quindi fai clic su Crea iscrizione collegamento. Nell'esempio seguente, è stato creato un join tra la tabella sales_fact e quindi la tabella customer_dim utilizzando la chiave comune customer_dim_id.
Ripetere questa operazione per ogni coppia di chiavi. In questo esempio sono presenti una tabella dei fatti e 5 tabelle delle dimensioni che danno luogo alla creazione di 5 join. Se commetti un errore, evidenzia la partecipazione e fai clic su Elimina partecipazione collegamento.
Al termine, fai clic su Fine pulsante.
Fai clic su OK per tornare a Gestisci origini dati schermo.
È stata ora creata una nuova origine dati con un modello dati predefinito. Tuttavia, questo modello di dati richiederà alcune modifiche. Le istruzioni sulla modifica di un modello di dati Mondrian sono fornite nella pagina successiva.
Modifica il modello dati Mondrian per definire dimensioni e misure
Evidenzia l'origine dati, apri l'icona a forma di ingranaggio e seleziona Modifica . Si aprirà l'Editor del modello di origine dati . Il modello predefinito copia tutte le colonne dello schema come Dimensioni e misure. Tuttavia, questo modello predefinito probabilmente non funzionerà poiché le gerarchie devono ancora essere definite.
Cancellazione del modello di dati esistente
Fai clic sul pulsante mostrato di seguito per Cancella il Modello attuale.
Quando viene richiesto di confermare, fare clic su Sì per cancellare il modello
Il modello verrà ora cancellato e le misure e le dimensioni mostreranno un avviso poiché non ci sono contenuti.
Creazione di una nuova misura
Crea una nuova misura trascinando e rilasciando il Fatto sulle vendite da Disponibile accanto alle Misure voce nell'Analisi scheda.
Rimuovere ciascuno degli ID dimensione e l'ID ORDINE dalle misure poiché queste non sono realmente misure (sono le chiavi esterne). Fare clic su Customer dim id, quindi fare clic sulla X blu per rimuoverlo. Ripetere per gli altri ID dimensione.
Creazione della dimensione CLIENTE
Con le misure in atto, è possibile creare le dimensioni. Fai clic su Dimensioni voce e quindi fare clic su Aggiungi dimensione pulsante come mostrato di seguito.
Assegna un nome a questa nuova dimensione CLIENTE (assicurati di utilizzare nomi non plurali per le dimensioni) e fai clic su OK pulsante.
Il CLIENTE la dimensione verrà creata con una Gerarchia CLIENTE al di sotto di essa:
Apri il Customer Dim nel pannello Disponibile. Trascina il campo COUNTRY_NAME e rilascialo nella Gerarchia CLIENTE come mostrato di seguito. Potrebbero essere necessari alcuni tentativi per farlo al posto giusto.
Il risultato mostrerà il NOME DEL PAESE che appare all'interno della Gerarchia CLIENTE.
Ripetere i passaggi precedenti per aggiungere STATE_PROVINCE e CITY alla Gerarchia CLIENTI. Per ciascuno dei campi della Gerarchia CLIENTE, modificare il tipo di geografia in modo che corrisponda. Ad esempio COUNTRY_NAME dovrebbe avere il tipo di geografia "Paese" e STATE_PROVINCE dovrebbe avere il tipo di geografia "Stato".
Creazione della dimensione della data
Fare clic sulla voce DIMENSIONI e quindi fare clic su Aggiungi dimensione pulsante. Assegna un nome alla nuova dimensione DATE. Fare clic sul nome della dimensione DATE e selezionare la casella "Dimensione temporale":
Trascina e rilascia l'anno di vendita, il trimestre di vendita, il nome del mese di vendita, il giorno dell'anno di vendita e la data di vendita nella DATE
Gerarchia . Per ogni campo, seleziona il Tipo di livello temporale appropriato e Formato colonna sorgente .
La dimensione DATE completata dovrebbe essere simile alla seguente:
Creazione della dimensione PRODOTTO
Fai clic su Dimensioni voce e quindi fare clic su Aggiungi dimensione pulsante. Assegna un nome alla nuova dimensione PRODOTTO. Trascina e rilascia CATEGORY_NAME, SUB_CATEGORY_NAME e PRODUCT_NAME nella Gerarchia PRODUCT .
Fai clic su OK per chiudere l'Editor del modello dell'origine dati.
Esci dalla console utente di Pentaho, spegni il server Pentaho utilizzando lo script stop-pentaho, quindi riavvia Pentaho Server.
Ora che il Mondrian Data Model è stato creato, la nuova Data Source è pronta per essere utilizzata per creare visualizzazioni su dashboard o per scopi di reporting.
Creazione di un grafico semplice utilizzando la Creazione guidata grafici OLAP
Crea una nuova dashboard (o modifica una dashboard esistente) e utilizza la procedura guidata OLAP per creare un nuovo grafico
Di seguito è riportata la query MDX generata automaticamente dalla procedura guidata OLAP:
select NON EMPTY({Descendants([CUSTOMER].[All CUSTOMERs] ,[CUSTOMER].[CITY])}) on ROWS, NON EMPTY({Descendants([PRODUCT].[All PRODUCTs] ,[PRODUCT].[SUB CATEGORY NAME])}) on Columns from [Customer_Sales]