$lang['tuto'] = "ट्यूटोरियल"; ?>$lang['tuto'] = "ट्यूटोरियल"; ?>$lang['tuto'] = "ट्यूटोरियल"; ?> SQL क्वेरीज़ और Azure APIM का

SQL क्वेरीज़ और Azure APIM का उपयोग करके GET-ओनली API सेटअप में 403 त्रुटियों को ठीक करना

APIM

फ़िल्टर के साथ SQL क्वेरीज़ के लिए Azure APIM प्रतिबंधों पर काबू पाना

एक डेटा पुनर्प्राप्ति एपीआई स्थापित करने की कल्पना करें जहां सब कुछ सुचारू रूप से काम करता है, अचानक, एक सरल WHERE क्लॉज के साथ एक सहज क्वेरी एक निराशाजनक 403 त्रुटि फेंक देती है। यह परिदृश्य अक्सर Azure API प्रबंधन (APIM) और Azure फ़ंक्शंस के साथ REST API विकसित करते समय होता है, विशेष रूप से डेटाब्रिक्स डेल्टा लेक जैसे प्लेटफ़ॉर्म से डेटा लाने के लिए।

कई एपीआई डेवलपर्स के लिए, जब किसी क्वेरी में अतिरिक्त शर्तें या फ़िल्टर शामिल होते हैं तो HTTP 403 (निषिद्ध) त्रुटि का सामना करना उल्टा लगता है। आख़िरकार, SQL सिंटैक्स सही है, और बिना किसी शर्त के समान क्वेरीज़ बिल्कुल ठीक काम करती हैं। हालाँकि, यह समस्या Azure APIM के भीतर सूक्ष्म सुरक्षा प्रतिबंधों के कारण उत्पन्न होती है जो SQL क्वेरी फ़िल्टर या सीमाओं से जुड़े अनुरोधों को प्रभावित कर सकती है। 🛑

एंडपॉइंट पर GET विधि प्रतिबंध अक्सर समस्या को बढ़ा देता है, क्योंकि ये बाधाएं इस बात को प्रभावित कर सकती हैं कि Azure APIM कुछ SQL क्लॉज़ की व्याख्या कैसे करता है। Azure के डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ, बाहरी अनुप्रयोगों के लिए सुरक्षित लेकिन लचीली SQL क्वेरी हैंडलिंग सुनिश्चित करने के लिए अतिरिक्त कदम आवश्यक हो सकते हैं।

इस आलेख में, हम फ़िल्टर के साथ SQL क्वेरी के लिए 403 त्रुटि के पीछे के कारण का पता लगाएंगे और आपके अनुरोध प्राप्त करें को ट्रैक पर वापस लाने के लिए समाधान प्रदान करेंगे। आइए देखें कि शर्तों के साथ निर्बाध क्वेरी निष्पादन के लिए अपने Azure APIM सेटअप को कैसे समायोजित करें।

