sql >> Database >  >> RDS >> Database

DB-testgegevens genereren

IRI RowGen-gebruikers kunnen in één bewerking structureel en referentieel correcte synthetische testgegevens genereren voor een volledige database. De testgegevens weerspiegelen productiekenmerken (zoals waardenbereiken en frequenties) die normaal worden aangetroffen in database- of ETL-bewerkingen, maar vereisen geen toegang tot of maskering van echte gegevens.

Taakwizards voor eindgebruikers voor RowGen in de IRI Workbench GUI (gebouwd op Eclipse™) helpen bij het genereren van testgegevens. Een van de handigste is de Nieuwe RowGen Database Test Data Job wizard, die een heel RowGen-project bouwt om automatisch meerdere tabellen tegelijk te vullen met vooraf gesorteerde sleutelwaarden en de mogelijkheid voor aanpassing. Hoewel het afhankelijk is van bestaande metadata voor elke testtabel, kunt u ook het genereren van kolomwaarden aanpassen - en generaliseren via regels.

In dit artikel zal ik demonstreren hoe u IRI Workbench kunt gebruiken om doeltabellen in Oracle te maken en hun schema in diagramvorm te brengen, en vervolgens een van de RowGen-wizards kunt gebruiken om testgegevens te genereren en in die tabellen te laden.

Even terzijde, ik wil ook dat RowGen willekeurig geselecteerde echte waarden in bepaalde kolommen van ingestelde bestandsgegevens invoegt. Een setbestand is een tekstbestand met een of meer rijen, die meerdere, door tabs gescheiden kolommen kunnen hebben die u aanlevert of automatisch uitpakt in een andere Workbench-wizard, Bestand instellen vanuit kolom. In mijn geval heb ik mijn setbestanden echter handmatig gemaakt:emp.set, item.set, project.set, hoeveelheid.set, salaris.set, afdeling.set en categorie.set.

Dit zijn de stappen die ik heb gevolgd, waarbij ik opmerkte dat ik mijn doeltabelinformatie had en dat u dezelfde nodig hebt:

Stap 1. Maak lege doeltabellen

  1. Stel de databaseverbinding (in dit geval Oracle) tot stand via JDBC in IRI Workbench's Data Source Explorer (DSE)
  2. Geef Dept, Emp, Project, Category, Item, Item_Use, Sale op door hun CREATE TABLE- en ALTER TABLE-statements te schrijven in een .sql-bestand dat is bewerkt in het SQL-plakboek van DSE
  3. Sla het op in een projectmap en klik er met de rechtermuisknop op om het SQL-bestand uit te voeren om de tabellen te bouwen

Stap 2. Maak en toon hun ER-diagram

  1. Selecteer boven de werkbalk Nieuw, IRI-project en maak een nieuwe map
  2. Klik op die map en markeer vervolgens de 7 nieuwe tabellen hierboven in de DSE
  3. Klik met de rechtermuisknop op IRI en selecteer vervolgens Nieuw ER-diagrammodel
  4. Hiermee wordt een nieuw schemamodel en bestand, schema.sqlschema, in uw projectmap gemaakt

Merk op dat de DSE- en de ER-diagramtool van IRI beide DB-agnostisch zijn.

Stap 3. Produceer testgegevens met de RowGen Database Test Data Wizard

  1. CTRL-klik om die 7 tabellen opnieuw in de DSE te selecteren
  2. Klik met de rechtermuisknop en selecteer IRI, New Database Test Data Job
  3. Klik op Volgende wanneer de wizard wordt geopend, omdat u de tabellen die u wilt invullen al vooraf heeft geselecteerd:

  • Klik op Volgende en selecteer in het scherm Opties SQL*Loader als de populatiemethode
  • Geef het standaard aantal rijen op van 1000 per tabel, en merk op dat ik dit aantal ook kan variëren:
    1. Klik op Volgende om door te gaan naar het dialoogvenster Regelconfiguratie, waar u verschillende generatieregels op veldniveau kunt toevoegen of wijzigen die grafisch zijn gegenereerd in dialoogvensters van de Regelkiezer:

    Omdat ik hier voorwaardelijk willekeurig geselecteerde echte gegevens (uit mijn setbestanden) invoeg in gelijke kolommen over verschillende tabellen, zal ik de generatie als regel toepassen wanneer de kolomnaam overeenkomt met een patroon dat ik opgeef.

    1. Ik begin mijn toepassing van setgegevens met 'item' uit dat bestand, en voeg nu het patroonveld toe, voeg Item_Name* toe en klik op testen voor overeenkomsten om te controleren of (en waar) die kolomnaam bestaat
    2. Selecteer vervolgens een veld in het menu Regelopties en selecteer Bestand instellen. Ik blader naar mijn item.set-bestand om het gebruik ervan te specificeren in een kolom met de naam als of zoals Item_Name.
    3. Ik herhaal deze stappen om gegevens uit mijn setbestanden toe te passen voor kolommen met de naam Category_Name, Dept_Num, Emp_Name, Item_Name om het realisme van testgegevens te vergroten:

    1. Klik op Volgende om naar dit taakoverzichtsscherm te gaan:

    1. Klik op Voltooien om de wizard te voltooien.

    De RowGen-wizard heeft automatisch de regeltaalscripts in platte tekst (.rcl) gemaakt die het genereren van testgegevens voor elke tabel specificeren, evenals afhankelijke setbestanden (voor referentiële integriteit), SQL*Loader-controlebestanden en een batchbestand om voer alles tegelijk uit, binnen of buiten de IRI Workbench.

    Door het batchbestand uit te voeren dat RowGen heeft geproduceerd, worden alle benodigde testgegevens in platte bestanden gemaakt en worden alle doeltabellen gevuld met die gegevens zoals u hebt gekozen in de wizard (via ODBC of uw DB-laadhulpprogramma), in de volgorde die nodig is om primaire- relaties met buitenlandse sleutels. De in bulk geladen tabellen waren voorgesorteerd op de indexsleutel voor elke tabel en de waarden in de ingestelde bestanden werden willekeurig in de juiste kolommen ingevoegd.

    Deze schermafbeelding van IRI Workbench toont een van de RowGen-taakscripts en een doeltabel:

    Alle RowGen-taakscripts zijn opgeslagen in de map die ik in het begin had geselecteerd en zijn beschikbaar voor wijziging, hergebruik, teamdeling, versiebeheer, enz. Het taakstroommodel dat is gemaakt voor het genereren van testgegevens kan ook worden weergegeven in de visuele workflow-editor, met ETL en andere IRI-gegevensbeheerprojecten.

    Neem contact op met [email protected] als je hulp nodig hebt bij het plannen of gebruiken van deze wizard.


    1. Afbeeldingen toewijzen aan Tree View-knooppunten-2

    2. 'IF' in 'SELECT'-statement - kies uitvoerwaarde op basis van kolomwaarden

    3. Door komma's gescheiden waarden in de MySQL IN-clausule

    4. Tekst invoegen met enkele aanhalingstekens in PostgreSQL