sql >> Database >  >> RDS >> Mysql

MySQL JDBC-stuurprogramma's installeren in Pentaho Data Integration en BA Server-tools

Inleiding

De Pentaho Data Integration en BA Server tools worden geleverd met veel verschillende databasedrivers. Vanaf versie 7 van de Community Edition worden ze echter niet geleverd met JDBC-stuurprogramma's voor Oracle, SQL Server of MySQL (in gegevensintegratietools). De volgende stappen beschrijven hoe u de MySQL JDBC-stuurprogramma's aan Pentaho kunt toevoegen.

Volg deze instructies voor het installeren van Pentaho BA Server en Data Integration Tools als de tools nog niet zijn geïnstalleerd. Sluit na het installeren van de Pentaho-tools de BA-server en de gegevensintegratiesoftware af.

De MYSQL JDBC-stuurprogramma's verkrijgen

De JDBC-stuurprogramma's voor MySQL worden "Connector/J" genoemd

Bezoek:https://dev.mysql.com/downloads/connector/j/

Scrol omlaag naar het gedeelte met de downloadopties.

Zorg ervoor dat "Platformonafhankelijk" is geselecteerd

Download voor het Windows-besturingssysteem het ZIP-archief

Log in met uw Oracle-websiteaccount (of maak er gratis een aan). Of klik op Start gewoon mijn download link.

Sla het ZIP-bestand op in een map:

Pak het ZIP-archief uit (decomprimeer):

Instructies voor het kopiëren van de JDBC-stuurprogramma's naar de juiste mappen in de Pentaho-tools worden beschreven op de volgende pagina.

Merk op dat vanaf november 2019 de Pentaho versie 8.x tools niet direct zullen werken met de nieuwere MySQL Connector versie 8.x drivers. De eenvoudigste oplossing is om de MySQL 5.x Connector-stuurprogramma's te gebruiken. Een tijdelijke oplossing is om de MySQL versie 8.x-stuurprogramma's te gebruiken, maar een generieke verbinding te gebruiken. Een discussie is te vinden via deze link. Een andere tip is om de PDI MySql-plug-in van Pentaho Marketplace te installeren in Pentaho Data Integration.

De JDBC Driver-bestanden kopiëren naar de Pentaho BA Server- en Data Integration Lib-mappen

Zoek het bestand mysql-connector-java-5.1.41-bin.jar (merk op dat het een iets andere naam kan hebben, afhankelijk van de versie).

Kopieer dit .jar-bestand naar de juiste LIB-map in de Pentaho Community Edition-distributie.

Voor Pentaho Data Integration moet de doelmap .\Pentaho\data-integration\lib zijn, zoals hieronder weergegeven:

De Pentaho BA Server slaat zijn stuurprogramma's op in de map .\pentaho-server\tomcat\lib. Zorg ervoor dat er nog geen MySQL JDBC-stuurprogramma is geïnstalleerd. Bewaar in dat geval alleen de meest recente kopie van het .jar-bestand. Versie 7.0 van Pentaho Server bevat bijvoorbeeld MySQL JDBC Driver versie mysql-connector-java-5.1.17. Deze versie heeft echter enkele bugs, dus zorg ervoor dat u dat mysql-connector-java-5.1.17.jar-bestand verwijdert en vervangt door het meest recente mysql-connector-java-5.1.41-bin.jar-bestand.

Nu de JDBC-stuurprogramma's naar de juiste mappen zijn gekopieerd, start u de Pentaho BA-server opnieuw (start-pentaho) en start u de hulpprogramma's voor gegevensintegratie (Spoon). Instructies voor het maken van een databaseverbinding in de Pentaho Data Integration Tools vindt u op de volgende pagina.

Een MySQL-verbinding opzetten in Pentaho Data Integration

Volg deze reeks stappen om een ​​nieuwe databaseverbinding met MySQL te maken vanuit de Pentaho Data Integration-tools. In Pentaho Data Integration sturen veel van de transformatiestappen de gegevens naar een databasetabel. Enkele voorbeelden zijn te vinden in deze tutorial over Pentaho Data Integration.