आज्ञा उपयोग का उदाहरण
<set-variable> Azure API प्रबंधन नीतियों में प्रयुक्त, यह कमांड आने वाले अनुरोध डेटा के आधार पर एक चर को परिभाषित करता है। समाधान में, यह URL से क्वेरी पैरामीटर को कैप्चर करता है और इसे सशर्त मूल्यांकन के लिए संग्रहीत करता है।
<if condition> इस कमांड का उपयोग Azure APIM नीति के भीतर सशर्त तर्क को लागू करने के लिए किया जाता है, जैसे SQL क्वेरी में निषिद्ध कीवर्ड की जाँच करना (उदाहरण के लिए, WHERE या LIMIT), और तदनुसार अनुरोध प्रसंस्करण प्रवाह को संशोधित करना।
<set-backend-service> कुछ शर्तें पूरी होने पर अनुरोधों के लिए बैकएंड यूआरएल कॉन्फ़िगर करता है। इस समाधान में, यह क्वेरी सामग्री के आधार पर गंतव्य URL को बदलता है, जिससे 403 त्रुटियों के बिना सीधे अनुरोधों को उचित रूप से मदद मिलती है।
validate-jwt टोकन-आधारित सुरक्षा लागू करने के लिए एक विशिष्ट एपीआईएम नीति आदेश। जेडब्ल्यूटी टोकन को मान्य करके, एपीआई यह सुनिश्चित करता है कि केवल अधिकृत अनुरोध ही डेटा प्रोसेसिंग चरण तक पहुंचें, सुरक्षा की एक अतिरिक्त परत जोड़ते हैं।
context.Request.Method Azure फ़ंक्शंस या APIM में HTTP विधि (जैसे, GET) तक पहुँचता है, अनुरोध प्रकार के आधार पर सशर्त तर्क की अनुमति देता है। यहां, यह सुनिश्चित करता है कि कुछ नीतियां विशेष रूप से GET अनुरोधों पर लागू होती हैं।
query.Contains() APIM नीतियों में C# जैसी विधि का उपयोग यह जांचने के लिए किया जाता है कि किसी क्वेरी स्ट्रिंग में WHERE या LIMIT जैसे विशिष्ट कीवर्ड शामिल हैं या नहीं। यह विधि कुछ प्रश्नों को अवरुद्ध करके प्रतिबंध लागू करने में मदद करती है।
re.search() पायथन का re.search() फ़ंक्शन स्ट्रिंग्स में पैटर्न ढूंढता है। पायथन समाधान में, यह प्रश्नों में प्रतिबंधित SQL क्लॉज का पता लगाता है, क्वेरी सामग्री पर सटीक नियंत्रण प्रदान करता है और सुरक्षा बढ़ाता है।
app.route() एक फ्लास्क डेकोरेटर जो एक यूआरएल को एक फ़ंक्शन से जोड़ता है। इस समाधान में, यह /search समापन बिंदु को एक फ़ंक्शन पर मैप करता है जो सुरक्षा जांच लागू करते समय SQL क्वेरी निष्पादित करता है।
expect().toEqual() एक जेस्ट परीक्षण विधि जो अपेक्षित मानों की पुष्टि करती है। यहां, यह जांचता है कि फ़ंक्शन का आउटपुट विभिन्न SQL प्रश्नों के लिए अपेक्षित परिणामों से मेल खाता है या नहीं, यह सुनिश्चित करते हुए कि बैकएंड की प्रतिक्रिया प्रतिबंधित और अनुमत प्रश्नों के लिए सही है।
context.res यह जावास्क्रिप्ट प्रॉपर्टी Azure फ़ंक्शंस के भीतर HTTP प्रतिक्रिया सेट करती है। यह विशिष्ट त्रुटि संदेश भेजकर कस्टम त्रुटि प्रबंधन की अनुमति देता है, जैसे अस्वीकृत SQL स्थितियों के लिए 403 त्रुटियाँ।

SQL क्वेरी क्लॉज के साथ Azure APIM में 403 त्रुटियों को संभालना

Azure API प्रबंधन (APIM) में WHERE क्लॉज वाले SQL प्रश्नों के साथ आई 403 त्रुटि को संबोधित करने में, प्रदान की गई उदाहरण स्क्रिप्ट Azure APIM में नीति कॉन्फ़िगरेशन और Azure फ़ंक्शंस के भीतर सशर्त तर्क दोनों के माध्यम से काम करती है। Azure APIM नीति स्क्रिप्ट को क्वेरी पैरामीटर की जांच करके और विशिष्ट नियमों को लागू करके आने वाले HTTP अनुरोधों को प्रबंधित करने के लिए डिज़ाइन किया गया है। जब क्वेरी स्ट्रिंग में WHERE या LIMIT जैसे प्रतिबंधित शब्द शामिल होते हैं, तो नीति हस्तक्षेप करती है, यदि आवश्यक हो तो अनुरोध को बैकएंड सेवा पर पुनर्निर्देशित करती है। आने वाली अनुरोध विधि (जीईटी) की जांच करके, हम संवेदनशील जानकारी तक पहुंच को नियंत्रित करते हुए एसक्यूएल इंजेक्शन जोखिमों से बचने में मदद करते हुए, चुनिंदा सुरक्षा नियमों को लागू कर सकते हैं।

इस नीति के भीतर, जैसे आदेश

