Zephyrnet-logotyp

Mät prestanda för AWS Glue Data Quality för ETL-pipelines | Amazon webbtjänster

Datum:

Under de senaste åren har datasjöar blivit en vanlig arkitektur, och datakvalitetsvalidering är en kritisk faktor för att förbättra återanvändbarheten och konsistensen av datan. AWS limdatakvalitet minskar ansträngningen som krävs för att validera data från dagar till timmar, och ger datorrekommendationer, statistik och insikter om de resurser som krävs för att köra datavalidering.

AWS Glue Data Quality bygger på DeeQu, ett verktyg med öppen källkod som utvecklats och används på Amazon för att beräkna datakvalitetsmått och verifiera datakvalitetsbegränsningar och förändringar i datadistributionen så att du kan fokusera på att beskriva hur data ska se ut istället för att implementera algoritmer.

I det här inlägget tillhandahåller vi benchmarkresultat för att köra allt mer komplexa datakvalitetsregeluppsättningar över en fördefinierad testdatauppsättning. Som en del av resultaten visar vi hur AWS Glue Data Quality ger information om körtiden för extrahera, transformera och ladda (ETL) jobb, resurserna som mäts i termer av databehandlingsenheter (DPU) och hur du kan spåra kostnaden att köra AWS Glue Data Quality för ETL-pipelines genom att definiera anpassad kostnadsrapportering i AWS Cost Explorer.

Lösningsöversikt

Vi börjar med att definiera vår testdatauppsättning för att utforska hur AWS Glue Data Quality automatiskt skalas beroende på indatauppsättningar.

Dataset detaljer

Testdataset innehåller 104 kolumner och 1 miljon rader lagrade i parkettformat. Du kan ladda ner datamängden eller återskapa det lokalt med Python-skriptet som finns i Repository. Om du väljer att köra generatorskriptet måste du installera pandas och mimesis paket i din Python-miljö:

pip install pandas mimesis

Datauppsättningsschemat är en kombination av numeriska, kategoriska och strängvariabler för att ha tillräckligt med attribut för att använda en kombination av inbyggd AWS Glue Data Quality regeltyper. Schemat replikerar några av de vanligaste attributen som finns i finansmarknadsdata, såsom instrumentticker, omsatta volymer och prisprognoser.

Regler för datakvalitet

Vi kategoriserar några av de inbyggda AWS Glue Data Quality regeltyperna för att definiera benchmarkstrukturen. Kategorierna överväger om reglerna utför kolumnkontroller som inte kräver inspektion på radnivå (enkla regler), rad-för-rad-analys (mediumregler) eller kontroller av datatyp, och så småningom jämför radvärden med andra datakällor (komplexa regler). ). Följande tabell sammanfattar dessa regler.

Enkla regler Medium regler Komplexa regler
Kolumnräkning DistinctValuesCount Kolumnvärden
ColumnDataType Är komplett Fullständighet
KolumnExist Sum Referensintegritet
ColumnNamesMatchPattern Standardavvikelse KolumnKorrelation
RowCount Betyda RowCountMatch
Kolumnlängd . .

Vi definierar åtta olika AWS Glue ETL-jobb där vi kör datakvalitetsreglerna. Varje jobb har ett olika antal datakvalitetsregler kopplade till sig. Varje jobb har också en tillhörande användardefinierad kostnadsfördelningstagg som vi använder för att skapa en kostnadsrapport för datakvalitet i AWS Cost Explorer senare.

Vi tillhandahåller klartextdefinitionen för varje regeluppsättning i följande tabell.

Jobb namn Enkla regler Medium regler Komplexa regler Antal regler tagg Definition
regeluppsättning-0 0 0 0 0 dqjob:rs0 -
regeluppsättning-1 0 0 1 1 dqjob:rs1 Länk
regeluppsättning-5 3 1 1 5 dqjob:rs5 Länk
regeluppsättning-10 6 2 2 10 dqjob:rs10 Länk
regeluppsättning-50 30 10 10 50 dqjob:rs50 Länk
regeluppsättning-100 50 30 20 100 dqjob:rs100 Länk
regeluppsättning-200 100 60 40 200 dqjob:rs200 Länk
regeluppsättning-400 200 120 80 400 dqjob:rs400 Länk

Skapa AWS Glue ETL-jobb som innehåller datakvalitetsreglerna

Vi laddar upp testdatauppsättning till Amazon enkel lagringstjänst (Amazon S3) och även två ytterligare CSV-filer som vi kommer att använda för att utvärdera referensintegritetsregler i AWS Glue Data Quality (isokoder.csv och exchanges.csv) efter att de har lagts till i AWS Glue Data Catalog. Slutför följande steg:

  1. På Amazon S3-konsolen skapar du en ny S3-bucket på ditt konto och laddar upp testdatauppsättning.
  2. Skapa en mapp i S3-hinken som heter isocodes och ladda upp isokoder.csv fil.
  3. Skapa en annan mapp i S3-bucketen som heter utbyte och ladda upp exchanges.csv fil.
  4. På AWS Glue-konsolen, kör två AWS Glue-sökrobotar, en för varje mapp för att registrera CSV-innehållet i AWS Glue Data Catalog (data_quality_catalog). För instruktioner, se Lägga till en AWS Glue Crawler.