Voordat u aan de slag gaat, heeft u inloggegevens voor een MySQL-instantie nodig. Misschien wil je mijn tutorial bezoeken over het opzetten van een gratis MySQL-instantie op GearHost of deze tutorial over het installeren van MySQL op Windows.

Kies in Pentaho Data Integration een transformatiestap die een database als uitvoer gebruikt, zoals een stap Dimension Lookup/Update, Insert/Update of Table Output. Klik op de Nieuw naast de verbindingsnaam om het dialoogvenster Databaseverbinding te openen, zoals hieronder weergegeven.

Geef een naam voor de verbinding en selecteer vervolgens MySQL als het verbindingstype.

Geef de Hostnaam op van de server waarop MySQL draait. Als u MySQL op uw lokale pc of server hebt geïnstalleerd, gebruikt u localhost als de Hostnaam . Geef de Databasenaam op en gebruik het standaard Poortnummer van 3306. Geef ten slotte de MySQL-database Gebruikersnaam en Wachtwoord .

Klik op de Test om te controleren of de databaseverbinding goed werkt.

Als de volgende fout verschijnt, zorg er dan voor dat het MySQL JDBC-stuurprogramma .jar-bestand is gekopieerd naar de Pentaho Data Integration lib map (zoals besproken op de vorige pagina van deze tutorial). Sluit het hulpprogramma voor gegevensintegratie af en voer het opnieuw uit.

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.

Merk op dat vanaf november 2019 de Pentaho versie 8.x tools niet direct zullen werken met de nieuwere MySQL Connector versie 8.x drivers. De eenvoudigste oplossing is om de MySQL 5.x Connector-stuurprogramma's te gebruiken. Een tijdelijke oplossing is om de MySQL versie 8.x-stuurprogramma's te gebruiken, maar een generieke verbinding te gebruiken. Een discussie is te vinden via deze link. Een andere tip is om de PDI MySql-plug-in van Pentaho Marketplace te installeren in Pentaho Data Integration.

Zorg ervoor dat u het doelschema instelt in elke database-uitvoer of dimensie-opzoekstappen. In MySQL kan het schema leeg worden gelaten om de standaard MySQL-database te gebruiken.

Als u het uitvoeren van transformatie tegen de H2-database als doel had geoefend, maakte u PUBLIC het doelschema. laat voor MySQL het doelschema leeg zodat de standaard wordt gebruikt.

Op de volgende pagina wordt beschreven hoe u een nieuwe databaseverbinding en Mondriaan-gegevensbron in Pentaho BA Server instelt.

Een MySQL-gegevensbron instellen in Pentaho BA Server

Klik op de startpagina van de Pentaho-gebruikersconsole op Gegevensbronnen beheren om het scherm Gegevensbronnen beheren te openen. De eerste stap vanaf dit punt is het maken van een nieuwe databaseverbinding met een MySQL-database.

Klik op het tandwielpictogram om het menu te openen en klik vervolgens op Nieuwe verbinding… menu-item zoals hieronder weergegeven.

Geef een naam op voor de nieuwe databaseverbinding. Selecteer MySQL als het Databasetype en klik vervolgens op de optie Native (JDBC) onder de Toegang: rubriek. Vul de Hostnaam in , Databasenaam , Poortnummer , Gebruikersnaam , en Wachtwoord voor uw MySQL-database. Als MySQL op uw lokale pc of server is geïnstalleerd, gebruikt u localhost als de Hostnaam .

Als u klaar bent, klikt u op de blauwe Test knop om de databaseverbinding te testen

Als er fouten zijn, controleer dan de verbindingsinformatie (hostnaam, gebruikersnaam, wachtwoord enz.) en herhaal de test.

Als je een foutmelding krijgt met betrekking tot SSL-verbindingen (je verbinding kan na een paar minuten een time-out krijgen), voeg dan de useSSL-parameter toe met de waarde false zoals hieronder weergegeven.