जावास्क्रिप्ट में लिखी गई Azure फ़ंक्शन स्क्रिप्ट, क्वेरी सामग्री को सीधे संभालकर नियंत्रण की एक और परत जोड़ती है। यह फ़ंक्शन टेबलनाम और SQL क्वेरी पैरामीटर को कैप्चर करता है, फिर WHERE या LIMIT जैसे अस्वीकृत कीवर्ड देखने के लिए सत्यापन जांच लागू करता है। जब इन कीवर्ड का पता लगाया जाता है, तो फ़ंक्शन प्रतिबंधित क्वेरी प्रकारों के ग्राहकों को सूचित करने के लिए 403 त्रुटि लौटाता है। फ़ंक्शन बैकएंड कनेक्शन हैंडलिंग को भी एकीकृत करता है, जिससे विशिष्ट SQL कमांड को सत्यापन आवश्यकताओं को पूरा करने पर सुरक्षित रूप से निष्पादित करने की अनुमति मिलती है। यह दृष्टिकोण न केवल डेटा अखंडता का समर्थन करता है बल्कि सुरक्षा नीतियों के कारण क्वेरी विफल होने पर प्रतिक्रिया भी प्रदान करता है, डेवलपर्स को स्वीकार्य उपयोग पैटर्न की ओर मार्गदर्शन करता है। 🛡️

उन्नत कार्यक्षमता के लिए, समाधान में पायथन में लिखा गया एक फ्लास्क बैकएंड शामिल है, जो प्रतिबंधित SQL कीवर्ड से मेल खाने के लिए नियमित अभिव्यक्तियों का उपयोग करता है। यह समाधान SQL कमांड फ़िल्टरिंग पर विस्तृत नियंत्रण की अनुमति देता है और दर्शाता है कि कैसे एक Python सेवा Azure फ़ंक्शंस को प्रभावी ढंग से पूरक कर सकती है। पायथन स्क्रिप्ट का सत्यापन फ़ंक्शन (re.search) प्रश्नों को निष्पादित करने से पहले अस्वीकृत शब्दों के लिए SQL स्ट्रिंग का निरीक्षण करता है, अवांछित क्लॉज को डेटाबेस परत तक पहुंचने से रोकता है। सटीकता सुनिश्चित करने के लिए, जेस्ट परीक्षणों का उपयोग विभिन्न SQL क्वेरी अनुरोधों को अनुकरण करने के लिए किया जाता है, जो स्वीकृत और प्रतिबंधित आदेशों के लिए प्रत्येक फ़ंक्शन की प्रतिक्रिया को मान्य करता है। ये परीक्षण सुरक्षित और पूर्वानुमानित व्यवहार सुनिश्चित करते हुए विभिन्न परिस्थितियों में एपीआई का आकलन करना संभव बनाते हैं।

समाधान 1: SQL WHERE क्लॉज को अनुमति देने के लिए Azure APIM नीति को समायोजित करें

SQL क्वेरी स्थितियों को संभालने के लिए Azure APIM नीति कॉन्फ़िगरेशन का उपयोग करना

<!-- Azure API Management Policy File -->
<inbound>
  <base />
  <!-- Set allowed methods to support GET with query parameters -->
  <validate-jwt header-name="Authorization" failed-validation-httpcode="401" />
  <choose>
    <when condition="@(context.Request.Method == "GET")">
      <set-variable name="query" value="@(context.Request.Url.Query.GetValueOrDefault("query", "ALL"))" />
      <!-- Add handling for WHERE or LIMIT clauses to prevent 403 errors -->
      <if condition="@(query.Contains("WHERE") || query.Contains("LIMIT"))">
        <set-backend-service base-url="https://databricks-endpoint" />
        <set-header name="Ocp-Apim-Subscription-Key" exists-action="override" />
      </if>
    </when>
  </choose>
</inbound>
<backend>
  <base />
</backend>
<outbound>
  <base />
</outbound>
<on-error>
  <return-response>
    <set-status code="403" reason="Forbidden Clause in Query" />
    <set-body>{"error": "Queries with WHERE or LIMIT clauses not allowed."}</set-body>
  </return-response>
</on-error>

समाधान 2: Azure फ़ंक्शन में SQL क्वेरी पार्सिंग लागू करें

SQL क्वेरी इनपुट को संभालने और पार्स करने के लिए जावास्क्रिप्ट में Azure फ़ंक्शन का उपयोग करना

// Azure Function JavaScript Code
module.exports = async function (context, req) {
  const tableName = req.query.tablename || "ALL";
  const query = req.query.query || "SELECT * FROM " + tableName;

  if (query.includes("WHERE") || query.includes("LIMIT")) {
    context.res = { status: 403, body: "WHERE or LIMIT clauses are restricted in this API." };
    return;
  }
  try {
    const response = await executeSQLQuery(tableName, query);
    context.res = { body: response };
  } catch (error) {
    context.res = { status: 500, body: "Server error: " + error.message };
  }
};

