Publieke testfase We zitten in een publieke testfase — kijk gerust rond, maar bestellen kan nog niet. Bestellen kan vanaf 1 oktober 2026. Reserveer je plek →

Warehouse: een database van jezelf

Warehouse is een databaseserver van jezelf, naast je sites, waar je in mag schrijven. Je vindt hem in de Databases-werkbank in Manage — zijbalkgroep "Data Warehouse" — als een groep databases met het label RW, naast de alleen-lezen sitedatabases. Vul hem vanuit een spreadsheet-export, met SQL, vanuit een pipeline of door een hele database over te zetten; zet het resultaat daarna op een dashboard.

Wat het is

Het warehouse wordt aangemaakt samen met je eerste warehouse-database — "Dit maakt ook je warehouse aan — een databaseserver van jezelf naast je sites. De eerste keer duurt dat ongeveer een minuut." Eén account heeft één warehouse, op maat van zijn tier: Warehouse XS bij Starter (512 MB geheugen, 5 GB, tot 2 databases), S bij Pro (1 GB, 25 GB, tot 10 databases), M bij Business (2 GB, 75 GB, tot 20 databases). Elke database kiest zijn eigen engine, MariaDB of PostgreSQL, en krijgt een eigen schrijflogin, zodat een fout in de ene nooit de andere raakt. Een warehouse is inbegrepen bij elk abonnement; de pagina Databases noemt je tier en wat een grotere zou geven.

Een database aanmaken

Klik op New warehouse database in de boom of op het Start-tabblad. Het venster vraagt om:

  • Naam — 3–32 tekens: eerst een letter, daarna kleine letters, cijfers en underscores. Dit is de SQL-naam en die kun je later niet meer veranderen.
  • Engine — MariaDB "is de veilige standaard, en de engine die WordPress en de meeste PHP-applicaties verwachten"; PostgreSQL "weigert een waarde die niet in een kolom past in plaats van hem te veranderen, en kent geen unsigned gehele getallen."
  • Label (optioneel) — een leesbare naam voor in de boom.

De database toont Creating… zolang hij wordt aangemaakt en Removing… zolang hij wordt verwijderd. Mislukt het aanmaken, dan staat er Failed met "Try creating it again"; de details blijven bij ons, dus mislukt het twee keer, neem dan contact op. Een database verwijderen vraagt je de naam in te typen — er is geen undo behalve de nachtelijke back-ups — en waarschuwt eerst als een jobstap, een pipeline of een dashboardpaneel hem nog gebruikt.

Tabellen

New table… op een database opent een kolommenbouwer: naam, type, opties (unsigned, nullable, standaardwaarde) per kolom, een optionele id-kolom als BIGINT auto-increment primaire sleutel, en een live voorbeeld van de CREATE TABLE die gaat draaien — "Je kunt de tabel achteraf altijd aanpassen met ALTER TABLE in de editor." MariaDB biedt TINYINT tot BIGINT (signed of unsigned), DOUBLE, DECIMAL(p,s), VARCHAR(n), TEXT, MEDIUMTEXT, DATE, DATETIME, BOOLEAN en JSON; PostgreSQL biedt SMALLINT, INTEGER, BIGINT, DOUBLE PRECISION, REAL, NUMERIC(p,s), VARCHAR(n), TEXT, DATE, TIMESTAMP, BOOLEAN, JSONB en JSON. Een tabel heeft hoogstens 200 kolommen. Drop table… (of Drop view…) op het tabblad van een tabel vraagt om bevestiging voordat het draait.

Data importeren

Import data staat in de kop van het Start-tabblad, op elke schrijfbare database en op elke tabel. Het venster heeft twee stappen.

1. Kies het bestand. CSV, TSV of Parquet, tot 1.024 MB; tekstbestanden worden gelezen als UTF-8. Gzip een tekstbestand (.csv.gz) en dezelfde data uploadt in een fractie van de tijd — de limiet wordt geteld nadat het is uitgepakt. Het scheidingsteken wordt herkend, of kies komma, puntkomma, tab of pipe; vink "The first row holds column names" aan als dat zo is. Upload and preview stuurt het bestand rechtstreeks naar onze EU-opslag en leest de eerste rijen terug.

2. Koppel de kolommen. Kies een modus — Create a new table, Append to an existing table (rijen worden toegevoegd; de tabel houdt wat hij heeft) of Replace the rows of an existing table (eerst geleegd, dan geladen) — en controleer de kolomtypes. Voor een nieuwe tabel stelt de analyse het smalste type voor dat bij elke geziene waarde past; een booleaanse kolom kan "blank means false" hanteren. Past iets niet, dan stopt de import voordat er een rij is geschreven en somt ze op onder These values will not fit the types you chose. Op MariaDB zou de engine een getal boven het plafond stilzwijgend als het plafond opslaan en een woord in een getalkolom als 0, dus krijg je Widen the types, Import anyway (die veranderingen accepteren) of Check again. Op PostgreSQL zou het hele bestand geweigerd worden, dus daar kun je alleen verbreden of het bestand corrigeren.