Als u klaar bent, klikt u op de OK om de nieuwe databaseverbinding op te slaan. De nieuwe databaseverbinding zou nu in de lijst moeten verschijnen:

Nu de verbinding is gemaakt en getest, kan er een Mondriaan Data Source worden gemaakt. Deze instructies staan ​​op de volgende pagina.

Een nieuwe gegevensbron maken in Pentaho BA Server

In Pentaho BA Server vertegenwoordigt een gegevensbron een Mondriaan multidimensionaal databaseschema dat bovenop een multidimensionaal gegevensarchief of een relationele database staat. De Data Source vereist een verbinding met de onderliggende database en daarbovenop moet een Mondriaan Data Model worden gebouwd. Het Mondriaan Data Model bestaat uit Afmetingen en Maatregelen. De dimensies bevatten velden die in een hiërarchie zijn gestapeld. Het is mogelijk om meerdere verschillende gegevensmodellen te hebben die bovenop dezelfde onderliggende gegevensbron zijn gebouwd.

Om te beginnen met het maken van een nieuwe gegevensbron, klikt u op de blauwe Nieuwe gegevensbron knop. De wizard Gegevensbron wordt gestart.

Vul een nieuwe naam in voor de Gegevensbron en selecteer de Databaseverbinding . Kies Database Tabel(len) als de Bron Type. Voor dit voorbeeld werken we met een sterschema, dus selecteren we de optie voor Rapportage en analyse .

Klik op de Volgende knop en de Pentaho BA-server zal het schema van de onderliggende database opvragen voor de databaseverbinding

In het volgende scherm van de wizard wordt een lijst weergegeven met de tabellen die zijn gevonden in het schema van de databaseverbinding.

Klik op een van de Beschikbare tabellen en klik vervolgens op de pijl naar rechts om deze naar de Geselecteerde tabellen . te verplaatsen kant. Herhaal dit voor elk van de tabellen die in de gegevensbron worden opgenomen.

Omdat in dit voorbeeld de optie "Rapportage en analyse" wordt gebruikt, moet een van de databasetabellen worden geselecteerd als de feitentabel . Zodra deze wijzigingen zijn aangebracht, klikt u op de Volgende knop om naar de laatste stap te gaan om joins te definiëren.

Opmerking:als er geen externe sleutels verschijnen, zorg er dan voor dat u met de nieuwste MySQL JDBC-driver werkt, aangezien deze verschillende bugs verhelpt. mysql-connector-java-5.1.17 is een oudere versie die wordt geleverd met Pentaho Server 7.0. Als u het JDBC-stuurprogramma bijwerkt, moet u de Pentaho BA-server opnieuw opstarten.

Klik voor elk paar tafels op het Sleutelveld in de linkertabel en het bijbehorende Sleutelveld in de rechtertabel. Klik vervolgens op de Maak lidmaatschap koppeling. In het onderstaande voorbeeld is een join gemaakt tussen de tabel sales_fact en vervolgens de tabel customer_dim met behulp van de algemene sleutel customer_dim_id.

Herhaal dit voor elk paar sleutels. In dit voorbeeld is er één feitentabel en 5 dimensietabellen, wat resulteert in het maken van 5 joins. Als je een fout maakt, markeer dan de join en klik op Delete Join link.

Als u klaar bent, klikt u op Voltooien knop.

Klik op de OK om terug te keren naar Gegevensbronnen beheren scherm.

Er is nu een nieuwe gegevensbron gemaakt met een standaard gegevensmodel. Dit datamodel zal echter enige bewerking nodig hebben. Instructies voor het bewerken van een Mondriaan-gegevensmodel vindt u op de volgende pagina.

Bewerk het Mondriaan-gegevensmodel om afmetingen en afmetingen te definiëren

Markeer de gegevensbron, trek het tandwielpictogram naar beneden en selecteer Bewerken . Dit opent de Databronmodel-editor . Het standaardmodel kopieert alle kolommen uit het schema als dimensies en metingen. Dit standaardmodel zal echter waarschijnlijk niet werken omdat hiërarchieën nog moeten worden gedefinieerd.

