שימוש בנקודות קצה של RESTful כדי לייבא נתונים למסד נתונים של Azure SQL

הושלם

Azure SQL Database מאפשר לך לייבא נתונים באמצעות נקודת קצה חיצונית של REST באמצעות הפרוצדורה המאוחסנת על-ידי המערכת sp_invoke_external_rest_endpoint. באפשרותך להתקשר לכל נקודות קצה של REST של HTTP ישירות מתוך שאילתות ה- SQL שלך, כך שניתן לשלב ביניהם מגוון רחב של שירותים, כולל Azure Functions, Azure Logic Apps ו- Azure App Service.

כמו כן, אם ברצונך להפעיל שירות REST שאינו נמצא ברשימה המותרת, באפשרותך להשתמש ב- Azure API Management כדי לחשוף באופן מאובטח את השירות הרצוי להפוך אותו לזמין עבור sp_invoke_external_rest_endpoint.

גלה שימוש ב- API

בוא נבחן כמה מקרי שימוש ותרחישים עיקריים שבהם פונקציונליות זו יכולה להיות מועילה.

  • עיבוד נתונים באמצעות Azure Functions: באפשרותך להשתמש בה sp_invoke_external_rest_endpoint כדי לקרוא לפונקציה של Azure שמ מעבדת נתונים. לדוגמה, באפשרותך לשלוח אצוות נתונים לפונקציה של Azure לחישובים או המרות מורכבים ולאחר מכן לאחסן את התוצאות בחזרה במסד הנתונים.

  • שילוב עם השירותים הקוגניטיביים: באפשרותך לקרוא ממשקי API של Cognitive Services לביצוע משימות כגון ניתוח סנטימנט, זיהוי תמונה או תרגום שפה. לדוגמה, תוכל לשלוח נתוני טקסט ל- API של 'ניתוח טקסט' כדי לנתח משוב מלקוחות ולאחסן את תוצאות הסנטימנט במסד הנתונים שלך.

  • זרימות עבודה מונחות אירועים: השתמש כדי sp_invoke_external_rest_endpoint להפעיל זרימות עבודה באפליקציות לוגיות או ב- Power Automate. פעולה זו יכולה להיות שימושית להפיכת תהליכים עסקיים לאוטומטיים, כגון שליחת הודעות או עדכון רשומות במערכות אחרות בהתבסס על שינויים במסד הנתונים שלך.

  • העשרת נתונים: העשרת הנתונים שלך על-ידי קריאה לממשקי API חיצוניים. לדוגמה, תוכל להתקשר לממשק API של REST כדי לקבל מידע נוסף אודות מוצר או לקוח ולאחר מכן לאחסן את הנתונים במסד הנתונים.

  • ניהול API: השתמש כדי sp_invoke_external_rest_endpoint לקיים אינטראקציה עם ממשקי API המנוהלות על-ידי Azure API Management. הדבר מאפשר לך להשתמש בממשקי API קיימים עבור פונקציות שונות מבלי לכתוב קוד שילוב מורכב.

יישום שיחות API מאובטחות

נקודות קצה של REST דורשות לעתים קרובות אימות, שניתן לבצע באמצעות זוגות של ערכי מפתח במחרוזת השאילתה או בכותרות HTTP. באפשרותך לאחסן נתונים אלה באופן מאובטח באמצעות DATABASE SCOPED CREDENTIALS הפרמטר IDENTITY המציין כיצד להעביר את נתוני האימות. הפרמטר IDENTITY תומך בארבע אפשרויות: HTTPEndpointHeaders, HTTPEndpointQueryString, זהות מנוהלת וחתימה של גישה משותפת (SAS).

ניתן להשתמש באישור SCOPED של מסד הנתונים שנוצר באמצעות הפרמטר @credential בהליך sp_invoke_external_rest_endpoint המאוחסן. יש לספק את פרטי האימות באמצעות הפרמטר SECRET בתבנית JSON שטוחה.

CREATE DATABASE SCOPED CREDENTIAL [https://.azurewebsites.net/api/]
WITH IDENTITY = 'HTTPEndpointHeaders', SECRET = '{"x-functions-key":"<your-function-key>"}';

הפעלת נקודת קצה של REST

נשקול תרחיש שבו ברצונך לייבא נתונים מ- REST API המספק מידע על מזג האוויר. כבר יש לך טבלה במסד WeatherData הנתונים של Azure SQL עם City, Temperature, Condition, ועמודות Timestamp .

השתמש בהליך sp_invoke_external_rest_endpoint המאוחסן כדי לקרוא ל- REST API ולהוסיף את הנתונים לטבלה שלך:

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();

כאשר אתה שוקל להשתמש בנקודות קצה של REST, ודא שנקודות הקצה שאתה מתקשר בהן מאובטחות ושנתונים רגישים מטופלים כראוי. שים לב להשלכות הביצועים של שיחות API תכופות, במיוחד בעת התמודדות עם ערכות נתונים גדולות או עדכונים בתדירות גבוהה. כמו כן, יישם טיפול בשגיאות כדי לנהל בעיות פוטנציאליות עם קריאות API, כגון זמן קצוב או תגובות לא חוקיות.