Punkt Power BI w Interfejs API REST, nie jest sterownikiem bazy danych
Usługa Power BI zazwyczaj łączy się z bazą danych za pośrednictwem sterownika na komputerze, a w przypadku zaplanowanego odświeżania – za pośrednictwem bramy lokalnej. Punkt końcowy Query Streams to zwykły adres URL HTTPS, więc Power BI Desktop i usługa Power BI odczytują go za pomocą wbudowanego łącznika internetowego. Portal zapisuje kod Power Query M za Ciebie: Eksportuj → Power Query M (.pq)Wklej, dodaj klucz i gotowe. Ten sam plik działa w Excelu.
Co z tego wyjdzie?
Tabela Power BI zasilana zapisanym zapytaniem SQL przez HTTPS, odświeżalna w usłudze bez bramy lokalnej, ponieważ punkt końcowy wygląda jak dowolny interfejs API sieci Web. Sam punkt końcowy wygląda następująco w konsoli portalu:
| Klawisz | Wartość | Opis |
|---|---|---|
miasto ciąg znaków Fakultatywny | Seattle | Wywoływalny filtr z zapisanego zapytania |
Klucz X-API | qsapi_AB • • • • • • • • • • | Twój tajny token |
{
"miasto": „Seattle”
}| Chodnikowiec | Wartość | Opis |
|---|---|---|
Klucz X-API | qsapi_AB • • • • • • • • • • | Twój tajny token. Jeden na osobę dzwoniącą, możesz go odwołać w dowolnym momencie. |
Typ zawartości | aplikacja/json | Parametry podróżują jako treść JSON |
Przyjąć | aplikacja/json | Powrót JSON; poproś o tekst/csv, a otrzymasz CSV |
curl -X POST "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19" \ -H "Klucz X-API: qsapi_TWÓJ_KLUCZ" \ -H "Typ zawartości: application/json" \ -d '{"miasto": "Seattle"}'{
„kolumny”: [ { "nazwa": „identyfikator_klienta”, "typ": "liczba całkowita" }, { "nazwa": "nazwa", "typ": "smyczkowy" }, { "nazwa": "miasto", "typ": "smyczkowy" } ],
"wydziwianie": [
{ „identyfikator_klienta”: 1042, "nazwa": „Handlarze z Północnego Wiatru”, "miasto": „Seattle” },
{ „identyfikator_klienta”: 1057, "nazwa": „Alpine Outfitters”, "miasto": "Denver" },
{ „identyfikator_klienta”: 1063, "nazwa": „Harbour Foods”, "miasto": "Halifax" }
],
"meta": { „liczba_wierszy”: 3, „czas_czasu_agenta_w_ms”: 41, „id_żądania”: „req_7Hq2mKd9” }
}| Chodnikowiec | Wartość | Opis |
|---|---|---|
typ zawartości | aplikacja/json; zestaw znaków=utf-8 | Koperta na karcie Treść |
długość treści | 412 | Zwrócono bajty; powyżej znajduje się odznaka Rozmiar |
Powodem istnienia sterowników jest to, że Power BI musi komunikować się protokołem przewodowym każdej bazy danych z dowolnego miejsca, w którym jest uruchomiona, dlatego zaplanowane odświeżanie wymaga bramy w sieci. W przypadku punktu końcowego agent, który jest już połączony z bazą danych, uruchamia zapytanie, a api.querystreams.com odpowiada Power BI przez HTTPS. Power BI nie musi nic instalować ani usługa nie musi do niczego tunelować.
Czego będziesz potrzebować
Konto Query Streams
Każdy plan ma API REST. Wersja darmowa zapewnia jeden punkt końcowy, dwa klucze i 250 wierszy na wywołanie, co wystarcza do stworzenia tego przewodnika. Zarejestruj się na my.querystreams.com.
Agent na komputerze, który może uzyskać dostęp do własnej bazy danych, z dodanym połączeniem
Często jest to sam serwer bazy danych lub stale włączony komputer w tej samej sieci.
Zapisane zapytanie w Kreatorze zapytań
Punkt końcowy obejmuje dokładnie jedno zapisane zapytanie. Napisz SELECT, uruchom je raz i zapisz. Dodaj filtr dynamiczny (a @variable w klauzuli WHERE), jeśli wywołujący mają mieć możliwość filtrowania.
Kto może tworzyć punkty końcowe? Właściciele, administratorzy i twórcy. Jeśli API Jeśli na górnym pasku brakuje elementu, administrator może go włączyć dla swojego użytkownika w Konto → UprawnieniaKażda osoba, z którą dzielisz punkt końcowy, potrzebuje tylko konta Query Streams, niezależnie od planu.
Plus Power BI Desktop lub Excel 2016 lub nowszy. Jeśli nie masz jeszcze punktu końcowego, Centrum API REST bazy danych prowadzi Cię od zapisanego zapytania do adresu URL w czterech krokach.
Połącz Power BI w czterech krokach
Eksportuj plik Power Query M
W API otwórz swój punkt końcowy, kliknij Eksport i wybierz Power Query M (.pq)Plik jest kompletny
wpuścić…wyrażenie z adresem URL punktu końcowego i parametrami wywoływalnymi, które są już na swoim miejscu. Wygląda to tak:Eksport · Power Query M (.pq)pozwalać Źródło = Json.Dokument(Sieć.Zawartość( „https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19”, [Nagłówki = [#„Klucz X-API” = „qsapi_TWÓJ_KLUCZ”], Zapytanie = [kompresja = "nic"]])), wiersze = Źródło[wiersze], tabela = Tabela.ZRekordów(wydziwianie) W tabela
Eksport zawsze prosi o
kompresja=brakponieważ Power Query nie potrafi dekodować ramek LZ4; Power BI oczekuje formatu JSON przesyłanego za pomocą pliku gzip.Wklej do Power BI
W Power BI Desktop wybierz Strona główna → Przekształć dane → Nowe źródło → Puste zapytanie, otwórz Zaawansowany edytor, zastąp jego zawartość plikiem i kliknij GotoweW programie Excel ścieżka jest taka Dane → Pobierz dane → Z innych źródeł → Puste zapytanie, a następnie ten sam Edytor zaawansowany.
Dodaj swój klucz
Zastąp symbol zastępczy 49-znakowym kluczem początkowym
qsapi_z punktu końcowego Udostępnianie karta. Gdy Power BI zapyta, jak nawiązać połączenie, wybierz Anonimowy:klucz podróżuje wKlucz X-APInagłówek zapytania jest już ustawiony, więc nie jest potrzebna żadna akredytacja Power BI.Załaduj i odśwież
Kliknij Zamknij i zastosuj. Ten
wydziwianieTablica staje się tabelą z jedną kolumną na kolumnę zapytania. Opublikuj w usłudze Power BI i ustaw harmonogram odświeżania: ponieważ źródłem jest adres URL, nie jest wymagana brama lokalna. Każde odświeżenie to jedno wywołanie w punkcie końcowym. Działalność patka.
To wszystko. Usługa Power BI odczytuje wiersze na żywo za pośrednictwem protokołu HTTPS, baza danych pozostaje za zaporą sieciową, a właściciel raportu nigdy nie widzi kodu SQL ani danych logowania do bazy danych.
Żądanie wysyłane przez Power BI
Pod maską jest to to samo wywołanie, które można wykonać za pomocą curl. Parametry oznaczone jako Callable można przekazać z Power Query jako Zapytanie = [miasto = "Seattle"]:
curl "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19?city=Seattle" \ -H "Klucz X-API: qsapi_TWÓJ_KLUCZ"
{
„kolumny”: [ { "nazwa": „identyfikator_klienta”, "typ": "liczba całkowita" }, { "nazwa": "nazwa", "typ": "smyczkowy" }, { "nazwa": "miasto", "typ": "smyczkowy" } ],
"wydziwianie": [
{ „identyfikator_klienta”: 1042, "nazwa": „Handlarze z Północnego Wiatru”, "miasto": „Seattle” },
{ „identyfikator_klienta”: 1057, "nazwa": „Alpine Outfitters”, "miasto": "Denver" },
{ „identyfikator_klienta”: 1063, "nazwa": „Harbour Foods”, "miasto": "Halifax" }
],
"meta": { „liczba_wierszy”: 3, „czas_czasu_agenta_w_ms”: 41, „id_żądania”: „req_7Hq2mKd9” }
}Wiersze powracają jako obiekty kluczowane nazwą kolumny, z listą kolumn i meta Blok, który informuje o liczbie wierszy, o tym, czy wynik został przycięty, oraz o identyfikatorze żądania, który można podać w cudzysłowie. To samo wywołanie, co POST, umieszcza parametry w treści JSON, co jest właściwym rozwiązaniem w przypadku długich list wartości:
curl -X POST "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19" \ -H "Klucz X-API: qsapi_TWÓJ_KLUCZ" \ -H "Typ zawartości: application/json" \ -d '{"parametry": {"miasto": "Seattle"}}'?format=csv- CSV zamiast JSON, dołączony wiersz nagłówka.
Akceptuj: tekst/csvrobi to samo. Punkty końcowe przesyłania strumieniowego zwracają NDJSON (jeden obiekt JSON na wiersz) z końcowym{"_summary": prawda, "liczba_wierszy": N}linia; sprawdź ostatnią linię. ?sample=true- Maksymalnie pięć rzędów, bez opłat. Dobre do podłączenia klienta.
?kompresja=lz4- Obudowa LZ4 przeznaczona do połączeń o dużej głośności z dekoderem; Kod Karta zawiera fragment kodu dekodera dla każdego języka. Zwykły gzip działa automatycznie, gdy klient wysyła
Akceptuj kodowanie: gzip. Autoryzacja: Nośnik qsapi_…- Zaakceptowano jako alias dla
Klucz X-API. Użyj go z kodu przeglądarki.
Poza Power BI
Excel i Power BI
Eksportuj → Power Query M (.pq) daje Ci gotowe zapytanie. Wklej je do Edytora zaawansowanego (Excel: Dane → Pobierz dane → Z innych źródeł → Puste zapytanie; Power BI: Strona główna → Przekształć dane → Nowe źródło → Puste zapytanie) i zastąp symbol zastępczy swoim qsapi_ klawisz.
Listonosz, Bezsenność, Gra w klasy
Ten sam Eksport menu pobiera kolekcję Postman v2.1, eksport Insomnia v5 lub kolekcję Hoppscotch z wypełnionymi parametrami i symbolem zastępczym klucza.
Twój własny kod
Ten Kod na karcie znajdują się działające przykłady dla cURL, Python, JavaScript, TypeScript, Java, C#, Go, PHP, PowerShell i Ruby. Eksport → Specyfikacja OpenAPI 3.1 zasila dowolny generator klienta lub interfejs użytkownika Swagger.
n8n, Zapier, Make, cron
Utwórz Klucz serwisowy W przypadku narzędzia wklej adres URL i klucz do węzła HTTP i zaplanuj jego wykonanie. Każde narzędzie ma własny klucz, więc możesz unieważnić jedno z nich bez zmiany pozostałych.
Co pozwalają plany
| Plan | Punkty końcowe | Klucze na punkt końcowy | Liczba osób na punkt końcowy | Liczba wierszy na wywołanie (statyczna) | Liczba wierszy na wywołanie (przesyłanie strumieniowe) | Połączenia na minutę, na klawisz |
|---|---|---|---|---|---|---|
| Bezpłatny | 1 | 2 | 1 | 250 | 250 | 3 |
| Rdzeń osobisty | 2 | 3 | 2 | 5,000 | 250,000 | 15 |
| Osobisty Plus | 5 | 5 | 5 | 10,000 | 500,000 | 30 |
| Podstawy działalności | 5 | 10 | 10 | 50,000 | 1,000,000 | 300 |
| Biznes Plus | 10 | 20 | 25 | 100,000 | 5,000,000 | 600 |
| Biznes Max | 25 | 30 | 50 | 250,000 | 10,000,000 | 600 |
| Rdzeń przedsiębiorstwa | 50 | 50 | 100 | 500,000 | 25,000,000 | 1,000 |
| Enterprise Plus | 100 | 100 | 250 | 1,000,000 | 50,000,000 | 1,000 |
| Enterprise Max | 250 | 200 | 500 | 2,500,000 | 100,000,000 | 1,500 |
Każde wywołanie ma również stały limit czasu zapytania wynoszący 60 sekund i limit odpowiedzi 8 MiB, a zwracane bajty wliczają się do miesięcznego limitu danych w ramach planu, takiego samego jak w przypadku dodatków do Excela i Arkuszy Google. Wersja darmowa ma jeden punkt końcowy i 5 MB transferu danych miesięcznie, co pozwala na wygodne wywoływanie małej tabeli wiele razy dziennie. Zobacz stronę z cennikiem dla dodatków według planu.
Za darmo to plan, którego się trzymasz. To nie jest okres próbny, który wygasa. Zobacz dokładnie, co obejmuje. strona z cenami.
W przypadku raportu ogranicz zapytanie do kolumn, których potrzebują elementy wizualne, i pozwól, aby harmonogram odświeżania zajął się resztą. Usługa Power BI odczytuje cały wynik przy każdym odświeżeniu, więc statyczny limit wierszy w planie stanowi górną granicę pojedynczej tabeli.
Dbanie o bezpieczeństwo
SQL pozostaje Twój
Użytkownicy wywołujący otrzymują wiersze. Nigdy nie widzą zapytania, nazw tabel ani szczegółów połączenia i nie mogą zmienić działania punktu końcowego.
Jeden klucz, jeden punkt końcowy, jeden dzwoniący
Klucz działa dla dokładnie jednego punktu końcowego. Przydziel każdej osobie lub narzędziu własny klucz, a każde wywołanie będzie rejestrowane. Cofnij jeden klucz, a pozostałe będą działać dalej; cofnięcie nastąpi po około pięciu minutach.
Tylko do odczytu, po Twojej stronie ściany
Agent uruchamia tylko jeden zapisany komunikat SELECT i nic więcej, z poziomu Twojej sieci, przez własne połączenie wychodzące. Nie ma portu do otwarcia ani żadnych danych uwierzytelniających w internecie.
Każde połączenie w księdze głównej
Ten Działalność Karta pokazuje każde połączenie z czasem, odbiorcą, statusem, wierszami, bajtami i czasem trwania, w tym również odrzuconymi. Ustaw Wygasa okres istnienia tymczasowego udziału, a punkt końcowy wyłączy się w tym dniu.
Kiedy coś nie działa
| Status | Kod | Co robić |
|---|---|---|
| 401 | API_KEY_REQUIRED / API_KEY_INVALID | Brak nagłówka lub błędny klucz. Wyślij Klucz X-API: qsapi_…, całe 49 znaków. Klucze można ponownie skopiować z karty Udostępnianie punktu końcowego. |
| 403 | NIEZGODNOŚĆ PUNKTU KOŃCOWEGO_KLUCZA_API | Prawidłowy klucz używany w innym punkcie końcowym. Każdy klucz należy do jednego punktu końcowego. |
| 403 | API_KEY_REVOKED / API_ENDPOINT_EXPIRED | Klucz został unieważniony lub punkt końcowy osiągnął datę wygaśnięcia. Utwórz nowy klucz lub przywróć punkt końcowy. |
| 400 | API_PARAM_NOT_NOT_RIDABLE | Wysłano parametr, którego właściciel nie oznaczył jako „Wywoływalny”. Treść zawiera listę dozwolonych nazw. |
| 414 | ZA_DUŻE_ZAPYTANIE_API | Ciąg zapytania GET przekazał 8 KB lub 200 wartości listy. Wyślij te same parametry jako treść JSON zapytania POST. |
| 413 | API_OUTPUT_TOO_LARGE | Wynik przekroczył limit 8 MiB. Zawęź zapytanie lub zmień punkt końcowy na strumieniowanie. |
| 429 | OGRANICZONA_PRACA_API | Zbyt wiele połączeń w tej minucie dotyczących klucza lub punktu końcowego. Poczekaj na Ponów próbę po sekund lub podnieś Limit szybkości w Ustawieniach API → Domyślne w ramach Twojego planu. |
| 429 | API_DATA_REALM_EXHAUSTED | Miesięczny limit danych właściciela został wyczerpany. Limit resetuje się wraz z miesiącem rozliczeniowym; wybierz wyższy limit. |
| 503 | API_AGENT_NIE_POŁĄCZONY | Agent obsługujący Twoją bazę danych jest offline. Sprawdź to w sekcji Dane → Agenci danych; połączenia zostaną nawiązane ponownie po ponownym połączeniu. |
| 504 | Limit czasu zapytania API | Zapytanie trwało dłużej niż 60 sekund. Dodaj filtr lub indeks albo zapisz węższe zapytanie. |
Każdy błąd ma kształt {"błąd": {"kod": "…", "komunikat": "…"}} a każda odpowiedź niesie ze sobą Identyfikator żądania X-QS nagłówek. Podaj identyfikator, pisząc do pomocy technicznej.
Dwie specyfikacje Power Query: a Błąd źródła danych nazewnictwo 401 oznacza, że klucz w pliku M jest błędny lub został unieważniony; Wyrażenie. Błąd: Pole „wiersze” rekordu nie zostało znalezione oznacza, że punkt końcowy zwrócił kopertę błędu, więc uruchom adres URL w konsoli portalu, aby ją odczytać.
Pytania, które zadają ludzie
Czy moje dane zostaną skopiowane do strumieni zapytań?
Nie. Agent uruchamia zapytanie, w którym znajdują się Twoje dane, i wysyła tylko wiersze, o które poprosiło wywołanie. Nic nie jest synchronizowane ani buforowane w międzyczasie; każde wywołanie uruchamia zapytanie.
Czy osoby wywołujące mogą zmienić kod SQL lub poprosić o inne tabele?
Nie. Punkt końcowy uruchamia jedno zapisane zapytanie. Użytkownicy wywołujący mogą ustawić tylko zaznaczone parametry. Możliwość wywołania, a wartości są bezpiecznie powiązane: tekst jest cytowany i zastępowany znakami ucieczki, zakresy liczb są sprawdzane, listy są rozwijane.
Jak przekazać to partnerowi?
Na punkcie końcowym Udostępnianie wybierz kartę Ludzie i wprowadź swój adres e-mail. Otrzymują magiczny link, logują się za pomocą tego adresu (bezpłatne konto jest wystarczające) i tworzą własny klucz; ich połączenia widzisz po nazwie na karcie Aktywność. W przypadku serwera lub narzędzia do automatyzacji utwórz Klucz API z etykietą.
Co się stanie, gdy edytuję zapisane zapytanie?
Punkt końcowy uruchamia nową instrukcję SQL przy następnym wywołaniu, a specyfikacja OpenAPI zostaje zregenerowana. Adres URL i klucze nie ulegają zmianie. Jeśli dodasz lub usuniesz filtr, ponownie sprawdź… Zablokuj parametry aby dzwoniący widzieli właściwe parametry.
Czy plan darmowy naprawdę to obejmuje?
Tak. Darmowy plan to taki, który można zachować, a nie okres próbny, który wygasa. Obejmuje jeden punkt końcowy, dwa klucze i 250 wierszy na wywołanie. Zobacz dokładnie, co obejmuje na stronie. strona z cenami.
Czy zaplanowane odświeżanie w usłudze Power BI naprawdę działa bez bramy?
Tak. Usługa może odświeżyć dowolny Zawartość sieci źródło, do którego można dotrzeć z publicznego Internetu przy użyciu uwierzytelniania anonimowego lub za pomocą osadzonego nagłówka. Takim źródłem jest api.querystreams.com; usługa Power BI nigdy nie nawiązuje kontaktu z twoją bazą danych.
Czy mogę używać DirectQuery?
Nie. Źródła internetowe w usłudze Power BI działają w trybie importu. Użyj harmonogramu odświeżania lub zawęź zakres zapytania i odświeżaj częściej, zgodnie z limitem częstotliwości określonym w planie.
Czy Tableau i Looker Studio mogą korzystać z tego samego punktu końcowego?
Każde narzędzie z łącznikiem internetowym lub REST może i Eksport → Specyfikacja OpenAPI 3.1 Opisuje punkt końcowy dla konstruktorów łączników. Wybierz ?format=csv dla narzędzi, które preferują format CSV.
Powiązane przewodniki
Setup trouble?
- Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?

