Pointblank hanteert een andere benadering voor datakwaliteit. Het hoeft geen vervelende technische taak te zijn. Het kan juist een proces worden dat gericht is op duidelijke communicatie tussen teamleden. Terwijl andere validatiebibliotheken zich uitsluitend richten op het vangen van fouten, blinkt Pointblank uit in zowel het vinden van problemen als het delen van inzichten. Onze mooie, aanpasbare rapporten maken van validatieresultaten gesprekken met belanghebbenden, waardoor datakwaliteitsproblemen onmiddellijk begrijpelijk en uitvoerbaar worden voor je hele team.
Begin in minuten, niet in uren. Pointblank's AI-aangedreven DraftValidation functie analyseert je data en stelt automatisch intelligente validatieregels voor. Dus je hoeft niet meer naar een leeg validatiescript te staren en je af te vragen waar je moet beginnen. Pointblank kan je datakwaliteitsreis een kickstart geven zodat je je kunt concentreren op wat er het meest toe doet.
Of je nu een data scientist bent die snel datakwaliteitsresultaten moet communiceren, een data engineer die robuuste pipelines bouwt, of een analist die datakwaliteitsresultaten presenteert aan zakelijke belanghebbenden, Pointblank helpt je datakwaliteit te veranderen van een nagedachte in een concurrentievoordeel.
De DraftValidation klasse gebruikt LLM's om je data te analyseren en een volledig validatieplan te genereren met intelligente suggesties. Dit helpt je snel te beginnen met datavalidatie of een nieuw project op te starten.
import pointblank as pb
# Laad je data
data = pb.load_dataset("game_revenue") # Een voorbeeld dataset
# Gebruik DraftValidation om een validatieplan te genereren
pb.DraftValidation(data=data, model="anthropic:claude-opus-4-6")De uitvoer is een volledig validatieplan met intelligente suggesties gebaseerd op je data:
import pointblank as pb
# Het validatieplan
validation = (
pb.Validate(
data=data,
label="Draft Validation",
thresholds=pb.Thresholds(warning=0.10, error=0.25, critical=0.35)
)
.col_vals_in_set(columns="item_type", set=["iap", "ad"])
.col_vals_gt(columns="item_revenue", value=0)
.col_vals_between(columns="session_duration", left=3.2, right=41.0)
.col_count_match(count=11)
.row_count_match(count=2000)
.rows_distinct()
.interrogate()
)
validationKopieer, plak en pas het gegenereerde validatieplan aan naar je behoeften.
Pointblank's aaneenschakelbare API maakt validatie eenvoudig en leesbaar. Hetzelfde patroon geldt altijd: (1) begin met Validate, (2) voeg validatiestappen toe, en (3) eindig met interrogate().
import pointblank as pb
validation = (
pb.Validate(data=pb.load_dataset(dataset="small_table"))
.col_vals_gt(columns="d", value=100) # Valideer waarden > 100
.col_vals_le(columns="c", value=5) # Valideer waarden <= 5
.col_exists(columns=["date", "date_time"]) # Controleer of kolommen bestaan
.interrogate() # Uitvoeren en resultaten verzamelen
)
# Krijg het validatierapport in de REPL met:
validation.get_tabular_report().show()
# Vanuit een notebook gebruik je simpelweg:
validationZodra je een ondervraagd validation object hebt, kun je verschillende methoden gebruiken om inzichten te extraheren zoals:
- gedetailleerde rapporten krijgen voor individuele stappen om te zien wat er mis ging
- tabellen filteren gebaseerd op validatieresultaten
- problematische data extraheren voor debugging
- Werkt met je bestaande stack: Integreert naadloos met Polars, Pandas, DuckDB, MySQL, PostgreSQL, SQLite, Parquet, PySpark, Snowflake en meer!
- Mooie, interactieve rapporten: Kristalheldere validatieresultaten die problemen markeren en helpen bij het communiceren van datakwaliteit
- Samenvoegbare validatiepipeline: Schakel validatiestappen aaneen tot een complete datakwaliteitsworkflow
- Drempelgebaseerde waarschuwingen: Stel 'waarschuwing', 'fout' en 'kritiek' drempels in met aangepaste acties
- Praktische uitvoer: Gebruik validatieresultaten om tabellen te filteren, problematische data te extraheren of downstream processen te triggeren
import pointblank as pb
import polars as pl
# Laad je data
sales_data = pl.read_csv("sales_data.csv")
# Maak een uitgebreide validatie
validation = (
pb.Validate(
data=sales_data,
tbl_name="sales_data", # Naam van de tabel voor rapportage
label="Praktijkvoorbeeld", # Label voor de validatie, verschijnt in rapporten
thresholds=(0.01, 0.02, 0.05), # Stel drempels in voor waarschuwingen, fouten en kritieke problemen
actions=pb.Actions( # Definieer acties voor elke drempeloverschrijding
critical="Groot datakwaliteitsprobleem gevonden in stap {step} ({time})."
),
final_actions=pb.FinalActions( # Definieer eindacties voor de gehele validatie
pb.send_slack_notification(
webhook_url="https://hooks.slack.com/services/your/webhook/url"
)
),
brief=True, # Voeg automatisch gegenereerde samenvattingen toe voor elke stap
lang="nl",
)
.col_vals_between( # Controleer numerieke bereiken met precisie
columns=["price", "quantity"],
left=0, right=1000
)
.col_vals_not_null( # Zorg dat kolommen die eindigen op '_id' geen null-waarden hebben
columns=pb.ends_with("_id")
)
.col_vals_regex( # Valideer patronen met regex
columns="email",
pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
)
.col_vals_in_set( # Controleer categorische waarden
columns="status",
set=["pending", "shipped", "delivered", "returned"]
)
.conjointly( # Combineer meerdere voorwaarden
lambda df: pb.expr_col("revenue") == pb.expr_col("price") * pb.expr_col("quantity"),
lambda df: pb.expr_col("tax") >= pb.expr_col("revenue") * 0.05
)
.interrogate()
)Groot datakwaliteitsprobleem gevonden in stap 7 (2025-04-16 15:03:04.685612+00:00).
# Krijg een HTML-rapport dat je kunt delen met je team
validation.get_tabular_report().show("browser")# Krijg een rapport van falende records van een specifieke stap
validation.get_step_report(i=3).show("browser") # Krijg falende records van stap 3Voor teams die draagbare, versiegecontroleerde validatieworkflows nodig hebben, ondersteunt Pointblank YAML-configuratiebestanden. Dit maakt het gemakkelijk om validatielogica te delen tussen verschillende omgevingen en teamleden, zodat iedereen op dezelfde lijn zit.
validation.yaml
validate:
data: small_table
tbl_name: "small_table"
label: "Aan de slag validatie"
steps:
- col_vals_gt:
columns: "d"
value: 100
- col_vals_le:
columns: "c"
value: 5
- col_exists:
columns: ["date", "date_time"]Voer de YAML-validatie uit
import pointblank as pb
# Voer validatie uit vanuit YAML-configuratie
validation = pb.yaml_interrogate("validation.yaml")
# Krijg de resultaten net zoals elke andere validatie
validation.get_tabular_report().show()Deze benadering is perfect voor:
- CI/CD-pipelines: Bewaar validatieregels samen met je code
- Teamsamenwerking: Deel validatielogica in een leesbaar formaat
- Omgevingsconsistentie: Gebruik dezelfde validatie in ontwikkeling, staging en productie
- Documentatie: YAML-bestanden dienen als levende documentatie van je datakwaliteitsvereisten
Pointblank bevat een krachtig CLI-hulpprogramma genaamd pb waarmee je datavalidatieworkflows direct vanaf de commandoregel kunt uitvoeren. Perfect voor CI/CD-pipelines, geplande datakwaliteitscontroles of snelle validatietaken.
Verken je data
# Krijg een snelle preview van je data
pb preview small_table
# Preview data van GitHub URLs
pb preview "https://github.com/user/repo/blob/main/data.csv"
# Controleer op ontbrekende waarden in Parquet-bestanden
pb missing data.parquet
# Genereer kolomsamenvattingen van databaseverbindingen
pb scan "duckdb:///data/sales.ddb::customers"Voer essentiële validaties uit
# Voer validatie uit vanuit YAML-configuratiebestand
pb run validation.yaml
# Voer validatie uit vanuit Python-bestand
pb run validation.py
# Controleer op dubbele rijen
pb validate small_table --check rows-distinct
# Valideer data direct van GitHub
pb validate "https://github.com/user/repo/blob/main/sales.csv" --check col-vals-not-null --column customer_id
# Verifieer geen null-waarden in Parquet-datasets
pb validate "data/*.parquet" --check col-vals-not-null --column a
# Extraheer falende data voor debugging
pb validate small_table --check col-vals-gt --column a --value 5 --show-extractIntegreer met CI/CD
# Gebruik exit-codes voor automatisering in eenregelige validaties (0 = slagen, 1 = falen)
pb validate small_table --check rows-distinct --exit-code
# Voer validatieworkflows uit met exit-codes
pb run validation.yaml --exit-code
pb run validation.py --exit-codeTestdata nodig voor je validatieworkflows? De functie generate_dataset() creëert realistische, locale-bewuste synthetische data op basis van schemadefinities. Zeer nuttig voor het ontwikkelen van pipelines zonder productiedata, het uitvoeren van CI/CD-tests met reproduceerbare scenario's, of het prototypen van workflows voordat productiedata beschikbaar is.
import pointblank as pb
# Definieer een schema met veldbeperkingen
schema = pb.Schema(
user_id=pb.int_field(min_val=1, unique=True),
name=pb.string_field(preset="name"),
email=pb.string_field(preset="email"),
age=pb.int_field(min_val=18, max_val=100),
status=pb.string_field(allowed=["active", "pending", "inactive"]),
)
# Genereer 10 rijen realistische testdata
data = pb.generate_dataset(schema, n=10, seed=23)
pb.preview(data)De generator ondersteunt geavanceerde datageneratie met deze mogelijkheden:
- Realistische data met presets: Gebruik ingebouwde presets zoals
"name","email","address","phone", enz. - User agent strings: Genereer zeer gevarieerde, realistische browser user agent strings uit 17 browsercategorieën met meer dan 42.000 unieke combinaties
- Ondersteuning voor 100 landen: Genereer locale-specifieke data (bijv.
country="DE"voor Duitse adressen) - Veldbeperkingen: Beheer bereiken, patronen, uniciteit en toegestane waarden
- Meerdere uitvoerformaten: Retourneert standaard Polars DataFrames, maar ondersteunt ook Pandas (
output="pandas") of dictionaries (output="dict")
- Complete validatieworkflow: Van datatoegang tot validatie tot rapportage in één pipeline
- Gebouwd voor samenwerking: Deel resultaten met collega's via mooie interactieve rapporten
- Praktische uitvoer: Krijg precies wat je nodig hebt: aantallen, extracten, samenvattingen of volledige rapporten
- Flexibele implementatie: Gebruik in notebooks, scripts of datapipelines
- Synthetische datageneratie: Creëer realistische testdata met meer dan 30 presets, user agent strings, locale-bewuste opmaak en ondersteuning voor 100 landen
- Aanpasbaar: Stem validatiestappen en rapportage af op jouw specifieke behoeften
- Internationalisatie: Rapporten kunnen worden gegenereerd in 40 talen, waaronder Engels, Spaans, Frans en Duits
Bezoek onze documentatiesite voor:
We horen graag van je! Verbind met ons:
- GitHub Issues voor bugrapporten en functieaanvragen
- Discord-server voor discussies en hulp
- Bijdragerichtlijnen als je wilt helpen Pointblank te verbeteren
Je kunt Pointblank installeren met pip:
pip install pointblankJe kunt Pointblank ook installeren van Conda-Forge door:
conda install conda-forge::pointblankAls je Polars of Pandas niet hebt geïnstalleerd, moet je er één installeren om Pointblank te gebruiken.
pip install "pointblank[pl]" # Installeer Pointblank met Polars
pip install "pointblank[pd]" # Installeer Pointblank met PandasOm Pointblank te gebruiken met DuckDB, MySQL, PostgreSQL of SQLite, installeer je Ibis met de juiste backend:
pip install "pointblank[duckdb]" # Installeer Pointblank met Ibis + DuckDB
pip install "pointblank[mysql]" # Installeer Pointblank met Ibis + MySQL
pip install "pointblank[postgres]" # Installeer Pointblank met Ibis + PostgreSQL
pip install "pointblank[sqlite]" # Installeer Pointblank met Ibis + SQLitePointblank gebruikt Narwhals om te werken met Polars en Pandas DataFrames, en integreert met Ibis voor database- en bestandsformaatondersteuning. Deze architectuur biedt een consistente API voor het valideren van tabulaire data uit verschillende bronnen.
Er zijn veel manieren om bij te dragen aan de voortdurende ontwikkeling van Pointblank. Sommige bijdragen kunnen eenvoudig zijn (zoals typefouten corrigeren, documentatie verbeteren, problemen melden voor functieverzoeken of bugs, enz.) en andere vereisen mogelijk meer tijd en zorg (zoals vragen beantwoorden en PR's indienen met codewijzigingen). Weet dat alles wat je kunt doen om te helpen zeer gewaardeerd wordt!
Lees de bijdragerichtlijnen voor informatie over hoe je kunt beginnen.
We werken actief aan het verbeteren van Pointblank met:
- Aanvullende validatiemethoden voor uitgebreide datakwaliteitscontroles
- Geavanceerde logmogelijkheden
- Berichten-acties (Slack, e-mail) voor drempeloverschrijdingen
- LLM-aangedreven validatiesuggesties en datawoordenboekgeneratie
- JSON/YAML-configuratie voor pipelineportabiliteit
- CLI-hulpprogramma voor validatie vanaf de commandoregel
- Uitgebreide backend-ondersteuning en certificering
- Hoogwaardige documentatie en voorbeelden
Als je ideeën hebt voor functies of verbeteringen, aarzel dan niet om ze met ons te delen! We zijn altijd op zoek naar manieren om Pointblank beter te maken.
Houd er rekening mee dat het Pointblank-project wordt uitgebracht met een gedragscode voor bijdragers.
Door deel te nemen aan dit project ga je ermee akkoord je aan de voorwaarden te houden.
Pointblank is gelicentieerd onder de MIT-licentie.
© Posit Software, PBC.
Dit project wordt primair onderhouden door Rich Iannone. Andere auteurs helpen soms met enkele van deze taken.





