Categorieën bekijken

Power BI REST API: Live SQL-gegevens verbinden zonder ODBC-stuurprogramma's

Power BI · REST API in plaats van een driver

Punt Power BI bij een REST API, geen databasestuurprogramma

Power BI maakt normaal gesproken verbinding met een database via een driver op uw computer en, voor geplande vernieuwingen, via een on-premises gateway. Een Query Streams-eindpunt is een gewone HTTPS-URL, die Power BI Desktop en de Power BI-service kunnen lezen met de ingebouwde webconnector. De portal genereert de Power Query M voor u: Exporteren → Power Query M (.pq)Plakken, sleutel toevoegen, klaar. Hetzelfde bestand werkt ook in Excel.

Ongeveer 5 minuten Geen chauffeur, geen gateway De gegevens blijven op uw netwerk. Excel ook
Loop je ergens vast? Vraag het ons gerust. Open Ondersteuning Ga naar Query Streams (menu rechtsboven → Ondersteuning) en stuur ons een bericht. Echte mensen lezen het, en "Ik weet niet wat er op dit scherm wordt gevraagd" is een volkomen terechte vraag.

Wat je uiteindelijk overhoudt

Een Power BI-tabel die wordt gevuld met een opgeslagen SQL-query via HTTPS, die in de service kan worden vernieuwd zonder een on-premises gateway, omdat het eindpunt eruitziet als elke andere web-API. Het eindpunt zelf ziet er in de portalconsole als volgt uit:

NAapi.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19
SleutelWaardeBeschrijving
stad string OptioneelSeattleAanroepbaar filter uit de opgeslagen query
X-API-sleutelqsapi_AB••••••••••Jouw geheime token
{
  "stad": "Seattle"
}
KoptekstWaardeBeschrijving
X-API-sleutelqsapi_AB••••••••••Uw geheime token. Eén per beller, op elk moment intrekbaar.
Inhoudstypeapplicatie/jsonDe parameters worden verzonden als een JSON-body.
Accepterenapplicatie/jsonJe krijgt JSON terug; als je om tekst/csv vraagt, krijg je CSV terug.
curl -X POST "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19" \ -H "X-API-Key: qsapi_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"city": "Seattle"}'
Status 200 OKTijd 84 msMaat 412 BAfgekapt Nee
{
  "kolommen": [ { "naam": "klant_id", "type": "geheel getal" }, { "naam": "naam", "type": "snaar" }, { "naam": "stad", "type": "snaar" } ],
  "rijen": [
    { "klant_id": 1042, "naam": "Northwind Traders", "stad": "Seattle" },
    { "klant_id": 1057, "naam": "Alpine Outfitters", "stad": "Denver" },
    { "klant_id": 1063, "naam": "Harbour Foods", "stad": "Halifax" }
  ],
  "meta": { "rij_aantal": 3, "agent_duration_ms": 41, "verzoek_id": "req_7Hq2mKd9" }
}
KoptekstWaardeBeschrijving
inhoudstypeapplication/json; charset=utf-8De envelop op het tabblad 'Body'
inhoudslengte412Aantal geretourneerde bytes; de groottebadge hierboven
Alleen-lezen: één opgeslagen query, verder niets. SQL verlaat uw account nooit. Elke oproep op het tabblad Activiteit

De reden dat er drivers nodig zijn, is dat Power BI het netwerkprotocol van elke database moet kunnen gebruiken, ongeacht waar het draait. Daarom is voor geplande vernieuwing een gateway binnen uw netwerk vereist. Met een endpoint voert de agent die al bij de database aanwezig is de query uit en beantwoordt api.querystreams.com het antwoord via HTTPS aan Power BI. Hierdoor hoeft Power BI niets te installeren en hoeft de service geen tunnelverbinding te maken.

