Menggunakan titik akhir RESTful untuk mengimpor data ke Azure SQL Database
Azure SQL Database memungkinkan Anda mengimpor data menggunakan titik akhir REST eksternal melalui prosedur sp_invoke_external_rest_endpointyang disimpan sistem . Anda dapat memanggil titik akhir HTTP REST apa pun langsung dari kueri SQL Anda, sehingga memungkinkan untuk berintegrasi dengan berbagai layanan, termasuk Azure Functions, Azure Logic Apps, dan Azure App Service.
Selain itu, jika Anda ingin memanggil layanan REST yang tidak berada dalam daftar yang diizinkan, Anda dapat menggunakan Azure API Management untuk mengekspos layanan yang diinginkan dengan aman dan membuatnya tersedia untuk sp_invoke_external_rest_endpoint.
Menjelajahi penggunaan API
Mari kita jelajahi beberapa kasus dan skenario penggunaan utama di mana fungsionalitas ini dapat bermanfaat.
Pemrosesan data dengan Azure Functions: Anda dapat menggunakan
sp_invoke_external_rest_endpointuntuk memanggil Azure Function yang memproses data. Misalnya, Anda dapat mengirim batch data ke Azure Function untuk perhitungan atau transformasi yang kompleks, lalu menyimpan hasilnya kembali di database Anda.Integrasi dengan Cognitive Services: Anda dapat memanggil API Cognitive Services untuk melakukan tugas seperti analisis sentimen, pengenalan gambar, atau terjemahan bahasa. Misalnya, Anda dapat mengirim data teks ke Text Analytics API untuk menganalisis umpan balik pelanggan dan menyimpan skor sentimen dalam database Anda.
Alur kerja berbasis peristiwa: Gunakan
sp_invoke_external_rest_endpointuntuk memicu alur kerja di Logic Apps atau Power Automate. Ini dapat berguna untuk mengotomatiskan proses bisnis, seperti mengirim pemberitahuan atau memperbarui rekaman di sistem lain berdasarkan perubahan dalam database Anda.Pengayaan data: Perkaya data Anda dengan memanggil API eksternal. Misalnya, Anda dapat memanggil REST API untuk mendapatkan informasi tambahan tentang produk atau pelanggan lalu menyimpan data di database Anda.
API Management: Gunakan
sp_invoke_external_rest_endpointuntuk berinteraksi dengan API yang dikelola oleh Azure API Management. Ini memungkinkan Anda menggunakan API yang ada untuk berbagai fungsi tanpa harus menulis kode integrasi yang kompleks.
Menerapkan panggilan API aman
Titik akhir REST sering memerlukan autentikasi, yang dapat dilakukan melalui pasangan kunci-nilai dalam string kueri atau header HTTP. Anda dapat menyimpan data ini dengan aman menggunakan DATABASE SCOPED CREDENTIALS dengan parameter IDENTITY yang menentukan cara meneruskan data autentikasi. Parameter IDENTITY mendukung empat opsi: HTTPEndpointHeaders, HTTPEndpointQueryString, Managed Identity, dan Shared Access Signature (SAS).
Kredensial yang Dicakup oleh Basis Data yang dibuat dapat digunakan melalui @credential parameter dalam prosedur tersimpan sp_invoke_external_rest_endpoint. Informasi autentikasi harus diberikan melalui parameter SECRET dalam format JSON datar.
CREATE DATABASE SCOPED CREDENTIAL [https://.azurewebsites.net/api/]
WITH IDENTITY = 'HTTPEndpointHeaders', SECRET = '{"x-functions-key":"<your-function-key>"}';
Memanggil titik akhir REST
Mari kita pertimbangkan skenario di mana Anda ingin mengimpor data dari REST API yang menyediakan informasi cuaca. Anda sudah memiliki tabel WeatherData di Azure SQL Database dengan kolom City, Temperature, Condition, dan Timestamp.
Gunakan prosedur tersimpan sp_invoke_external_rest_endpoint untuk memanggil REST API dan menyisipkan data ke dalam tabel Anda:
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();
Saat mempertimbangkan penggunaan titik akhir REST, pastikan bahwa titik akhir yang Anda panggil aman dan data sensitif apa pun ditangani dengan tepat. Perhatikan implikasi performa dari panggilan API yang sering, terutama saat berhadapan dengan himpunan data besar atau pembaruan frekuensi tinggi. Selain itu, terapkan penanganan kesalahan untuk mengelola potensi masalah dengan panggilan API, seperti batas waktu atau respons yang tidak valid.