AWS Glue-sökrobotar genererar två tabeller (exchanges och isocodes) som en del av AWS Glue Data Catalog.

AWS limdatakatalog

Nu ska vi skapa AWS identitets- och åtkomsthantering (JAG ÄR) roll som kommer att antas av ETL-jobben vid körning:

  1. På IAM-konsolen skapar du en ny IAM-roll som heter AWSGlueDataQualityPerformanceRole
  2. För Typ av betrodd enhet, Välj AWS-tjänst.
  3. För Service eller användningsfallväljer Lim.
  4. Välja Nästa.

Val av förtroendeenhet för AWS IAM

  1. För Tillståndspolicyer, stiga på AWSGlueServiceRole
  2. Välja Nästa.
    AWS IAM lägger till behörighetspolicyer
  3. Skapa och bifoga en ny inline-policy (AWSGlueDataQualityBucketPolicy) med följande innehåll. Byt ut platshållaren med S3-skopnamnet som du skapade tidigare:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "s3:GetObject",
          "Resource": [
            "arn:aws:s3:::<your_Amazon_S3_bucket_name>/*"
          ]
        }
      ]
    }

Därefter skapar vi ett av AWS Glue ETL-jobben, ruleset-5.

  1. På AWS Lim-konsolen, under ETL jobb välj i navigeringsfönstret Visuell ETL.
  2. I Skapa jobb avsnitt väljer Visuell ETL.x
    Översikt över lediga jobb i AWS Glue Studio
  3. Lägg till en i Visual Editor Datakälla – S3 Bucket källnod:
    1. För S3 URL, ange S3-mappen som innehåller testdatauppsättningen.
    2. För Dataformatväljer Parkett.

    Översikt över Amazon S3-datakällan i AWS Glue Studio

  4. Skapa en ny åtgärdsnod, Transform: Evaluate-Data-Catalog:
  5. För Nodföräldrar, välj den nod du skapade.
  6. Lägg till regeluppsättning-5 definition under Regeluppsättningsredigerare.
    Datakvalitetsregler för regeluppsättning-5
  7. Bläddra till slutet och under Prestandakonfiguration, Gör det möjligt Cache-data.

Aktivera alternativet Cachedata

  1. Enligt Jobb detaljer, För IAM-rollväljer AWSGlueDataQualityPerformanceRole.
    Välj tidigare skapad AWS IAM-roll
  2. I Tags avsnitt, definiera dqjob tagga som rs5.

Denna tagg kommer att vara olika för vart och ett av datakvalitets-ETL-jobben; vi använder dem i AWS Cost Explorer för att granska kostnaden för ETL-jobb.

Definiera dqjob-taggen för ruleset-5-jobb

  1. Välja Save.
  2. Upprepa dessa steg med resten av regeluppsättningarna för att definiera alla ETL-jobb.

Översikt över jobb definierade i AWS Glue Studio

Kör AWS Glue ETL-jobben

Utför följande steg för att köra ETL-jobben:

  1. Välj på AWS Lim-konsolen Visuell ETL under ETL jobb i navigeringsfönstret.
  2. Välj ETL-jobbet och välj Kör jobb.
  3. Upprepa för alla ETL-jobb.

Välj ett AWS-limjobb och välj Kör jobb uppe till höger

När ETL-jobben är klara, Jobbkörningsövervakning sidan kommer att visa jobbdetaljerna. Som visas i följande skärmdump, a DPU timmar kolumn finns för varje ETL-jobb.

Översikt över AWS Limjobbsövervakning

Granska prestanda

Följande tabell sammanfattar varaktigheten, DPU-timmar och uppskattade kostnader för att köra de åtta olika datakvalitetsregeluppsättningarna över samma testdatauppsättning. Observera att alla regeluppsättningar har körts med hela testdatasetet som beskrivits tidigare (104 kolumner, 1 miljon rader).

ETL jobbnamn Antal regler tagg Varaktighet (sek) Antal DPU-timmar Antal DPU:er Kostnad ($)
regeluppsättning-400 400 dqjob:rs400 445.7 1.24 10 $0.54
regeluppsättning-200 200 dqjob:rs200 235.7 0.65 10 $0.29
regeluppsättning-100 100 dqjob:rs100 186.5 0.52 10 $0.23
regeluppsättning-50 50 dqjob:rs50 155.2 0.43 10 $0.19
regeluppsättning-10 10 dqjob:rs10 152.2 0.42 10 $0.18
regeluppsättning-5 5 dqjob:rs5 150.3 0.42 10 $0.18
regeluppsättning-1 1 dqjob:rs1 150.1 0.42 10 $0.18
regeluppsättning-0 0 dqjob:rs0 53.2 0.15 10 $0.06

