Visualizza le categorie

API REST di Power BI: Connetti dati SQL in tempo reale senza driver ODBC

Power BI · API REST anziché un driver

Punto Power BI a API RESTnon è un driver di database

Power BI accede normalmente a un database tramite un driver installato sul computer e, per gli aggiornamenti pianificati, tramite un gateway locale. Un endpoint di Query Streams è un URL HTTPS semplice, quindi Power BI Desktop e il servizio Power BI lo leggono con il connettore Web integrato. Il portale genera automaticamente la query Power Query M. Esporta → Power Query M (pq)Incolla, aggiungi la tua chiave, fatto. Lo stesso file funziona anche in Excel.

Circa 5 minuti Nessun driver, nessun gateway I dati rimangono sulla tua rete Anche Excel
Hai bisogno di aiuto? Chiedi pure a noi. Apri Supporto Accedi a Query Streams (menu in alto a destra → Supporto) e inviaci un messaggio. Persone reali lo leggono, e "Non so cosa mi stia chiedendo questa schermata" è una domanda assolutamente legittima.

Quello che otterrai alla fine

Una tabella di Power BI alimentata da una query SQL salvata tramite HTTPS, aggiornabile nel servizio senza bisogno di un gateway locale, poiché l'endpoint ha l'aspetto di una qualsiasi API web. L'endpoint stesso appare in questo modo nella console del portale:

INVIAREapi.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19
ChiaveValoreDescrizione
città stringa OpzionaleSeattleFiltro richiamabile dalla query salvata
Chiave X-APIqsapi_AB••••••••••Il tuo token segreto
{
  "città": "Seattle"
}
IntestazioneValoreDescrizione
Chiave X-APIqsapi_AB••••••••••Il tuo token segreto. Uno per ogni chiamante, revocabile in qualsiasi momento.
Tipo di contenutoapplicazione/jsonI parametri vengono trasmessi come corpo JSON
Accettareapplicazione/jsonRisposta in formato JSON; se si richiede testo/CSV, si ottiene un file 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"}'
Stato 200 OKTempo 84 msMisurare 412 BTronco NO
{
  "colonne": [ { "nome": "customer_id", "tipo": "intero" }, { "nome": "nome", "tipo": "corda" }, { "nome": "città", "tipo": "corda" } ],
  "file": [
    { "customer_id": 1042, "nome": "Commercianti del Vento del Nord", "città": "Seattle" },
    { "customer_id": 1057, "nome": "Alpine Outfitters", "città": "Denver" },
    { "customer_id": 1063, "nome": "Harbour Foods", "città": "Halifax" }
  ],
  "meta": { "conteggio_righe": 3, "durata_agente_ms": 41, "request_id": "req_7Hq2mKd9" }
}
IntestazioneValoreDescrizione
tipo di contenutoapplicazione/json; charset=utf-8La busta sulla scheda Corpo
lunghezza del contenuto412Byte restituiti; il badge Dimensione sopra
Sola lettura: una sola query salvata, nient'altro SQL non esce mai dal tuo account Ogni chiamata nella scheda Attività

I driver sono necessari perché Power BI deve comunicare con il protocollo di rete di ciascun database, indipendentemente dal server su cui viene eseguito. Per questo motivo, l'aggiornamento pianificato richiede un gateway all'interno della rete locale. Con un endpoint, l'agente già presente nel database esegue la query e api.querystreams.com risponde a Power BI tramite HTTPS, quindi Power BI non deve installare nulla e il servizio non deve connettersi tramite tunnel.

DOVE RISIEDE IL DATABASEla rete del tuo ufficio o la sala serverIl tuo database personalerimane sulla tua reteAgente Query Streamsesegue la query salvataapi.querystreamscontrolla la chiaveHTTPS · solo righe, mai SQLCHIUNQUE POSSIEDA UNA CHIAVEla tua app, una dashboard, un partner, uno scriptGET o POST con X-API-KeyInvio in formato JSON, CSV o NDJSON
L'agente risiede sui tuoi dati ed esegue la query. api.querystreams.com verifica la chiave e il limite di richieste e inoltra le righe. Il chiamante non raggiunge mai la tua rete.

Cosa ti servirà

Un account Query Streams

Ogni piano include l'API REST. Il piano gratuito offre un endpoint, due chiavi e 250 righe per chiamata, sufficienti per realizzare questa guida. Registrati su my.querystreams.com.

L'agente su un computer che può raggiungere il tuo database, con la connessione aggiunta

Spesso si tratta del server di database stesso o di un computer sempre acceso sulla stessa rete.

Una query salvata in Query Builder