// Function to execute SQL query
async function executeSQLQuery(tableName, query) {
  const dbConnection = await getDbConnection();
  return dbConnection.query(query);
}

समाधान 3: सुरक्षा के लिए पायथन में SQL पार्सिंग और यूनिट टेस्ट लागू करें

क्वेरी सत्यापन और परीक्षण के साथ बैकएंड सेवा में पायथन का उपयोग करना

# Python Code for Backend with SQL Validation
from flask import Flask, request, jsonify
import re
app = Flask(__name__)

@app.route("/search", methods=["GET"])
def search():
    tablename = request.args.get("tablename", "ALL")
    query = request.args.get("query", f"SELECT * FROM {tablename}")
    if not validate_query(query):
        return jsonify({"error": "Forbidden clause in query"}), 403
    try:
        result = execute_query(query)
        return jsonify(result)
    except Exception as e:
        return jsonify({"error": str(e)}), 500

def validate_query(query):
    # Disallow WHERE and LIMIT clauses for security
    if re.search(r"\\b(WHERE|LIMIT)\\b", query, re.IGNORECASE):
        return False
    return True

# Mock execute_query function for demonstration
def execute_query(query):
    return {"data": "Sample query execution"}

समाधान 4: क्वेरी सत्यापन के लिए जेस्ट (जावास्क्रिप्ट) के साथ परीक्षण करें

एपीआई सुरक्षा के लिए बैकएंड क्वेरी हैंडलिंग को मान्य करने के लिए जेस्ट के साथ यूनिट परीक्षण

// Jest Tests for JavaScript Azure Function
const { search } = require("./azureFunction.js");
test("Disallowed WHERE clause in SQL query", () => {
  const req = { query: { query: "SELECT * FROM table WHERE id=1" } };
  const res = { status: 403, body: "WHERE or LIMIT clauses are restricted in this API." };
  expect(search(req, res)).toEqual(res);
});

test("Allowed query without WHERE or LIMIT", () => {
  const req = { query: { query: "SELECT * FROM table" } };
  const res = { status: 200, body: "data" };
  expect(search(req, res)).toEqual(res);
});

Azure APIM और SQL क्वेरीज़ के साथ सुरक्षा और प्रदर्शन को अनुकूलित करना

डेटाब्रिक्स डेल्टा लेक जैसे स्रोतों से डेटा के साथ इंटरैक्ट करने के लिए Azure API मैनेजमेंट (APIM) के साथ REST API समाधान डिजाइन करते समय, डेवलपर्स को सुरक्षा और कार्यक्षमता को संतुलित करने की चुनौती का सामना करना पड़ता है। यह संतुलन विशेष रूप से मुश्किल हो जाता है जब कुछ SQL कमांड, जैसे कि WHERE क्लॉज वाले, Azure में सुरक्षा प्रतिबंधों के कारण अवरुद्ध हो जाते हैं। चूंकि GET अक्सर ऐसे API के लिए एकमात्र सक्षम विधि है, यह उस तरीके को सीमित करता है जिससे क्वेरीज़ बैकएंड डेटाबेस के साथ इंटरैक्ट कर सकती हैं। हालाँकि, एपीआईएम में विशिष्ट कॉन्फ़िगरेशन का उपयोग करके, हम सुरक्षा बनाए रखते हुए अधिक जटिल प्रश्नों की अनुमति देने के लिए एपीआई के व्यवहार को परिष्कृत कर सकते हैं।

Azure में इन SQL क्वेरीज़ को सुरक्षित करने की एक शक्तिशाली तकनीक APIM नीति कॉन्फ़िगरेशन को लागू करना है जो प्रतिबंधित SQL क्लॉज़ का पता लगाता है और फ़िल्टर करता है। उदाहरण के लिए, a सेट करके क्वेरी मापदंडों को पकड़ने के लिए, एपीआई बैकएंड तक पहुंचने से पहले अस्वीकृत शब्दों की पहचान करके एसक्यूएल इंजेक्शन से संभावित खतरों को अलग कर सकता है। यह तकनीक एपीआई को प्रदर्शन से समझौता किए बिना केवल अधिकृत प्रश्नों का जवाब देने की अनुमति देती है, क्योंकि अनुरोध डेटाबेस तक पहुंचने से पहले इन कार्यों को सीधे एपीआईएम द्वारा नियंत्रित किया जा सकता है।

