Bruk RESTful-endepunkter til å importere data til Azure SQL Database
Med Azure SQL Database kan du importere data ved hjelp av et eksternt REST-endepunkt gjennom den systemlagrede prosedyren sp_invoke_external_rest_endpoint. Du kan ringe alle HTTP REST-endepunkter direkte fra SQL-spørringene, noe som gjør det mulig å integrere med et bredt spekter av tjenester, inkludert Azure Functions, Azure Logic Apps og Azure App Service.
Hvis du vil aktivere en REST-tjeneste som ikke er innenfor den tillatte listen, kan du også bruke Azure API Management til å vise den ønskede tjenesten på en sikker måte og gjøre den tilgjengelig for sp_invoke_external_rest_endpoint.
Utforsk API-bruk
La oss utforske noen av de viktigste brukstilfellene og scenarioene der denne funksjonaliteten kan være gunstig.
Databehandling med Azure Functions: Du kan bruke
sp_invoke_external_rest_endpointtil å kalle en Azure-funksjon som behandler data. Du kan for eksempel sende en gruppe med data til en Azure Function for komplekse beregninger eller transformasjoner, og deretter lagre resultatene tilbake i databasen.Integrasjon med Cognitive Services: Du kan ringe Cognitive Services-API-er for å utføre oppgaver som sentimentanalyse, bildegjenkjenning eller språkoversettelse. Du kan for eksempel sende tekstdata til API-en for tekstanalyse for å analysere tilbakemeldinger fra kunder og lagre sentimentresultatene i databasen.
Hendelsesdrevne arbeidsflyter: Brukes
sp_invoke_external_rest_endpointtil å utløse arbeidsflyter i Logic Apps eller Power Automate. Dette kan være nyttig for å automatisere forretningsprosesser, for eksempel sende varsler eller oppdatere poster i andre systemer basert på endringer i databasen.Databerikelse: Berike dataene dine ved å kalle eksterne API-er. Du kan for eksempel kalle en REST-API for å få mer informasjon om et produkt eller en kunde, og deretter lagre dataene i databasen.
API-administrasjon: Brukes
sp_invoke_external_rest_endpointtil å samhandle med API-er som administreres av Azure API Management. Dette lar deg bruke eksisterende API-er for ulike funksjoner uten å måtte skrive kompleks integreringskode.
Implementere sikre API-kall
REST-endepunkter krever ofte godkjenning, som kan gjøres via nøkkelverdipar i spørringsstrengen eller HTTP-overskrifter. Du kan lagre disse dataene på en sikker måte ved hjelp av DATABASE SCOPED CREDENTIALS parameteren IDENTITY som angir hvordan godkjenningsdataene skal sendes. Parameteren IDENTITY støtter fire alternativer: HTTPEndpointHeaders, HTTPEndpointQueryString, Managed Identity og Shared Access Signature (SAS).
Den opprettede LEGITIMASJONen for DATABASEOMFANG KAN brukes via parameteren @credential i den sp_invoke_external_rest_endpoint lagrede prosedyren. Godkjenningsinformasjonen må angis via SECRET-parameteren i et flatt JSON-format.
CREATE DATABASE SCOPED CREDENTIAL [https://.azurewebsites.net/api/]
WITH IDENTITY = 'HTTPEndpointHeaders', SECRET = '{"x-functions-key":"<your-function-key>"}';
Aktiver REST-endepunkt
La oss vurdere et scenario der du vil importere data fra en REST-API som gir værinformasjon. Du har allerede en WeatherData tabell i Azure SQL Database med Citykolonner , Temperature, Conditionog Timestamp kolonner.
Bruk den sp_invoke_external_rest_endpoint lagrede prosedyren til å kalle REST-API-en og sette inn dataene i tabellen:
DECLARE @response NVARCHAR(MAX);
EXEC sp_invoke_external_rest_endpoint
@method = 'GET',
@url = 'https://api.weather.com/v3/wx/conditions/current?apiKey=your_api_key&format=json',
@response = @response OUTPUT;
INSERT INTO WeatherData (City, Temperature, Condition, Timestamp)
SELECT
JSON_VALUE(@response, '$.location.city'),
JSON_VALUE(@response, '$.temperature'),
JSON_VALUE(@response, '$.weatherCondition'),
GETDATE();
Når du vurderer bruken av REST-endepunkter, må du sørge for at endepunktene du kaller, er sikre og at sensitive data håndteres på riktig måte. Vær oppmerksom på ytelsesimplikasjonene av hyppige API-kall, spesielt når du arbeider med store datasett eller høyfrekvente oppdateringer. Du kan også implementere feilbehandling for å håndtere potensielle problemer med API-kall, for eksempel tidsavbrudd eller ugyldige svar.