sql >> Database teknologi >  >> RDS >> Database

Sådan genereres DB-testdata

IRI RowGen-brugere kan generere strukturelt og referentielt korrekte syntetiske testdata for en hel database i en enkelt operation. Testdataene afspejler produktionskarakteristika (såsom værdiområder og frekvenser), der normalt forekommer i database- eller ETL-operationer, men kræver ikke adgang til eller maskering af rigtige data.

Slutbrugerjobguider til RowGen i IRI Workbench GUI (bygget på Eclipse™) hjælper med generering af testdata. En af de mest nyttige er New RowGen Database Test Data Job wizard, som bygger et helt RowGen-projekt til automatisk at udfylde flere tabeller på én gang med forudsorterede nøgleværdier og mulighed for tilpasning. Selvom den er afhængig af eksisterende metadata for hver testtabel, kan du også tilpasse - og generalisere via regler - genereringen af ​​kolonneværdier.

I denne artikel vil jeg demonstrere, hvordan du kan bruge IRI Workbench til at oprette måltabeller i Oracle og diagrammere deres skema, og derefter bruge en af ​​dens RowGen-guider til at generere og indlæse testdata i disse tabeller.

Som en sidebemærkning vil jeg også have, at RowGen indsætter tilfældigt valgte reelle værdier i bestemte kolonner fra sæt fildata. En sætfil er en tekstfil med en eller flere rækker, som kan have flere tabulator-separerede kolonner, som du angiver eller automatisk udpakker i en anden Workbench-guide, Indstil fil fra kolonne. I mit tilfælde oprettede jeg dog mine sætfiler manuelt:emp.set, item.set, project.set, quantity.set, salary.set, department.set og category.set.

Her er de trin, jeg fulgte, idet jeg bemærkede, at jeg havde mine måltabeloplysninger, og at du skal bruge det samme:

Trin 1. Opret tomme måltabeller

  1. Etabler databaseforbindelsen (i dette tilfælde Oracle) via JDBC i IRI Workbenchs Data Source Explorer (DSE)
  2. Specificer Dept, Emp, Project, Category, Item, Item_Use, Sale ved at skrive deres CREATE TABLE- og ALTER TABLE-udsagn ind i en .sql-fil, der er redigeret i DSE's SQL scrapbog
  3. Gem den i en projektmappe, og højreklik på den for at udføre SQL-filen for at bygge tabellerne

Trin 2. Opret og vis deres ER-diagram

  1. Vælg Nyt, IRI-projekt fra oven over værktøjslinjen, og opret en ny mappe
  2. Klik på den mappe, og fremhæv derefter de 7 nye tabeller ovenfor i DSE
  3. Højreklik på IRI, og vælg derefter New ER diagram model
  4. Dette opretter en ny skemamodel og fil, schema.sqlschema, i din projektmappe

Bemærk, at DSE og ER Diagramming-værktøjet fra IRI begge er DB-agnostiske.

Trin 3. Fremstil testdata med RowGen Database Test Data Wizard

  1. CTRL-klik for at vælge de 7 tabeller i DSE igen
  2. Højreklik og vælg IRI, New Database Test Data Job
  3. Klik på Næste, når guiden åbner, da du allerede har valgt de tabeller, der skal udfyldes:

  • Klik på Næste, og vælg SQL*Loader som populationsmetode på skærmbilledet Indstillinger
  • Angiv standardantallet af rækker til 1000 pr. tabel, og bemærk, at jeg også kan variere dette antal:
    1. Klik på Næste for at gå videre til dialogboksen Regelkonfiguration, hvor du kan tilføje eller ændre forskellige genereringsregler på feltniveau, der er genereret grafisk i dialoger fra regelvælgeren:

    Da det er her, jeg betinget vil indsætte tilfældigt udvalgte rigtige data (fra mine sætfiler), i samme kolonner på tværs af flere tabeller, vil jeg anvende genereringen som regel, når kolonnenavnet er i overensstemmelse med et mønster, jeg angiver.

    1. Jeg starter min anvendelse af sæt data med "item" fra den fil, og så tilføj nu mønsterfeltet add Item_Name* og klik test for matches for at bekræfte, om (og hvor) det kolonnenavn findes
    2. Vælg derefter et felt i menuen Regelindstillinger og vælg Indstil fil. Jeg gennemser min item.set-fil for at angive dens brug i en kolonne med navn som eller ligesom Item_Name.
    3. Jeg gentager disse trin for at anvende data fra mine sætfiler til kolonner opkaldt efter Category_Name, Dept_Num, Emp_Name, Item_Name for at forbedre testdatarealismen:

    1. Klik på Næste for at komme til denne joboversigtsskærm:

    1. Klik på Udfør for at fuldføre guiden.

    RowGen-guiden oprettede automatisk scripts til kontrolsprog i almindelig tekst (.rcl), der specificerer genereringen af testdata for hver tabel, såvel som afhængige sætfiler (for referenceintegritet), SQL*Loader-kontrolfiler og en batchfil til udfør alt på én gang, i eller uden for IRI Workbench.

    Kørsel af batchfilen, som RowGen producerede, opretter alle de nødvendige testdata i flade filer og udfylder alle måltabellerne med disse data, som du valgte i guiden (via ODBC eller dit DB-indlæsningsværktøj), i den rækkefølge, der er nødvendig for at bevare primær- udenlandske nøglerelationer. De bulk-indlæste tabeller var forudsorteret på indeksnøglen for hver tabel, og værdierne i de indstillede filer blev tilfældigt indsat i de højre kolonner.

    Dette IRI Workbench-skærmbillede viser et af RowGen-jobscripterne og en måltabel:

    Alle RowGen-jobscripts blev gemt i den mappe, jeg valgte i begyndelsen, og er tilgængelige til ændring, genbrug, teamdeling, versionskontrol osv. Jobflowmodellen, der er oprettet til generering af testdata, kan også diagrammes i visuel workflow editor, med ETL og andre IRI data management projekter.

    Kontakt [email protected] hvis du har brug for hjælp til at planlægge eller bruge denne guide.


    1. hvordan får man det første eller (et hvilket som helst) element fra en LiveData List i Android MVVM-arkitektur?

    2. CROSS JOIN vs INNER JOIN i SQL

    3. Omskrivning af mysql vælg for at reducere tid og skrivning af tmp til disk

    4. SQL Server bruger høj CPU, når der søges i nvarchar-strenge