ऐसे मामलों में जहां अनुकूलित हैंडलिंग आवश्यक है, सुरक्षा उद्देश्यों के लिए अतिरिक्त सत्यापन लागू करते हुए, SQL क्वेरी को पार्स करने के लिए Azure फ़ंक्शन या Python या Node.js में बैकएंड सेवा का उपयोग किया जा सकता है। यहां, पायथन के लिए फ्लास्क जैसे फ्रेमवर्क और का उपयोग पैटर्न मिलान के लिए विशिष्ट कीवर्ड को गतिशील रूप से प्रतिबंधित करना आसान हो जाता है। यह बाहरी अनुप्रयोगों को डेटाबेस से फ़िल्टर किए गए डेटा को सुरक्षित रूप से पुनर्प्राप्त करने की अनुमति देता है, जिससे प्रदर्शन और लचीलापन दोनों बढ़ता है। 🛡️ यह प्रोएक्टिव कॉन्फ़िगरेशन अंततः यह सुनिश्चित करके स्केलेबिलिटी का समर्थन करता है कि केवल वैध क्वेरी ही चलें, जिससे एपीआई उत्पादन वातावरण में अधिक मजबूत और कुशल हो जाए।

  1. मैं Azure APIM में प्रतिबंधित SQL क्लॉज़ को कैसे संभाल सकता हूँ?
  2. एपीआईएम का उपयोग करना WHERE और LIMIT जैसे विशिष्ट SQL क्लॉज़ को फ़िल्टर करने के लिए फ़ाइल अनधिकृत क्वेरी को निष्पादित होने से रोक सकती है, API सुरक्षा को बढ़ा सकती है।
  3. क्या इस सेटअप में GET के बजाय POST विधि का उपयोग करना संभव है?
  4. जबकि GET सामान्य है, आप अधिक जटिल SQL क्वेरीज़ को प्रबंधित करने के लिए POST का उपयोग कर सकते हैं, हालाँकि सुरक्षा सुनिश्चित करने के लिए अतिरिक्त प्रमाणीकरण परतों की आवश्यकता हो सकती है।
  5. का उद्देश्य क्या है एपीआईएम नीतियों में आदेश?
  6. कमांड क्वेरी डेटा को अस्थायी रूप से कैप्चर और संग्रहीत करता है, जिससे एपीआई को बैकएंड पर अनुरोध भेजने से पहले प्रतिबंधित शब्दों की जांच करने की अनुमति मिलती है।
  7. क्या हम विशिष्ट परिस्थितियों में WHERE क्लॉज की अनुमति दे सकते हैं?
  8. हाँ, एपीआईएम में सशर्त तर्क, जैसे , चयनात्मक लचीलेपन की पेशकश करते हुए, विशिष्ट मापदंडों या उपयोगकर्ता प्रमाणीकरण के आधार पर WHERE क्लॉज को सक्षम कर सकता है।
  9. कैसे करता है फ़ंक्शन सुरक्षा बढ़ाता है?
  10. का उपयोग करते हुए पायथन में, हम SQL स्ट्रिंग्स में विशिष्ट कीवर्ड का पता लगा सकते हैं, जिससे संभावित रूप से हानिकारक प्रश्नों को कुशलतापूर्वक ब्लॉक करना संभव हो जाता है।
  11. परीक्षण के लिए जेस्ट का उपयोग करने का क्या लाभ है?
  12. जेस्ट विभिन्न एसक्यूएल अनुरोधों को अनुकरण करने और एपीआई प्रतिक्रिया को मान्य करने का एक तरीका प्रदान करता है, जिससे यह क्वेरी सुरक्षा और समग्र एपीआई विश्वसनीयता को सत्यापित करने के लिए आवश्यक हो जाता है।
  13. क्या एपीआईएम अस्वीकृत प्रश्नों के लिए कस्टम संदेश लौटा सकता है?
  14. हां, एपीआईएम को इसके साथ कॉन्फ़िगर किया जा सकता है कस्टम संदेश भेजने के लिए, जैसे "कहां या सीमा की अनुमति नहीं है", उपयोगकर्ताओं को तत्काल प्रतिक्रिया प्रदान करना।
  15. क्या फ्लास्क बैकएंड में SQL पार्सिंग को संभालने के लिए आवश्यक है?
  16. फ़्लास्क वैकल्पिक है लेकिन जटिल SQL पार्सिंग और सत्यापन को संभालने के लिए मूल्यवान है; यह एपीआई तर्क के प्रबंधन के लिए एक हल्का बैकएंड ढांचा प्रदान करता है।
  17. इस सेटअप में एपीआई कुंजियों का उपयोग करने के लिए सर्वोत्तम अभ्यास क्या हैं?
  18. JWT प्रमाणीकरण के माध्यम से एपीआई कुंजियों को सुरक्षित रूप से संभाला जाना चाहिए एपीआईएम नीतियों में यह सुनिश्चित करने के लिए कि केवल सत्यापित उपयोगकर्ता ही एपीआई तक पहुंचें।
  19. डेटा पुनर्प्राप्ति एपीआई में POST की तुलना में GET को प्राथमिकता क्यों दी जाती है?
  20. GET अनुरोध केवल-पढ़ने के लिए पहुंच के लिए आदर्श हैं, जोखिम को कम करते हैं क्योंकि वे प्रत्यक्ष डेटा संशोधनों से बचते हैं, जो इस तरह के उच्च-सुरक्षा वातावरण में महत्वपूर्ण है।
  21. बैकएंड सेवाएँ डेटाब्रिक्स डेल्टा लेक एकीकरण का समर्थन कैसे करती हैं?
  22. बैकएंड सेवाएं एपीआई अनुरोधों को संसाधित करती हैं और डेटाब्रिक्स पर प्रश्नों को रिले करती हैं, आवश्यक डेटा और पहुंच प्रतिबंधों को लागू करते हुए डेल्टा लेक के साथ संगतता सुनिश्चित करती हैं।

