Terug naar Utils

Notepad++ plugin

Query Files

Draai SQL op CSV-, Parquet-, JSON- en Excel-bestanden, direct vanuit Notepad++. Open een bestand, kies Query this file, en bevraag het als THIS.

Doel

Even snel kijken wat er in een databestand zit, betekent meestal: een databaseclient openen, een tabel aanmaken, importeren, en dan pas je query. Query Files slaat dat allemaal over. Het bestand dat je in Notepad++ open hebt, wordt een tabel die THIS heet, en je schrijft er gewoon SQL op.

Onder de motorkap draait DuckDB: moderne SQL met window functions, QUALIFY, PIVOT en GROUP BY ALL, en snel genoeg voor bestanden van miljoenen rijen. Je kunt ook bestanden op schijf direct bevragen en met elkaar joinen, inclusief wildcards zoals 'logs/*.json'.

Er bestaat al een plugin die SQL op CSV draait (CSV Query), maar die gebruikt SQLite uit 2011 en kan alleen CSV. Query Files is in C++ geschreven, gebruikt een lokaal duckdb.exe, en stuurt niets het internet op. Broncode volledig open (MIT-licentie) op GitHub.

Wat je kunt verwachten

Query this file

Vanuit een open CSV, Parquet, JSON of Excel opent een nieuw SQL-tabblad waarin dat bestand THIS heet. Ook niet-opgeslagen wijzigingen in dat tabblad tellen mee.

Run query met één klik

Een groene ▶-knop in de werkbalk draait de selectie of het hele document. Meerdere statements achter elkaar mag; elk resultaat komt netjes onder elkaar.

Tekst of tabel

Kies in de instellingen: resultaat als tekst in een tabblad (met kolomtypes), of als sorteerbare tabel in een gedockt paneel. Ctrl+C kopieert rijen zo naar Excel.

Bestanden joinen

Bevraag elk bestand op schijf: from 'orders.parquet' join 'klanten.csv' using (klant_id). Relatieve paden zijn relatief aan je SQL-bestand.

Describe en Summarize THIS

In één klik de kolommen en types van een onbekend bestand, of per kolom min, max, aantal NULLs en unieke waarden.

Fouten op de juiste regel

Een fout verschijnt waar het resultaat zou komen, met het regelnummer in jouw SQL. Lange query's draaien op de achtergrond en zijn af te breken.

Zie het in actie

Een query op een open CSV-bestand, en het resultaat zoals de plugin het in een tabblad zet.

Query

-- this: C:\data\orders.csv
select customer,
       count(*)    as orders,
       sum(amount) as revenue
from this
group by all
order by revenue desc;

Resultaat

┌──────────┬────────┬─────────┐
│ customer │ orders │ revenue │
│ varchar  │ int64  │ double  │
├──────────┼────────┼─────────┤
│ Alpha    │      3 │  394.75 │
│ Beta     │      2 │  122.75 │
│ Gamma    │      1 │    15.0 │
└──────────┴────────┴─────────┘

THIS is van de plugin

THIS is een gereserveerd woord van Query Files en altijd alleen-lezen. Gebruik het als tabel (from this, join this t, describe this, copy this to 'uit.parquet'), maar niet als naam: niet als alias, CTE of tabelnaam, en niet als doel van insert, update of delete. Een kolom die echt this heet, schrijf je tussen dubbele quotes.

Gebruik

1. Installatie

Nog niet in Notepad++'s Plugins Admin — handmatige installatie:

Download QueryFiles.zip van de laatste release en pak hem uit in de Notepad++ plugin-map (64-bit Notepad++ vereist):

C:\Program Files\Notepad++\plugins\
  QueryFiles\
    QueryFiles.dll
    help.txt
Download de laatste release

2. DuckDB

Query Files gebruikt het gratis duckdb.exe (duckdb.org). Zet het op je PATH, naast de plugin, of kies het in de instellingen. Gebruik je al Datamodder File Tools met DuckDB? Dan pakt Query Files die automatisch op.

3. Plugin activeren

Start Notepad++ opnieuw op. De plugin verschijnt automatisch onder Plugins → Datamodder Query Files.

4. Aan de slag

Open een databestand, kies Query this file, en klik op de ▶-knop in de werkbalk:

Plugins → Datamodder Query Files → Query this file
Plugins → Datamodder Query Files → Run query   (▶)

Veelgestelde vragen

Is deze plugin echt gratis?

Ja, volledig — MIT-licentie, broncode open op GitHub, geen advertenties, geen 'pro'-versie achter een betaalmuur. DuckDB is ook gratis en open source.

Verstuurt de plugin data naar internet?

Nee. Je query's draaien in het lokaal geïnstalleerde duckdb.exe, ook zonder internetverbinding. Alleen als je zelf een extensie zoals excel voor het eerst gebruikt, kan DuckDB die eenmalig downloaden.

Hoe groot mogen de bestanden zijn?

DuckDB leest bestanden rechtstreeks en parallel, dus ook miljoenen rijen zijn geen probleem. De plugin toont standaard maximaal 1.000 rijen van het resultaat (instelbaar), zodat Notepad++ niet vastloopt.

Wat is het verschil met CSV Query?

CSV Query laadt een CSV in SQLite 3.7 uit 2011: geen window functions, alleen CSV, alleen het open bestand. Query Files gebruikt een actuele DuckDB, leest ook Parquet, JSON en Excel, en kan bestanden op schijf joinen.

Blijven tabellen bewaard tussen twee runs?

Standaard niet: elke run start een verse in-memory database. Stel in de instellingen een databasebestand (.duckdb) in, dan blijven je tabellen, views en macro's bewaard.

Welke Notepad++ versie heb ik nodig?

64-bit Notepad++ 8.3 of hoger. 32-bit wordt niet ondersteund.

Bug gevonden of een idee voor een verbetering?

Meld het rechtstreeks als issue op GitHub — dat wordt gelezen en opgevolgd. Liever geen GitHub-account? Stuur ons dan een bericht via het contactformulier, dan zetten we het voor je door.