Kategorien anzeigen

Power BI REST API: Live-SQL-Daten ohne ODBC-Treiber verbinden

Power BI · REST-API anstelle eines Treibers

Punkt Power BI bei einem REST-API, kein Datenbanktreiber

Power BI greift normalerweise über einen Treiber auf Ihrem Rechner und, für geplante Aktualisierungen, über ein lokales Gateway auf eine Datenbank zu. Ein Query-Streams-Endpunkt ist eine einfache HTTPS-URL, die von Power BI Desktop und dem Power BI-Dienst mit dem integrierten Webconnector gelesen wird. Das Portal generiert die Power Query M-Anweisung automatisch. Export → Power Query M (.pq)Einfügen, Schlüssel hinzufügen, fertig. Dieselbe Datei funktioniert auch in Excel.

Ungefähr 5 Minuten Kein Treiber, kein Gateway Die Daten bleiben in Ihrem Netzwerk. Excel auch
Sie kommen an irgendeiner Stelle nicht weiter? Fragen Sie uns einfach. Öffnen Unterstützung Gehen Sie zu „Abfrageströme“ (Menü oben rechts → Support) und senden Sie uns eine Nachricht. Echte Menschen lesen sie, und „Ich verstehe nicht, was dieser Bildschirm von mir verlangt“ ist eine völlig berechtigte Frage.

Was am Ende dabei herauskommt

Eine Power BI-Tabelle, die über eine gespeicherte SQL-Abfrage via HTTPS gespeist wird und im Dienst ohne lokales Gateway aktualisiert werden kann, da der Endpunkt wie jede beliebige Web-API aussieht. Der Endpunkt selbst sieht in der Portalkonsole folgendermaßen aus:

POSTapi.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19
SchlüsselWertBeschreibung
Stadt Zeichenfolge OptionalSeattleAufrufbarer Filter aus der gespeicherten Abfrage
X-API-Schlüsselqsapi_AB••••••••••Ihr geheimer Token
{
  "Stadt": "Seattle"
}
KopfzeileWertBeschreibung
X-API-Schlüsselqsapi_AB••••••••••Ihr geheimes Token. Eines pro Anrufer, jederzeit widerrufbar.
Inhaltstypapplication/jsonDie Parameter werden als JSON-Body übertragen.
Akzeptierenapplication/jsonJSON-Rückgabe; bei Anfrage nach Text/CSV erhalten Sie CSV.
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 OKZeit 84 msGröße 412 BGekürzt NEIN
{
  "Spalten": [ { "Name": "customer_id", "Typ": "ganze Zahl" }, { "Name": "Name", "Typ": "Zeichenkette" }, { "Name": "Stadt", "Typ": "Zeichenkette" } ],
  "Zeilen": [
    { "customer_id": 1042, "Name": "Northwind Traders", "Stadt": "Seattle" },
    { "customer_id": 1057, "Name": "Alpine Outfitters", "Stadt": "Denver" },
    { "customer_id": 1063, "Name": "Harbour Foods", "Stadt": "Halifax" }
  ],
  "Meta": { "Zeilenanzahl": 3, "agent_duration_ms": 41, "request_id": "req_7Hq2mKd9" }
}
KopfzeileWertBeschreibung
Inhaltstypapplication/json; charset=utf-8Der Umschlag auf der Registerkarte "Body".
Inhaltslänge412Zurückgegebene Bytes; das Größenabzeichen oben
Schreibgeschützt: eine gespeicherte Abfrage, sonst nichts. SQL verlässt niemals Ihr Konto. Alle Anrufe auf der Registerkarte „Aktivität“

Treiber sind notwendig, da Power BI das jeweilige Datenbankprotokoll unabhängig vom Ausführungsort beherrschen muss. Daher benötigt die geplante Aktualisierung ein Gateway im Netzwerk. Mit einem Endpunkt führt der bereits in der Datenbank befindliche Agent die Abfrage aus, und api.querystreams.com beantwortet die Anfragen von Power BI über HTTPS. Power BI muss daher nichts installieren, und der Dienst muss keinen Tunnel aufbauen.

WO DIE DATENBANK GELÄUFTIhr Büronetzwerk oder ServerraumIhre eigene Datenbankbleibt in Ihrem NetzwerkAbfrage-Streams-Agentführt die gespeicherte Abfrage ausapi.querystreamsprüft den SchlüsselHTTPS · Nur Zeilen, niemals SQLWER AUCH IM BESITZ EINES SCHLÜSSELSIhre App, ein Dashboard, ein Partner, ein SkriptGET oder POST mit X-API-SchlüsselJSON-, CSV- oder NDJSON-Rückgabe
Der Agent verwaltet Ihre Daten und führt die Abfrage aus. api.querystreams.com prüft den Schlüssel und das Ratenlimit und leitet die Zeilen weiter. Der Aufrufer erreicht Ihr Netzwerk niemals.

