This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
Monday, 22 December 2025
De meeste “chat met je data”systemen maken dezelfde foutenM SK2 ze behandelen een LLM alsof het een database is.
Ze schuiven rijtjes in context.,, ze inbedden stukjes, ,, of ze kiezen representatieve voorbeelden en hopen dat het model de structuur kan infereren,,, kwaliteit,,, en waarheid uit anekdotes,M SK6 Het werkt goed genoeg om te demonstreren, -, en dan ineenstort, onder de schaal.,, privacybeperkingen,MSC9, of fundamentele vragen zoals: "Is deze kolom afval?"
DataSummarizer gebruikt de tegenovergestelde aanpak.
Het berekent een deterministische statistisch profiel. van je dataset met DuckDB, blijft dat profiel, en optioneel. Laaders een Lokale LLM Bovenop om die feiten te interpreteren, voorstellen veilig te lezen- alleen SQL , en leidend te volgenM SK3 analyse nagaanMSC4 De zware lifting is numeriekMST5 auditeerbaarM ST6 en snelM st7 De LLM is bewust beperkt tot redeneren en verhaallijnenMst8
Het resultaat is:
tool JSON)Alles zonder ruwe rijtjes naar een model te sturen.
Dit bouwt rechtstreeks op Hoe analyseer je grote CSV-bestanden met lokale LLMs in C#, die het kernidee invoerde:
LLMs moeten vragen genereren, geen gegevens verbruiken.
Dit artikel duwt dat idee verder.
De volledige dokumentatie leeft in de DataSummarizer README Het werktuig ziet er eenvoudig uit. is’t gestuurd naar het model.
Nota: Dit is nog niet.
Als teams een LLM op de dataanalyse zetten, doen ze meestal één van drie dingen.
Zelfs met 200k token context vensters, is dit de verkeerde abstractie
LLM's zijn niet ontworpen om agregaten te berekenen, scheuringen te detecteren, of om verspreidingseigenschappen betrouwbaar te verklaren door rijen te lezen.
De correcte split is nog steeds:
LLM redenen. Databasiscomputes.
Maar je kunt een stap verder gaan door te veranderen. Wat? De redenen voor LLM over.
In plaats van de modelgegevens te geven, geef het een Profiel.
Een profiel is een compacte, deterministische samenvatting van een dataset.
Dit profiel wordt de interface. tussen redeneren en berekeningen.
Het model kan nu:
… zonder ooit ruwe rijtjes te zien
flowchart LR
A[Data file] --> B[DuckDB profiles]
B --> C[Statistical Profile JSON]
C --> D[LLM reasoning step]
D --> E[SQL/tool calls]
E --> F[DuckDB executes locally]
F --> G[Aggregate results]
G --> H[LLM synthesis]
style B stroke:#333,stroke-width:4px
style D stroke:#333,stroke-width:4px
style F stroke:#333,stroke-width:4px
Dit bewaart het bekende. LLM → SQL → DuckDB loop, maar aankert het in feiten.
Een profiel beantwoordt de saaie vragen.
Dit zijn de vragen die je normaal ontdekt. 30 minuten in een spreadsheet archeologie.
Het profiel geeft ze in seconden.
Als je Doe Aktiveer de LLM, het profiel is wat het performatief stopt.
Met het profiel-onzeer context, kan het modelM SK2
Je hebt geen groter model nodig.
Je hebt beter bewijs nodig.
Ik veranderde dit in een CLI zodat ik het kon runnen op willekeurige lêers - inclusief in cron en CI - zonder hand te gebruiken
Windows: Trek een lêer op. datasummarizer.exe
CLI:
datasummarizer mydata.csv
datasummarizer tool -f mydata.csv > profile.json
Dat profile.json is het contract:
Ollama-endpunt: http://localhost:11434 (configureerbaar)
Verstek model: qwen2.5-coder:7b (overskryf met --model)
Default registry DB: .datasummarizer.vss.duckdb
SQL-veiligheids beperkingen:
COPY, ATTACH, INSTALL, CREATE, DROP, INSERT, UPDATE, DELETE, onveilig PRAGMADe verstek is opzettelijk conservatief. Je kunt ze lossen - maar je moet kiezen inM SK2
datasummarizer -f patients.csv --no-llm --fast
Uitgang (974 patiëntenbestand met PII):
── Summary ────────────────────────────────────────────────
974 rows, 20 columns. 4 columns have >10% nulls. 8 warnings.
Alerts vlaggieukenrisico's, hoogM SK1nul kolommen , constante velden, en vermoedelijke identificeerders MSC4 allemaal berekend door DuckDBMSL5
Geen gok. Geen hallucinatie.
datasummarizer tool -f patients.csv --store > profile.json
Verkortde output:
{
"Profile": {
"RowCount": 974,
"ColumnCount": 20,
"ExecutiveSummary": "974 rows, 20 columns. 18 alerts."
},
"Metadata": {
"ProfileId": "0ae8dcc4d79b",
"SchemaHash": "44d9ad8af68c1c62"
}
}
Dit is ontworpen om te differen, te bewaren, en te auditeren .
Zodra profielen bestaan, zal drift goedkoper worden.
datasummarizer tool -f daily_export.csv --auto-drift --store
Het is een saaie infrastructuur, precies wat je wilt.
Zodra je een statistische vorm hebt, kan je iets echt nuttigs doen.
Genereer synthetische datasets die:
Dit is ideaal voor demo's, CI, support repros , en gedeelde monsters.
De betrouwbaarheidsrapport kwantificeert hoe dicht de synthetische data zijn - in plaats van handM SK1waving “realistisch”.
--no-llm produceert volledig auditeerbare outputs geschikt voor CI of gereguleerde omgevingen.De LLM uitvindt nooit feiten.
Repo: https://githubM SK1com/scottgalMSC3mostlylucidwebMST4treeMSP5mainMSV6Mostly LucidMSS7DataSummarizer
Benodigheden:
Verwant:
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.