De import draait als een job-tabblad: "Grote bestanden duren even: het bestand wordt op de warehouse-host geladen met LOAD DATA, in één statement, tot 10 minuten. Je kunt intussen in andere tabbladen doorwerken." Zijn onze importeurs bezig, dan zie je je plaats in de wachtrij. Als het klaar is opent Preview the table het resultaat; waarschuwingen over veranderde waarden staan erbij met voorbeelden.

SQL schrijven

Een editortabblad op een warehouse-database draagt de badge Writable. Naast elke leesopdracht accepteert het INSERT, REPLACE (MariaDB), UPDATE en DELETE, en CREATE, ALTER, DROP, TRUNCATE en RENAME van een TABLE, VIEW of INDEXéén statement per keer. Grants, LOAD DATA en andere bestandstoegang, SET en sessiebeheer, transacties, procedures en functies die slapen of vergrendelen worden geweigerd voordat ze in de wachtrij komen, en de editor zegt waarom.

Een destructief statement — DROP, TRUNCATE, een DELETE of UPDATE zonder WHERE, ALTER … DROP, RENAME — houdt stil bij een venster Confirm this statement met een samenvatting in gewone taal, zoals "DROP TABLE removes the table orders and every row in it." of "DELETE without WHERE removes every row in orders." Er draait niets totdat je op Run it klikt. Statements draaien als de warehouse-schrijver en worden na 30 seconden gestopt (in de editor te verhogen tot 60).

Een hele database overzetten

Wil je een bestaande MySQL-, MariaDB- of PostgreSQL-database meenemen, open dan een warehouse-database en kies Move a database here. Twee bronnen: I have an export — een .sql-bestand, een .sql.gz of een pg_dump-archief in custom-formaat, rechtstreeks naar onze opslag geüpload — of Take it from my old host — SFTP (SSH), FTPS of FTP plus de databaselogin, en de export wordt daar gemaakt voor een consistente momentopname. Die gegevens worden versleuteld, precies één keer aan de exportjob gegeven en verwijderd zodra die start. De bron moet dezelfde engine hebben als de doeldatabase. Heeft het doel al tabellen, dan kies je tussen Stop, and change nothing en Replace everything in this database; een overzetting die halverwege stopt wordt teruggedraaid, dus de database die je had is de database die je nog hebt. Als het klaar is: "We vertellen je wat er is aangekomen — tabellen en rijaantallen." Liever uit handen geven? De gratis begeleide migratie dekt ook databases.

Limieten

De gepubliceerde limieten zijn het standaardaanbod:

  • één warehouse per account op de tier van je abonnement — Starter XS 512 MB / 5 GB / 2 databases, Pro S 1 GB / 25 GB / 10, Business M 2 GB / 75 GB / 20 — elk MariaDB of PostgreSQL; Warehouse L (4 GB / 200 GB / 50) en extra schijf op aanvraag;
  • imports tot 1.024 MB per bestand (na uitpakken van gzip), tot 10 minuten per import, tabellen tot 200 kolommen;
  • één schrijvend statement per keer, standaard 30 seconden en hoogstens 60;
  • de leeskant — 1.000 rijen en 30 seconden per query, 2.000 queries per dag — is dezelfde als bij Databases.

Meer nodig? Neem contact op — ruimere limieten zijn op aanvraag beschikbaar, tegen betaling.

Vanuit een script of je AI-assistent

Het warehouse zit in de API en de MCP-server, achter dezelfde opt-in tokenscope data als Databases:

  • POST /api/v1/data/warehouse/databases — een database aanmaken (naam, engine, label); DELETE /api/v1/data/warehouse/databases/{id} — er een verwijderen;
  • GET /api/v1/data/databases toont warehouse-databases met de rol warehouse; POST /api/v1/data/query leest eruit zoals uit elke andere.

Een assistent krijgt create_warehouse_database en run_warehouse_statement — één schrijvend statement, of een SELECT van hoogstens 1.000 rijen; een destructief statement antwoordt needs confirmation met dezelfde samenvatting die jij zou zien, en draait pas als de assistent opnieuw aanroept met confirmed nadat jij akkoord bent — naast de alleen-lezen list_databases, get_schema en run_query. Sitedatabases weigeren het schrijvende gereedschap. Volgende stap: Jobs & Pipelines vullen warehouse-tabellen op schema.