Was Sie benötigen

Ein Query Streams-Konto

Jeder Tarif beinhaltet die REST-API. Die kostenlose Version bietet einen Endpunkt, zwei Schlüssel und 250 Zeilen pro Aufruf – ausreichend für diese Anleitung. Jetzt anmelden unter mein.querystreams.de.

Der Agent befindet sich auf einem Computer, der auf Ihre eigene Datenbank zugreifen kann, wobei die Verbindung hinzugefügt wurde.

Häufig handelt es sich um den Datenbankserver selbst oder einen ständig eingeschalteten Computer im selben Netzwerk.

Eine gespeicherte Abfrage im Abfrage-Generator

Der Endpunkt umschließt genau eine gespeicherte Abfrage. Schreiben Sie die SELECT-Anweisung, führen Sie sie einmal aus und speichern Sie sie. Fügen Sie einen dynamischen Filter hinzu (einen dynamischen Filter). @variable in der WHERE-Klausel), wenn Aufrufer die Möglichkeit haben sollen, zu filtern.

Wer kann Endpunkte erstellen? Eigentümer, Administratoren und Ersteller. Wenn die API Dieser Eintrag fehlt in Ihrer oberen Leiste. Ein Administrator kann ihn für Ihren Benutzer aktivieren. Konto → BerechtigungenJeder, mit dem Sie einen Endpunkt teilen, benötigt lediglich ein Query Streams-Konto, unabhängig vom gewählten Tarif.

Zusätzlich benötigen Sie Power BI Desktop oder Excel 2016 oder höher. Falls Sie noch keinen Endpunkt haben, Datenbank-REST-API-Hub führt Sie in vier Schritten von einer gespeicherten Suchanfrage zu einer URL.