SQL-आधारित अनुरोधों के साथ काम करते समय Azure APIM में सुरक्षा और क्वेरी लचीलेपन के बीच संतुलन हासिल करना आवश्यक है। WHERE और LIMIT जैसे क्लॉज़ को नियंत्रित करके, आप डेटाब्रिक्स डेल्टा लेक जैसे स्रोतों से प्रासंगिक डेटा पुनर्प्राप्त करते समय 403 त्रुटियों को रोक सकते हैं।

क्वेरी पार्सिंग के लिए एपीआईएम नीति कॉन्फ़िगरेशन और एज़्योर फ़ंक्शंस जैसे तरीकों की खोज एपीआई डेवलपर्स को मजबूत डेटा समाधान बनाने में सक्षम बनाती है। सही संतुलन सुरक्षा मानकों का अनुपालन सुनिश्चित करते हुए, बाहरी डेटा इंटरैक्शन को सुरक्षित और कुशल रखते हुए प्रभावी डेटा एक्सेस की अनुमति देता है। 📊

  1. SQL क्वेरी पैरामीटर को संभालने और REST API समाधानों में 403 त्रुटियों को रोकने के लिए Azure API प्रबंधन नीतियों को कॉन्फ़िगर करने पर गहन जानकारी प्रदान करता है। उपलब्ध है एपीआई प्रबंधन नीतियों पर Microsoft Azure दस्तावेज़ीकरण .
  2. एज़्योर फ़ंक्शंस में सुरक्षा लागू करने और क्लाउड-आधारित एपीआई में एसक्यूएल प्रश्नों को संभालने के लिए सर्वोत्तम प्रथाओं की खोज करता है, डेटाब्रिक्स डेल्टा लेक तक सुरक्षित पहुंच सुनिश्चित करता है। पर और अधिक पढ़ें एज़्योर फ़ंक्शंस दस्तावेज़ीकरण .
  3. डेटाब्रिक्स डेल्टा लेक में डेटा एक्सेस और सुरक्षा के प्रबंधन पर व्यापक अंतर्दृष्टि प्रदान करता है, जो Azure-आधारित REST API के साथ एकीकरण का विवरण देता है। पूर्ण दस्तावेज़ीकरण यहाँ डेटाब्रिक्स डेल्टा लेक गाइड .
  4. विशेष रूप से एपीआई-संचालित वातावरण में, SQL क्वेरी सत्यापन के लिए पायथन और नीति कॉन्फ़िगरेशन में नियमित अभिव्यक्तियों के उपयोग की जांच करता है। देखना पायथन रेगुलर एक्सप्रेशन (पुनः) लाइब्रेरी दस्तावेज़ीकरण अधिक जानकारी के लिए.