Het bestaande gegevensmodel opruimen

Klik op de onderstaande knop om Wissen het huidige model.

Wanneer u wordt gevraagd om te bevestigen, klikt u op Ja om het model te wissen

Het model wordt nu leeggemaakt en de afmetingen en afmetingen tonen een waarschuwing omdat er geen inhoud is.

Een nieuwe meting maken

Maak een nieuwe meting door het Verkoopfeit . te slepen en neer te zetten uit de Beschikbare kant naar de Maatregelen vermelding onder de Analyse tabblad.

Verwijder elk van de dimensie-ID's en de ORDER-ID van de metingen, aangezien dit niet echt metingen zijn (het zijn de externe sleutels). Klik op Klant dim-ID en klik vervolgens op de blauwe X om het te verwijderen. Herhaal dit voor de andere dimensie-ID's.

De dimensie KLANT creëren

Als de Maatregelen aanwezig zijn, kunnen de Dimensies worden gemaakt. Klik op de Afmetingen invoer en klik vervolgens op de Dimensie toevoegen knop zoals hieronder getoond.

Geef deze nieuwe dimensie de naam KLANT (gebruik niet-meervoudsnamen voor de dimensies) en klik op OK knop.

De KLANT dimensie wordt gemaakt met een KLANT-hiërarchie eronder:

Open de klantdim in het paneel Beschikbaar. Sleep het veld COUNTRY_NAME en zet het neer op de CUSTOMER Hiërarchie zoals hieronder weergegeven. Het kan een paar pogingen kosten om dit op de juiste plek te krijgen.

Het resultaat toont de NAAM VAN HET LAND die verschijnt in de KLANT-hiërarchie.

Herhaal de bovenstaande stappen om de STATE_PROVINCE en CITY toe te voegen aan de KLANT-hiërarchie. Wijzig voor elk van de velden in de KLANT-hiërarchie het type Geografie zodat het overeenkomt. COUNTRY_NAME moet bijvoorbeeld het aardrijkskundetype 'Land' hebben en STATE_PROVINCE moet het aardrijkskundetype 'Staat' hebben.

De datumdimensie creëren

Klik op het item DIMENSIONS en klik vervolgens op Dimensie toevoegen knop. Noem de nieuwe dimensie DATE. Klik op de naam van de DATE-dimensie en vink het vakje voor "Time Dimension" aan:

Sleep het verkoopjaar, het verkoopkwartaal, de naam van de verkoopmaand, de verkoopdag van het jaar en de verkoopdatum naar de DATUM
Hiërarchie . Selecteer voor elk veld het juiste Tijdniveautype en Indeling bronkolom .

De voltooide DATE-dimensie moet er als volgt uitzien:

De PRODUCT-dimensie creëren

Klik op de Afmetingen invoer en klik vervolgens op de Dimensie toevoegen knop. Noem de nieuwe dimensie PRODUCT. Sleep de CATEGORY_NAME, SUB_CATEGORY_NAME en PRODUCT_NAME onder de PRODUCT Hiërarchie .

Klik op de OK om de Data Source Model Editor te sluiten.

Log uit bij de Pentaho User Console, sluit de Pentaho-server af met het stop-pentaho-script en start vervolgens Pentaho Server opnieuw.

Nu het Mondriaan Data Model is gemaakt, is de nieuwe Data Source klaar om gebruikt te worden om visualisaties op een dashboard te maken of voor rapportagedoeleinden.

Een eenvoudige grafiek maken met de OLAP-kaartwizard

Maak een nieuw dashboard (of bewerk een bestaand dashboard) en gebruik de OLAP-wizard om een ​​nieuw diagram te maken

Hieronder vindt u de MDX-query die automatisch wordt gegenereerd door de OLAP-wizard:

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]


  1. MySQL TABLE-instructie

  2. Uren aftrekken van de nu() functie

  3. Hoe SalesForce als gegevensbron in Pyramid te verbinden

  4. Hoe maak en vul je een tabel in een enkele stap als onderdeel van een CSV-importbewerking?