Kostnaden för att utvärdera en tom regeluppsättning är nära noll, men den har inkluderats eftersom den kan användas som ett snabbtest för att validera IAM-rollerna som är kopplade till AWS Glue Data Quality-jobb och läsbehörigheter till testdataset i Amazon S3. Kostnaden för datakvalitetsjobb börjar bara öka efter att ha utvärderat regeluppsättningar med mer än 100 regler, som förblir konstant under det antalet.

Vi kan observera att kostnaden för att köra datakvalitet för den största regeluppsättningen i riktmärket (400 regler) fortfarande ligger något över $0.50.

Datakvalitetskostnadsanalys i AWS Cost Explorer

För att se ETL-jobbtaggarna för datakvalitet i AWS Cost Explorer måste du aktivera de användardefinierade kostnadsfördelningstaggarna först.

När du har skapat och tillämpat användardefinierade taggar på dina resurser kan det ta upp till 24 timmar innan taggnycklarna visas på sidan för kostnadsfördelningstaggar för aktivering. Det kan sedan ta upp till 24 timmar för taggnycklarna att aktiveras.

  1. På AWS Kostnadsutforskare konsol, välj Kostnadsutforskare sparade rapporter i navigeringsfönstret.
  2. Välja Skapa ny rapport.
    Skapa ny AWS Cost Explorer-rapport
  3. Välja Kostnad och användning som rapporttyp.
  4. Välja Skapa rapport.
    Bekräfta skapandet av en ny AWS Cost Explorer-rapport
  5. För Datumintervall, ange ett datumintervall.
  6. För kornighet¸ välja Dagligen.
  7. För Dimensioneraväljer tagg, välj sedan dqjob märka.
    Rapportera parameterval i AWS Cost Explorer
  8. Enligt Tillämpade filter, Välj den dqjob taggen och de åtta taggarna som används i datakvalitetsregeluppsättningarna (rs0, rs1, rs5, rs10, rs50, rs100, rs200 och rs400).
    Välj de åtta taggarna som används för att tagga AWS-limjobben för datakvalitet
  9. Välja Ansök.

Kostnads- och användningsrapporten kommer att uppdateras. X-axeln visar regeluppsättningstaggarna för datakvalitet som kategorier. De Kostnad och användning grafen i AWS Cost Explorer kommer att uppdateras och visa den totala månadskostnaden för de senaste körda ETL-jobben med datakvalitet, aggregerade efter ETL-jobb.

AWS Cost Explorer-rapporten visar kostnaderna för att utföra AWS Glue Studio-jobben med datakvalitet

Städa upp

För att rensa upp infrastrukturen och undvika extra avgifter, slutför följande steg:

  1. Töm S3-hinken som ursprungligen skapades för att lagra testdatauppsättningen.
  2. Ta bort ETL-jobben du skapade i AWS Glue.
  3. Radera AWSGlueDataQualityPerformanceRole IAM roll.
  4. Ta bort den anpassade rapporten som skapats i AWS Cost Explorer.

Slutsats

AWS Glue Data Quality tillhandahåller ett effektivt sätt att införliva datakvalitetsvalidering som en del av ETL-pipelines och skalas automatiskt för att ta emot ökande datamängder. De inbyggda datakvalitetsregeltyperna erbjuder ett brett utbud av alternativ för att anpassa datakvalitetskontrollerna och fokusera på hur din data ska se ut istället för att implementera odifferentierad logik.

I den här benchmarkanalysen visade vi hur regeluppsättningar för AWS Glue Data Quality i vanliga storlekar har liten eller ingen overhead, medan kostnaden i komplexa fall ökar linjärt. Vi har också granskat hur du kan tagga AWS Glue Data Quality-jobb för att göra kostnadsinformation tillgänglig i AWS Cost Explorer för snabb rapportering.

AWS Glue Data Quality är allmänt tillgänglig i alla AWS-regioner där AWS Glue är tillgängligt. Läs mer om AWS Glue Data Quality och AWS Glue Data Catalogue i Komma igång med AWS Glue Data Quality från AWS Glue Data Catalog.


Om författarna


Ruben Afonso Francos
Reuben Afonso är en Global Financial Services Solutions Architect med AWS. Han tycker om att arbeta med analyser och AI/ML-utmaningar, med en passion för automatisering och optimering. När han inte är på jobbet tycker han om att hitta gömda platser utanför den upptrampade stigen runt Barcelona.


Kalyan Kumar Neelampudi (KK)
Kalyan Kumar Neelampudi (KK)
är en Specialist Partner Solutions Architect (Data Analytics & Generative AI) på AWS. Han fungerar som teknisk rådgivare och samarbetar med olika AWS-partners för att designa, implementera och bygga praxis kring dataanalys och AI/ML-arbetsbelastningar. Utanför jobbet är han en badmintonentusiast och kulinarisk äventyrare, utforskar lokala rätter och reser med sin partner för att upptäcka nya smaker och upplevelser.

Gonzalo herreros
Gonzalo herreros
är Senior Big Data Architect på AWS Glue-teamet.

plats_img

Senaste intelligens

plats_img