WAAR DE DATABASE ZICH BEVINDTuw kantoornetwerk of serverruimteUw eigen databaseblijft op uw netwerkQuery Streams Agentvoert de opgeslagen query uitapi.querystreamscontroleert de sleutelHTTPS · alleen rijen, nooit de SQLWIE DE SLEUTEL OOK IN BEZIT HEEFTjouw app, een dashboard, een partner, een scriptGET of POST met X-API-sleutelJSON, CSV of NDJSON retour
De agent beheert uw gegevens en voert de query uit. api.querystreams.com controleert de sleutel en de snelheidslimiet en stuurt de rijen door. De beller bereikt uw netwerk nooit.

Wat je nodig hebt

Een Query Streams-account

Elk abonnement bevat de REST API. Met het gratis abonnement krijg je één endpoint, twee sleutels en 250 rijen per aanroep, wat voldoende is om deze handleiding te maken. Meld je aan via mijn.querystreams.nl.

De agent bevindt zich op een computer die toegang heeft tot uw eigen database, met de toegevoegde verbinding.

Vaak is dit de databaseserver zelf of een computer die altijd aan staat op hetzelfde netwerk.

Een opgeslagen query in Query Builder

Het eindpunt omvat precies één opgeslagen query. Schrijf de SELECT-query, voer deze eenmaal uit en sla hem op. Voeg een dynamisch filter toe (een @variable (in de WHERE-clausule) als bellers moeten kunnen filteren.

Wie kan eindpunten creëren? Eigenaren, beheerders en makers. Als de API Dit item ontbreekt in je bovenste balk. Een beheerder kan het voor je gebruiker inschakelen via Account → MachtigingenIedereen met wie u een eindpunt deelt, heeft alleen een Query Streams-account nodig, ongeacht het abonnement.

Plus Power BI Desktop, of Excel 2016 of later. Als u nog geen eindpunt hebt, Database REST API-hub Hiermee zet je een opgeslagen zoekopdracht in vier stappen om in een URL.

Verbind Power BI in vier stappen

  1. Exporteer het Power Query M-bestand

    In API open uw eindpunt, klik Exporteren en kiezen Power Query M (.pq)Het bestand is compleet. laat … binnen Een expressie met de eindpunt-URL en uw aanroepbare parameters al ingevuld. Het ziet er als volgt uit:

    Exporteren · Power Query M (.pq)
    laten
      Bron = JSON.Document(Web.Inhoud(
        "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19", [Headers = [#"X-API-sleutel" = "qsapi_UW_SLEUTEL"], Query = [compressie = "geen"]])), rijen = Bron[rijen], tabel = Tabel.Uit records(rijen)
    in
      tafel

    Bij de export wordt altijd gevraagd om compressie=geenOmdat Power Query geen LZ4-frames kan decoderen, verwacht Power BI JSON over gzip.

  2. Plak het in Power BI

    Kies in Power BI Desktop Startpagina → Gegevens transformeren → Nieuwe bron → Lege query, open de Gevorderde editor, vervang de inhoud door het bestand en klik KlaarIn Excel is het pad Gegevens → Gegevens ophalen → Uit andere bronnen → Lege queryen vervolgens dezelfde geavanceerde editor.

  3. Voeg uw sleutel toe

    Vervang de placeholder door uw sleutel van 49 tekens, die begint met... qsapi_ vanaf het eindpunt Delen tab. Wanneer Power BI vraagt hoe u verbinding wilt maken, kiest u Anoniem: de sleutel reist mee in de X-API-sleutel De query stelt de header al in, dus er zijn geen Power BI-referenties nodig.

  4. Laden en vernieuwen

    Klik op Sluiten en toepassenDe rijen De array wordt uw tabel met één kolom per querykolom. Publiceer naar de Power BI-service en stel een vernieuwingsschema in: omdat de bron een web-URL is, is er geen on-premises gateway nodig. Elke vernieuwing bestaat uit één aanroep naar het eindpunt. Activiteit tab.

Dat is alles. Power BI leest live rijen via HTTPS, de database blijft achter uw firewall en de eigenaar van het rapport ziet nooit de SQL-code of een database-aanmelding.

Het verzoek dat Power BI doet

Technisch gezien is het dezelfde aanroep die je met curl kunt doen. Parameters die gemarkeerd zijn als 'Callable' kunnen vanuit Power Query worden doorgegeven als Query = [city = "Seattle"]:

GET · parameters in de queryreeks
curl "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19?city=Seattle" \ -H "X-API-Key: qsapi_YOUR_KEY"
Reactie · 200 OK · application/json
{
  "kolommen": [ { "naam": "klant_id", "type": "geheel getal" }, { "naam": "naam", "type": "snaar" }, { "naam": "stad", "type": "snaar" } ],
  "rijen": [
    { "klant_id": 1042, "naam": "Northwind Traders", "stad": "Seattle" },
    { "klant_id": 1057, "naam": "Alpine Outfitters", "stad": "Denver" },
    { "klant_id": 1063, "naam": "Harbour Foods", "stad": "Halifax" }
  ],
  "meta": { "rij_aantal": 3, "agent_duration_ms": 41, "verzoek_id": "req_7Hq2mKd9" }
}

De rijen worden geretourneerd als objecten, gesleuteld op kolomnaam, met de kolomlijst en een meta Een blok dat aangeeft hoeveel rijen er zijn, of het resultaat is afgekapt en de aanvraag-ID die je kunt gebruiken ter ondersteuning. Dezelfde aanroep als een POST-verzoek plaatst de parameters in een JSON-body, wat de juiste keuze is voor lange lijsten met waarden:

POST · parameters in een JSON-body
curl -X POST "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19" \ -H "X-API-Key: qsapi_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"params": {"city": "Seattle"}}'
?format=csv
CSV in plaats van JSON, inclusief kopregel. Accepteren: tekst/csv doet hetzelfde. Streaming-eindpunten retourneren NDJSON (één JSON-object per regel) met een eindpunt {"_summary": true, "row_count": N} regel; controleer die laatste regel.
?sample=true
Maximaal vijf rijen, niet gefactureerd. Handig voor het aansluiten van een klant.
compressie=lz4
Een LZ4-frame behuizing voor apparaten met een hoog belvolume en een decoder; Code Het tabblad bevat het decoderfragment per taal. Standaard gzip wordt automatisch toegepast wanneer uw client een bericht verzendt. Accept-Encoding: gzip.
Autorisatie: Drager qsapi_…
Geaccepteerd als alias voor X-API-sleutelGebruik het vanuit de browsercode.

Voorbij Power BI

Excel en Power BI

Exporteren → Power Query M (.pq) Dit geeft je een kant-en-klare query. Plak deze in de geavanceerde editor (Excel: Gegevens → Gegevens ophalen → Van andere bronnen → Lege query; Power BI: Start → Gegevens transformeren → Nieuwe bron → Lege query) en vervang de placeholder door je eigen query. qsapi_ sleutel.

Postbode, slapeloosheid, hinkelen

Hetzelfde Exporteren Met het menu kunt u een Postman v2.1-collectie, een Insomnia v5-export of een Hoppscotch-collectie downloaden, waarbij de parameters zijn ingevuld en een placeholder voor de sleutel is toegevoegd.

Je eigen code

De Code Het tabblad bevat werkende voorbeelden voor cURL, Python, JavaScript, TypeScript, Java, C#, Go, PHP, PowerShell en Ruby. Exporteren → OpenAPI 3.1-specificatie Voedt elke clientgenerator of Swagger UI.

n8n, Zapier, Make, cron

Maak een Servicesleutel Plak voor de tool de URL en de sleutel in het HTTP-knooppunt en plan de uitvoering in. Elke tool krijgt een eigen sleutel, zodat je er één kunt intrekken zonder de andere aan te raken.

Wat de plannen toestaan

PlanEindpuntenSleutels per eindpuntPersonen per eindpuntRijen per oproep (statisch)Rijen per oproep (streaming)Gesprekken per minuut, per toets
Gratis1212502503
Persoonlijke kern2325,000250,00015
Persoonlijk Plus55510,000500,00030
Bedrijfskern5101050,0001,000,000300
Business Plus102025100,0005,000,000600
Business Max253050250,00010,000,000600
Enterprise Core5050100500,00025,000,0001,000
Enterprise Plus1001002501,000,00050,000,0001,000
Enterprise Max2502005002,500,000100,000,0001,500

Elke aanroep heeft een vaste time-out van 60 seconden voor de query en een maximale responsgrootte van 8 MiB. De geretourneerde bytes tellen mee voor je maandelijkse datalimiet, dezelfde limiet die de Excel- en Google Sheets-invoegtoepassingen gebruiken. De gratis versie heeft één eindpunt en 5 MB per maand, wat ruim voldoende is voor een kleine tabel die meerdere keren per dag wordt opgevraagd. Bekijk de prijspagina. voor de vergoedingen per plan.

Gratis is een abonnement dat je behoudt. Het is geen proefperiode die verloopt. Bekijk precies wat het inhoudt op de website. prijspagina.

Voor een rapport kunt u de query beperken tot de kolommen die de visualisaties nodig hebben en de rest aan het vernieuwingsschema overlaten; Power BI leest het volledige resultaat bij elke vernieuwing, dus de statische rijlimiet van uw plan is het maximum voor één enkele tabel.

Het veilig bewaren

De SQL-gegevens blijven van jou.

Bellers ontvangen rijen. Ze zien nooit de query, de tabelnamen of de verbindingsgegevens, en ze kunnen niet wijzigen wat het eindpunt uitvoert.

Eén sleutel, één eindpunt, één beller.

Een sleutel werkt voor precies één eindpunt. Geef elke persoon of tool een eigen sleutel, en elk gesprek wordt daaraan gekoppeld. Trek één sleutel in en de andere blijven werken; de intrekking wordt binnen ongeveer vijf minuten van kracht.

Alleen-lezen, aan jouw kant van de muur.

De agent voert de opgeslagen SELECT-opdracht uit, en verder niets, vanuit uw eigen netwerk, via een eigen uitgaande verbinding. Er hoeft geen poort geopend te worden en er zijn geen inloggegevens nodig via internet.

Elke oproep in het grootboek

De Activiteit Het tabblad toont elk gesprek met tijd, ontvanger, status, rijen, bytes en duur, inclusief geweigerde gesprekken. Stel een Verloopt De levensduur van een tijdelijke share is beperkt en het eindpunt schakelt zichzelf op die datum uit.

Als iets niet werkt

StatusCodeWat te doen
401API_KEY_REQUIRED / API_KEY_INVALIDDe header ontbreekt of de sleutel is onjuist. Verzenden X-API-sleutel: qsapi_…Alle 49 tekens. Sleutels kunnen opnieuw worden gekopieerd via het tabblad 'Delen' van het eindpunt.
403API_KEY_ENDPOINT_MISMATCHEen geldige sleutel die op een ander eindpunt wordt gebruikt. Elke sleutel hoort bij één eindpunt.
403API_KEY_REVOKED / API_ENDPOINT_EXPIREDDe sleutel is ingetrokken of het eindpunt heeft de vervaldatum bereikt. Genereer een nieuwe sleutel of herstel het eindpunt.
400API_PARAM_NOT_OVERRIDABLEJe hebt een parameter verzonden die de eigenaar niet als 'Callable' heeft gemarkeerd. In de body staan de toegestane namen vermeld.
414API_QUERY_TE_GROOTDe GET-queryreeks bevat 8 KB of 200 lijstwaarden. Verstuur dezelfde parameters als in de JSON-body van een POST-verzoek.
413API_UITVOER_TE_GROOTHet resultaat overschreed de limiet van 8 MiB. Verfijn de query of schakel het eindpunt over naar streaming.
429API-tarief beperktEr zijn deze minuut te veel oproepen voor de sleutel of het eindpunt. Wacht even. Opnieuw proberen na seconden, of verhogen Snelheidslimiet Onder API-instellingen → Standaardwaarden in uw abonnement.
429API_DATA_REALM_UITGEPUTHet maandelijkse datalimiet van de eigenaar is opgebruikt. Het wordt aan het begin van de factureringsmaand gereset; upgrade voor meer data.
503API_AGENT_NIET_VERBONDENDe agent achter uw eigen database is offline. Controleer dit onder Gegevens → Gegevensagenten; de gesprekken zullen weer lukken zodra de verbinding hersteld is.
504API_QUERY_TIMEOUTDe query duurde langer dan 60 seconden. Voeg een filter of een index toe, of sla een meer specifieke query op.

Elk foutlichaam heeft de vorm {"error": {"code": "…", "message": "…"}} en elk antwoord bevat een X-QS-Request-Id koptekst. Vermeld het ID tussen aanhalingstekens wanneer u contact opneemt met de supportafdeling.

Twee specifieke kenmerken van Power Query: een DataSource.Error naamgeving 401 Dit betekent dat de sleutel in het M-bestand onjuist is of is ingetrokken; Expression.Error: Het veld 'rows' van het record is niet gevonden. Dit betekent dat het eindpunt een foutmelding heeft geretourneerd. Voer de URL daarom uit in de portalconsole om de foutmelding te lezen.

Vragen die mensen stellen

Worden mijn gegevens naar Query Streams gekopieerd?

Nee. De agent voert de query uit op de locatie waar uw gegevens zich bevinden en verzendt alleen de rijen waar de oproep om heeft gevraagd. Er vindt tussendoor geen synchronisatie of cache plaats; elke oproep voert de query uit.

Kunnen bellers de SQL-query wijzigen of om andere tabellen vragen?

Nee. Een eindpunt voert één opgeslagen query uit. Aanroepers kunnen alleen de parameters instellen die u hebt gemarkeerd. OproepbaarEn de waarden worden veilig afgeschermd: tekst wordt tussen aanhalingstekens geplaatst en ontsnapt, getallen worden gecontroleerd op bereik en lijsten worden uitgebreid.

Hoe geef ik dit aan een partner?

Op het eindpunt Delen tab kiezen Mensen en voer hun e-mailadres in. Ze ontvangen een magische link, loggen in met dat adres (een gratis account is voldoende) en genereren hun eigen sleutel; je ziet hun oproepen op naam op het tabblad Activiteit. Voor een server of een automatiseringstool maak je een API-sleutel met een etiket in plaats daarvan.

Wat gebeurt er als ik de opgeslagen query bewerk?

Het eindpunt voert de nieuwe SQL-query uit bij de volgende aanroep en de OpenAPI-specificatie wordt opnieuw gegenereerd. De URL en de sleutels blijven ongewijzigd. Als u een filter toevoegt of verwijdert, ga dan opnieuw naar de betreffende pagina. Vergrendelingsparameters zodat bellers de juiste parameters te zien krijgen.

Is dit echt inbegrepen bij het gratis abonnement?

Ja. Gratis is een abonnement dat je behoudt, geen proefperiode die verloopt. Het omvat één eindpunt, twee sleutels en 250 rijen per aanroep. Bekijk precies wat het inhoudt op de website. prijspagina.

Werkt gepland vernieuwen in de Power BI-service echt zonder gateway?

Ja. De service kan alles vernieuwen. Web.Contents Een bron die bereikbaar is via het openbare internet met anonieme authenticatie of authenticatie via een ingebedde header. api.querystreams.com is zo'n bron; uw database wordt nooit rechtstreeks door Power BI benaderd.

Kan ik DirectQuery gebruiken?

Nee. Webbronnen in Power BI werken in de importmodus. Gebruik het vernieuwingsschema of houd de query beperkt en vernieuw vaker binnen de limiet van uw abonnement.

Kunnen Tableau en Looker Studio hetzelfde eindpunt gebruiken?

Elke tool met een web- of REST-connector kan dat, en Exporteren → OpenAPI 3.1-specificatie beschrijft het eindpunt voor connectorbouwers. Kies ?format=csv voor tools die de voorkeur geven aan CSV.

Zit je nog steeds vast? Open Ondersteuning Ga naar Query Streams en laat ons weten in welke stap u zich bevindt en wat u ziet. Dan zorgen wij ervoor dat u verbonden wordt.

Setup trouble?

  • Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?
Geüpdatet op 27 september 2026

Mogelijk gemaakt door BetterDocs