L'endpoint incapsula esattamente una query salvata. Scrivi la SELECT, eseguila una volta, salvala. Aggiungi un filtro dinamico (un @variable nella clausola WHERE) se i chiamanti devono essere in grado di filtrare.

Chi può creare endpoint? Proprietari, amministratori e creatori. Se il API L'elemento manca dalla barra superiore, un amministratore può attivarlo per il tuo utente in Account → AutorizzazioniChiunque condivida un endpoint con te ha bisogno solo di un account Query Streams, indipendentemente dal piano.

Inoltre Power BI Desktop o Excel 2016 o versioni successive. Se non disponi ancora di un endpoint, Hub API REST del database Ti permette di convertire una query salvata in un URL in quattro passaggi.

Connettere Power BI in quattro passaggi

  1. Esporta il file Power Query M

    In API apri il tuo endpoint, fai clic Esportare e scegliere Power Query M (pq)Il file è completo lasciare … dentro espressione con l'URL dell'endpoint e i parametri della funzione richiamabile già presenti. Ha questo aspetto:

    Esportazione · Power Query M (pq)
    permettere
      Origine = Json.Documento(Web.Contenuto(
        "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19", [Intestazioni = [#"Chiave API X" = "qsapi_LA_TUA_CHIAVE"], Query = [compressione = "nessuno"]])), righe = Sorgente[righe], tabella = Tabella.Da Records(righe)
    In
      tavolo

    L'esportazione richiede sempre compressione=nessuna, perché Power Query non è in grado di decodificare i frame LZ4; Power BI si aspetta JSON su gzip.

  2. Incollalo in Power BI

    In Power BI Desktop scegli Home → Trasforma dati → Nuova origine → Query vuota, apri il Editor avanzato, sostituisci il suo contenuto con il file e fai clic FattoIn Excel il percorso è Dati → Ottieni dati → Da altre fonti → Query vuota, quindi lo stesso editor avanzato.

  3. Aggiungi la tua chiave

    Sostituisci il segnaposto con la tua chiave di 49 caratteri che inizia con qsapi_ dall'endpoint Condivisione scheda. Quando Power BI chiede come connettersi, scegli Anonimo: la chiave viaggia nel Chiave X-API L'intestazione è già impostata dalla query, quindi non sono necessarie credenziali di Power BI.

  4. Carica e aggiorna

    Cliccare Chiudi e applica. IL file L'array diventa la tua tabella con una colonna per ogni colonna di query. Pubblica nel servizio Power BI e imposta una pianificazione di aggiornamento: poiché l'origine è un URL Web, non è richiesto alcun gateway locale. Ogni aggiornamento è una chiamata all'endpoint. Attività tab.

Questo è tutto. Power BI legge i dati in tempo reale tramite HTTPS, il database rimane protetto dal firewall e il proprietario del report non visualizza mai il codice SQL né le credenziali di accesso al database.

La richiesta che Power BI effettua

Dietro le quinte è la stessa chiamata che puoi fare con curl. I parametri contrassegnati come Callable possono essere passati da Power Query come Query = [città = "Seattle"]:

GET · parametri nella stringa di query
curl "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19?city=Seattle" \ -H "X-API-Key: qsapi_YOUR_KEY"
Risposta · 200 OK · application/json
{
  "colonne": [ { "nome": "customer_id", "tipo": "intero" }, { "nome": "nome", "tipo": "corda" }, { "nome": "città", "tipo": "corda" } ],
  "file": [
    { "customer_id": 1042, "nome": "Commercianti del Vento del Nord", "città": "Seattle" },
    { "customer_id": 1057, "nome": "Alpine Outfitters", "città": "Denver" },
    { "customer_id": 1063, "nome": "Harbour Foods", "città": "Halifax" }
  ],
  "meta": { "conteggio_righe": 3, "durata_agente_ms": 41, "request_id": "req_7Hq2mKd9" }
}

Le righe vengono restituite come oggetti indicizzati dal nome della colonna, con l'elenco delle colonne e un meta blocco che indica il numero di righe, se il risultato è stato troncato e l'ID della richiesta che puoi citare all'assistenza. La stessa chiamata come POST inserisce i parametri in un corpo JSON, che è la scelta giusta per lunghi elenchi di valori:

POST · parametri in un corpo JSON
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
File CSV anziché JSON, con riga di intestazione inclusa. Accetta: testo/csv fa lo stesso. Gli endpoint di streaming restituiscono NDJSON (un oggetto JSON per riga) con un finale {"_summary": true, "row_count": N} riga; controlla quell'ultima riga.
?sample=true
Massimo cinque file, non fatturate. Utile per cablare un cliente.
?compression=lz4
Un corpo con telaio LZ4 per chiamanti ad alto volume con decoder; il Codice la scheda contiene il frammento del decodificatore per lingua. La semplice compressione gzip avviene automaticamente quando il client invia Accept-Encoding: gzip.
Autorizzazione: Portatore qsapi_…
Accettato come alias per Chiave X-API. Utilizzalo dal codice del browser.

Oltre Power BI

Excel e Power BI

Esporta → Power Query M (pq) ti fornisce una query già pronta. Incollala nell'Editor avanzato (Excel: Dati → Ottieni dati → Da altre origini → Query vuota; Power BI: Home → Trasforma dati → Nuova origine → Query vuota) e sostituisci il segnaposto con la tua query. qsapi_ chiave.

Postino, Insonnia, Campana

Lo stesso Esportare Il menu consente di scaricare una raccolta Postman v2.1, un'esportazione Insomnia v5 o una raccolta Hoppscotch con i parametri già compilati e un segnaposto per la chiave.

Il tuo codice personale

IL Codice La scheda contiene esempi funzionanti per cURL, Python, JavaScript, TypeScript, Java, C#, Go, PHP, PowerShell e Ruby. Esporta → Specifiche OpenAPI 3.1 alimenta qualsiasi generatore client o interfaccia utente Swagger.

n8n, Zapier, Make, cron

Crea un Chiave di servizio Per lo strumento, incolla l'URL e la chiave nel relativo nodo HTTP e pianificalo. Ogni strumento ha la sua chiave, quindi puoi revocarne uno senza modificare gli altri.

Cosa consentono i piani

PianoPunti terminaliChiavi per endpointPersone per endpointRighe per chiamata (statico)Righe per chiamata (streaming)Chiamate al minuto, per tasto
Gratuito1212502503
Nucleo personale2325,000250,00015
Plus personale55510,000500,00030
Nucleo aziendale5101050,0001,000,000300
Business Plus102025100,0005,000,000600
Gestione massima253050250,00010,000,000600
Nucleo aziendale5050100500,00025,000,0001,000
Enterprise Plus1001002501,000,00050,000,0001,000
Enterprise Max2502005002,500,000100,000,0001,500

Ogni chiamata ha anche un timeout fisso di 60 secondi e un limite di risposta di 8 MiB, e i byte restituiti vengono conteggiati nel limite dati mensile del tuo piano, lo stesso limite utilizzato dai componenti aggiuntivi di Excel e Fogli Google. La versione gratuita ha un endpoint e 5 MB al mese, che sono più che sufficienti per una piccola tabella richiamata più volte al giorno. Consulta la pagina dei prezzi per le indennità previste dal piano.

Gratis è un piano che mantieni. Non è una prova che scade. Scopri esattamente cosa include su pagina dei prezzi.

Per un report, limita la query alle colonne necessarie per gli elementi visivi e lascia che la pianificazione dell'aggiornamento si occupi del resto; Power BI legge l'intero risultato a ogni aggiornamento, quindi il limite statico di righe del tuo piano rappresenta il limite massimo per una singola tabella.

Tenerlo al sicuro

Il codice SQL rimane tuo

Chi effettua la chiamata riceve solo le righe. Non vede mai la query, i nomi delle tabelle o i dettagli della connessione e non può modificare ciò che viene eseguito dall'endpoint.

Una chiave, un punto di accesso, un chiamante

Una chiave funziona per un solo endpoint. Assegna una chiave a ogni persona o strumento, e ogni chiamata verrà registrata a quel valore. Revocandone una, le altre continueranno a funzionare; la revoca ha effetto entro circa cinque minuti.

Sola lettura, dalla tua parte del muro

L'agente esegue l'unica query SELECT salvata e nient'altro, dall'interno della rete locale, tramite la propria connessione in uscita. Non è necessario aprire alcuna porta né richiedere credenziali su Internet.

Ogni chiamata nel registro

IL Attività La scheda mostra ogni chiamata con ora, destinatario, stato, righe, byte e durata, comprese quelle rifiutate. Imposta un In scadenza durata di vita per una condivisione temporanea e l'endpoint si disattiva automaticamente alla data.

Quando qualcosa non funziona

StatoCodiceCosa fare
401CHIAVE API RICHIESTA / CHIAVE API NON VALIDAL'intestazione è mancante o la chiave è errata. Invia Chiave X-API: qsapi_…, tutti i 49 caratteri. Le chiavi possono essere copiate nuovamente dalla scheda Condivisione dell'endpoint.
403API_KEY_ENDPOINT_MISMATCHUna chiave valida utilizzata su un endpoint diverso. Ogni chiave appartiene a un singolo endpoint.
403CHIAVE API REVOCATA / ENDPOINT API SCADUTOLa chiave è stata revocata o l'endpoint ha raggiunto la data di scadenza. Genera una nuova chiave o ripristina l'endpoint.
400API_PARAM_NOT_OVERRIDABLEHai inviato un parametro che il proprietario non ha contrassegnato come richiamabile. Il corpo della richiesta elenca i nomi consentiti.
414API_QUERY_TOO_LARGELa stringa di query GET ha trasmesso 8 KB o 200 valori di elenco. Invia gli stessi parametri come corpo JSON POST.
413API_OUTPUT_TOO_LARGEIl risultato ha superato il limite di 8 MiB. Restringi la query o passa all'endpoint Streaming.
429API_RATE_LIMITEDTroppe chiamate in questo minuto per la chiave o l'endpoint. Attendi il Riprova dopo secondi o aumentare Limite di velocità Nella sezione Impostazioni API → Impostazioni predefinite del tuo piano.
429API_DATA_REALM_ESAURITOIl traffico dati mensile del proprietario è esaurito. Si azzera con il mese di fatturazione successivo; effettua l'upgrade per averne di più.
503API_AGENT_NON_CONNESSOL'agente associato al tuo database è offline. Verificalo in Dati → Agenti dati; le chiamate riprenderanno a funzionare non appena verrà ristabilita la connessione.
504API_QUERY_TIMEOUTL'esecuzione della query ha richiesto più di 60 secondi. Aggiungi un filtro o un indice, oppure salva una query più specifica.

Ogni corpo di errore ha la forma {"errore": {"codice": "…", "messaggio": "…"}} e ogni risposta porta con sé un X-QS-Request-Id Intestazione. Citare l'ID quando si scrive all'assistenza.

Due dettagli specifici di Power Query: a Errore origine dati denominazione 401 significa che la chiave nel file M è errata o è stata revocata; Expression.Error: Il campo 'rows' del record non è stato trovato significa che l'endpoint ha restituito una busta di errore, quindi esegui l'URL nella console del portale per leggerla.

Domande che le persone si pongono

I miei dati vengono copiati in Query Streams?

No. L'agente esegue la query nella posizione in cui si trovano i dati e invia solo le righe richieste dalla chiamata. Nulla viene sincronizzato o memorizzato nella cache; ogni chiamata esegue la query.

I chiamanti possono modificare la query SQL o richiedere altre tabelle?

No. Un endpoint esegue una query salvata. I chiamanti possono impostare solo i parametri che hai contrassegnato. Chiamabilee i valori sono associati in modo sicuro: il testo è racchiuso tra virgolette e preceduto da un carattere di escape, i numeri sono controllati per intervallo e gli elenchi sono espansi.

Come faccio a consegnarlo a un collega?

Sul punto finale Condivisione scheda scegli Persone e inserire la loro email. Ricevono un link magico, accedono con quell'indirizzo (un account gratuito va bene) e creano la propria chiave; vedrai le loro chiamate per nome nella scheda Attività. Per un server o uno strumento di automazione, crea un Chiave API con un'etichetta invece.

Cosa succede quando modifico la query salvata?

L'endpoint esegue il nuovo SQL alla chiamata successiva e la sua specifica OpenAPI viene rigenerata. L'URL e le chiavi non cambiano. Se aggiungi o rimuovi un filtro, rivisita Parametri di blocco in modo che chi chiama veda i parametri corretti.

Il piano gratuito copre davvero tutto questo?

Sì. Il piano gratuito è un piano che mantieni, non una prova che scade. Include un endpoint, due chiavi e 250 righe per chiamata. Scopri esattamente cosa include su pagina dei prezzi.

L'aggiornamento pianificato nel servizio Power BI funziona davvero senza un gateway?

Sì. Il servizio può aggiornare qualsiasi Contenuti web Fonte accessibile su Internet pubblico tramite autenticazione anonima o con intestazione incorporata. api.querystreams.com è una di queste fonti; Power BI non contatta mai il tuo database.

Posso utilizzare DirectQuery?

No. Le origini dati Web in Power BI sono in modalità Importazione. Utilizza la pianificazione di aggiornamento oppure mantieni la query più specifica e aggiornala più spesso, entro i limiti previsti dal tuo piano.

Tableau e Looker Studio possono utilizzare lo stesso endpoint?

Qualsiasi strumento dotato di connettore web o REST può, e Esporta → Specifiche OpenAPI 3.1 descrive l'endpoint per i costruttori di connettori. Scegli ?format=csv per gli strumenti che preferiscono il formato CSV.

Ancora bloccato? Apri Supporto Accedi a Query Streams e comunicaci a quale passaggio ti trovi e cosa visualizzi. Ti aiuteremo a connetterti.

Setup trouble?

  • Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?
Updated on 27 settembre 2026

Powered by BetterDocs