Power BI in vier Schritten verbinden

  1. Exportieren Sie die Power Query M-Datei

    In API Öffnen Sie Ihren Endpunkt, klicken Sie Export und wählen Power Query M (.pq)Die Datei ist vollständig lassen … herein Ausdruck mit der Endpunkt-URL und den bereits vorhandenen aufrufbaren Parametern. Er sieht folgendermaßen aus:

    Exportieren · Power Query M (.pq)
    lassen
      Quelle = Json.Dokumentieren(Web.Inhalt(
        "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19", [Headers = [#"X-API-Schlüssel" = "qsapi_YOUR_KEY"], Abfrage = [Komprimierung = "keiner"]])), rows = Source[rows], table = Table.Aus Datensätzen(Zeilen)
    In
      Tisch

    Der Export fragt immer nach Komprimierung=keine, weil Power Query LZ4-Frames nicht dekodieren kann; Power BI erwartet JSON über gzip.

  2. Fügen Sie es in Power BI ein.

    In Power BI Desktop auswählen Startseite → Daten transformieren → Neue Quelle → Leere Abfrage, öffnen Sie die Erweiterter EditorErsetzen Sie dessen Inhalt durch die Datei und klicken Sie auf FertigIn Excel lautet der Pfad: Daten → Daten abrufen → Aus anderen Quellen → Leere Abfragedann derselbe erweiterte Editor.

  3. Fügen Sie Ihren Schlüssel hinzu

    Ersetzen Sie den Platzhalter durch Ihren 49-stelligen Schlüssel, beginnend mit qsapi_ vom Endpunkt Teilen Registerkarte. Wenn Power BI nach der Verbindungsmethode fragt, wählen Sie aus Anonym: der Schlüssel reist in der X-API-Schlüssel Der Header wird bereits in der Abfrage festgelegt, daher sind keine Power BI-Anmeldeinformationen erforderlich.

  4. Laden und aktualisieren

    Klicken Sie auf Schließen & Anwenden. Der Zeilen Das Array wird zu Ihrer Tabelle mit einer Spalte pro Abfragespalte. Veröffentlichen Sie die Daten im Power BI-Dienst und legen Sie einen Aktualisierungszeitplan fest: Da die Quelle eine Web-URL ist, ist kein lokales Gateway erforderlich. Jede Aktualisierung entspricht einem Aufruf des Endpunkts. Aktivität Tab.

Das war’s. Power BI liest Live-Zeilen über HTTPS, die Datenbank bleibt hinter Ihrer Firewall, und der Berichtsbesitzer sieht niemals die SQL-Anweisung oder einen Datenbank-Login.

Die Anfrage, die Power BI stellt

Im Prinzip handelt es sich um denselben Aufruf, den Sie auch mit curl durchführen können. Parameter, die als „Callable“ markiert sind, können von Power Query übergeben werden als Query = [city = "Seattle"]:

GET · Parameter in der Abfragezeichenfolge
curl "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19?city=Seattle" \ -H "X-API-Key: qsapi_YOUR_KEY"
Antwort · 200 OK · application/json
{
  "Spalten": [ { "Name": "customer_id", "Typ": "ganze Zahl" }, { "Name": "Name", "Typ": "Zeichenkette" }, { "Name": "Stadt", "Typ": "Zeichenkette" } ],
  "Zeilen": [
    { "customer_id": 1042, "Name": "Northwind Traders", "Stadt": "Seattle" },
    { "customer_id": 1057, "Name": "Alpine Outfitters", "Stadt": "Denver" },
    { "customer_id": 1063, "Name": "Harbour Foods", "Stadt": "Halifax" }
  ],
  "Meta": { "Zeilenanzahl": 3, "agent_duration_ms": 41, "request_id": "req_7Hq2mKd9" }
}

Die Zeilen werden als Objekte zurückgegeben, die über den Spaltennamen indiziert sind, mit der Spaltenliste und einem Meta Ein Block, der die Anzahl der Zeilen, die Information, ob das Ergebnis gekürzt wurde, und die Anfrage-ID anzeigt, die Sie zur Unterstützung angeben können. Derselbe Aufruf wie ein POST-Request übermittelt die Parameter in einem JSON-Body, was die richtige Wahl für lange Wertelisten ist:

POST · Parameter in einem 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 statt JSON, inklusive Kopfzeile. Akzeptierte Formate: text/csv Dasselbe gilt für Streaming-Endpunkte. Diese geben NDJSON (ein JSON-Objekt pro Zeile) mit einem abschließenden Wert zurück. {"_summary": true, "row_count": N} Zeile; überprüfen Sie die letzte Zeile.
?sample=true
Maximal fünf Reihen, nicht abgerechnet. Gut geeignet, um einen Kunden anzuschließen.
?compression=lz4
Ein Gehäuse des Typs LZ4 für Vieltelefonierer mit Decoder; Code Die Registerkarte enthält den Decoder-Codeausschnitt für jede Sprache. Die einfache Gzip-Komprimierung erfolgt automatisch, wenn Ihr Client sendet. Accept-Encoding: gzip.
Autorisierung: Bearer qsapi_…
Akzeptiert als Alias für X-API-Schlüssel. Verwenden Sie es im Browsercode.

Über Power BI hinaus

Excel und Power BI

Export → Power Query M (.pq) Sie erhalten eine vorgefertigte Abfrage. Fügen Sie diese in den erweiterten Editor ein (Excel: Daten → Daten abrufen → Aus anderen Quellen → Leere Abfrage; Power BI: Start → Daten transformieren → Neue Quelle → Leere Abfrage) und ersetzen Sie den Platzhalter durch Ihre Abfrage. qsapi_ Schlüssel.

Postbote, Schlaflosigkeit, Hüpfekästchen

Das gleiche Export Das Menü lädt eine Postman v2.1-Sammlung, einen Insomnia v5-Export oder eine Hoppscotch-Sammlung mit ausgefüllten Parametern und einem Platzhalter für den Schlüssel herunter.

Ihr eigener Code

Der Code Der Tab enthält funktionierende Beispiele für cURL, Python, JavaScript, TypeScript, Java, C#, Go, PHP, PowerShell und Ruby. Export → OpenAPI 3.1-Spezifikation Wird von jedem Clientgenerator oder Swagger UI gespeist.

n8n, Zapier, Make, cron

Erstellen Sie einen Serviceschlüssel Fügen Sie für das Tool die URL und den Schlüssel in den entsprechenden HTTP-Knoten ein und planen Sie die Ausführung. Jedes Tool erhält einen eigenen Schlüssel, sodass Sie einen Schlüssel widerrufen können, ohne die anderen zu beeinträchtigen.

Was die Pläne erlauben

PlanenEndpunkteSchlüssel pro EndpunktPersonen pro EndpunktZeilen pro Aufruf (statisch)Zeilen pro Aufruf (Streaming)Anrufe pro Minute, pro Taste
Kostenlos1212502503
Persönlicher Kern2325,000250,00015
Personal Plus55510,000500,00030
Kerngeschäft5101050,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

Jeder Aufruf hat ein festes Abfrage-Timeout von 60 Sekunden und eine Antwortgröße von maximal 8 MiB. Die zurückgegebenen Bytes werden auf Ihr monatliches Datenvolumen angerechnet – dasselbe, das auch die Add-ons für Excel und Google Sheets nutzen. Die kostenlose Version bietet einen Endpunkt und 5 MB Datenvolumen pro Monat, was für eine kleine Tabelle, die mehrmals täglich aufgerufen wird, problemlos ausreicht. Siehe die Preisseite für die Zulagen nach Plan.

Kostenlos ist ein Plan, den man behält. Es handelt sich nicht um eine Testphase, die abläuft. Sehen Sie genau, was sie beinhaltet, auf der Preisseite.

Für einen Bericht beschränken Sie die Abfrage auf die Spalten, die die Visualisierungen benötigen, und überlassen Sie den Rest dem Aktualisierungszeitplan; Power BI liest bei jeder Aktualisierung das gesamte Ergebnis, daher ist die statische Zeilenbegrenzung Ihres Plans die Obergrenze für eine einzelne Tabelle.

Es sicher aufbewahren

Die SQL-Anweisungen bleiben Ihre.

Die Aufrufer erhalten Zeilen. Sie sehen weder die Abfrage noch die Tabellennamen oder die Verbindungsdetails und können nicht ändern, was der Endpunkt ausführt.

Ein Schlüssel, ein Endpunkt, ein Anrufer

Ein Schlüssel funktioniert genau für einen Endpunkt. Jede Person oder jedes Tool erhält einen eigenen Schlüssel, und jeder Anruf wird diesem zugeordnet. Wird ein Schlüssel widerrufen, funktionieren die anderen weiterhin; der Widerruf wird innerhalb von etwa fünf Minuten wirksam.

Schreibgeschützt, auf Ihrer Seite der Mauer

Der Agent führt die gespeicherte SELECT-Anweisung und nichts anderes aus Ihrem Netzwerk über seine eigene ausgehende Verbindung aus. Es muss kein Port geöffnet und keine Anmeldeinformationen im Internet benötigt werden.

Jeder Anruf im Hauptbuch

Der Aktivität Die Registerkarte zeigt jeden Anruf mit Uhrzeit, Empfänger, Status, Zeilen, Bytes und Dauer an, einschließlich abgelehnter Anrufe. Ablauf Lebensdauer einer temporären Freigabe und der Endpunkt schaltet sich am angegebenen Datum selbst ab.

Wenn etwas nicht funktioniert

StatusCodeWas zu tun
401API-Schlüssel erforderlich / API-Schlüssel ungültigDer Header fehlt oder der Schlüssel ist falsch. Senden X-API-Schlüssel: qsapi_…Die gesamten 49 Zeichen. Die Schlüssel können über die Registerkarte „Freigabe“ des Endpunkts erneut kopiert werden.
403API_KEY_ENDPOINT_MISMATCHEin gültiger Schlüssel, der an einem anderen Endpunkt verwendet wird. Jeder Schlüssel gehört zu genau einem Endpunkt.
403API-Schlüssel widerrufen / API-Endpunkt abgelaufenDer Schlüssel wurde widerrufen oder der Endpunkt ist abgelaufen. Generieren Sie einen neuen Schlüssel oder stellen Sie den Endpunkt wieder her.
400API_PARAM_NOT_OVERRIDABLESie haben einen Parameter gesendet, den der Eigentümer nicht als aufrufbar markiert hat. Im Nachrichtentext werden die zulässigen Namen aufgelistet.
414API_QUERY_TOO_LARGEDie GET-Abfragezeichenfolge enthielt 8 KB oder 200 Listenwerte. Senden Sie dieselben Parameter als JSON-Body in einer POST-Anfrage.
413API_OUTPUT_TOO_LARGEDas Ergebnis überschritt die 8-MiB-Grenze. Schränken Sie die Abfrage ein oder wechseln Sie zum Streaming-Endpunkt.
429API_RATE_LIMITEDIn dieser Minute gehen zu viele Anrufe wegen des Schlüssels oder des Endpunkts ein. Warten Sie auf den Wiederholen Sekunden oder erhöhen Ratenbegrenzung unter API-Einstellungen → Standardeinstellungen innerhalb Ihres Tarifs.
429API_DATA_REALM_EXHAUSTEDDas monatliche Datenvolumen des Nutzers ist aufgebraucht. Es wird mit dem nächsten Abrechnungsmonat zurückgesetzt; für mehr Datenvolumen ist ein Upgrade erforderlich.
503API-AGENT_NICHT_VERBUNDENDer Agent Ihrer Datenbank ist offline. Überprüfen Sie ihn unter Daten → Datenagenten; Anrufe sind wieder erfolgreich, sobald die Verbindung wiederhergestellt ist.
504API-Abfrage-TimeoutDie Abfrage dauerte länger als 60 Sekunden. Fügen Sie einen Filter oder einen Index hinzu oder speichern Sie eine präzisere Abfrage.

Jeder Fehlerkörper hat die Form {"error": {"code": "…", "message": "…"}} und jede Antwort beinhaltet eine X-QS-Anforderungs-ID Header. Geben Sie die ID in Anführungszeichen an, wenn Sie sich an den Support wenden.

Zwei Besonderheiten von Power Query: a DataSource.Error Benennung 401 bedeutet, dass der Schlüssel in der M-Datei falsch ist oder widerrufen wurde; Expression.Error: Das Feld 'rows' des Datensatzes wurde nicht gefunden. Das bedeutet, dass der Endpunkt einen Fehlerumschlag zurückgegeben hat. Rufen Sie daher die URL in der Portalkonsole auf, um diesen zu lesen.

Fragen, die Menschen stellen

Werden meine Daten in Query Streams kopiert?

Nein. Der Agent führt die Abfrage dort aus, wo Ihre Daten gespeichert sind, und sendet nur die angeforderten Zeilen. Es findet keine Synchronisierung oder Zwischenspeicherung statt; die Abfrage wird bei jedem Anruf neu ausgeführt.

Können Anrufer die SQL-Anweisung ändern oder andere Tabellen anfordern?

Nein. Ein Endpunkt führt eine gespeicherte Abfrage aus. Aufrufer können nur die von Ihnen markierten Parameter festlegen. Abrufbarund die Werte werden sicher gebunden: Text wird in Anführungszeichen gesetzt und maskiert, Zahlen werden auf ihren Bereich geprüft, Listen werden erweitert.

Wie übergebe ich das einem Partner?

Am Endpunkt Teilen Registerkarte auswählen Menschen und geben ihre E-Mail-Adresse ein. Sie erhalten einen magischen Link, melden sich mit dieser Adresse an (ein kostenloses Konto genügt) und generieren ihren eigenen Schlüssel; ihre Anrufe werden dann namentlich auf der Registerkarte „Aktivität“ angezeigt. Für einen Server oder ein Automatisierungstool erstellen Sie einen API-Schlüssel stattdessen mit einem Etikett.

Was passiert, wenn ich die gespeicherte Abfrage bearbeite?

Der Endpunkt führt beim nächsten Aufruf die neue SQL-Abfrage aus und seine OpenAPI-Spezifikation wird neu generiert. Die URL und die Schlüssel ändern sich nicht. Wenn Sie einen Filter hinzufügen oder entfernen, überprüfen Sie die Spezifikation erneut. Sperrparameter damit Anrufer die richtigen Parameter sehen.

Ist das im kostenlosen Tarif wirklich enthalten?

Ja. „Kostenlos“ ist ein dauerhafter Tarif, keine befristete Testphase. Er umfasst einen Endpunkt, zwei Schlüssel und 250 Zeilen pro Aufruf. Die genauen Leistungen finden Sie hier: Preisseite.

Funktioniert die geplante Aktualisierung im Power BI-Dienst tatsächlich ohne Gateway?

Ja. Der Dienst kann jede Aktualisierung durchführen. Web.Contents Eine Quelle, die über das öffentliche Internet mit anonymer oder eingebetteter Header-Authentifizierung erreichbar ist. api.querystreams.com ist eine solche Quelle; Ihre Datenbank wird von Power BI niemals kontaktiert.

Kann ich DirectQuery verwenden?

Nein. Webquellen in Power BI befinden sich im Importmodus. Verwenden Sie den Aktualisierungszeitplan oder halten Sie die Abfrage eng und aktualisieren Sie sie häufiger innerhalb des Ratenlimits Ihres Tarifs.

Können Tableau oder Looker Studio denselben Endpunkt verwenden?

Jedes Tool mit einem Web- oder REST-Konnektor kann das, und Export → OpenAPI 3.1-Spezifikation Beschreibt den Endpunkt für Konnektor-Generatoren. Auswählen ?format=csv für Tools, die CSV bevorzugen.

Immer noch festgefahren? Öffnen Unterstützung Bitte geben Sie in Query Streams an, bei welchem Schritt Sie sich befinden und was Sie sehen. Wir stellen dann die Verbindung her.

Setup trouble?

  • Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?
Aktualisiert am 27. September 2026

Angetrieben durch BetterDocs