Databricks SQL (Databricks platformundaki SQL arabirimi)

Important

Bu özellik Genel Önizleme aşamasındadır.

Databricks SQL MCP sunucusu, ajanların Unity Kataloğu tablolarınıza karşı yapay zeka tarafından oluşturulan SQL'i çalıştırmasına ve veri okuma ve yazma imkanı veren, erişim Unity Kataloğu izinleriyle yönetilen Azure Databricks yönetilen bir MCP sunucusudur. Yapay zeka kodlama araçlarından veri boru hatları oluşturmak için kullanın. Sorgular asenkron olarak çalışır: ajan aracı sorgu başlatmak için çağırır, ardından yanıt tamamlanana kadar anket yapar.

URL deseni OAuth kapsamı
https://<workspace-hostname>/api/2.0/mcp/sql sql

_meta Parametreler

_meta parametreler, aracı kodunda MCP sunucusunun davranışını deterministik olarak ayarlamak için önceden ayarladığınız yapılandırma değerleridir; LLM'nin bunları araç çağrısı zamanında dinamik olarak üretmesine izin vermek yerine. Databricks SQL MCP sunucusu aşağıdaki _meta parametreyi destekler:

Parametre adı Türü Description
warehouse_id str Sorguları yürütmek için kullanılacak SQL ambarının kimliği.
Örneğin: "a1b2c3d4e5f67890"
Belirtilmezse, sistem kaynaklara ve izinlere göre otomatik olarak bir ambar seçer.

Örnek: Databricks SQL sorguları için sql ambarı belirtme

Bu örnekte, resmi warehouse_id kullanarak Databricks SQL MCP sunucusundan sorgu çalıştıran SQL ambarını belirtmek için parametresinin nasıl kullanılacağı _meta gösterilmektedir.

Bu senaryoda şunları yapmak istiyorsunuz:

  • Sistemin otomatik olarak seçmesine izin vermek yerine sorgu yürütme için belirli bir SQL ambarı kullanın
  • Sorguları ayrılmış bir ambara yönlendirerek tutarlı performansı doğrulama

Bu örneği çalıştırmak için Yönetilen MCP geliştirmesi için Python ortamınızı ayarlayın:

SQL ambarı kimliğinizi bulmak için bkz. SQL ambara bağlanma.

# Import required libraries for MCP client and Databricks authentication
import asyncio
from databricks.sdk import WorkspaceClient
from databricks_mcp.oauth_provider import DatabricksOAuthClientProvider
from mcp.client.streamable_http import streamablehttp_client
from mcp.client.session import ClientSession
from mcp.types import CallToolRequest, CallToolResult

async def run_dbsql_tool_call_with_meta():
    # Initialize Databricks workspace client for authentication
    workspace_client = WorkspaceClient()

    # Construct the MCP server URL for DBSQL
    # Replace <workspace-hostname> with your workspace hostname
    mcp_server_url = "https://<workspace-hostname>/api/2.0/mcp/sql"

    # Establish connection to the MCP server with OAuth authentication
    async with streamablehttp_client(
        url=mcp_server_url,
        auth=DatabricksOAuthClientProvider(workspace_client),
    ) as (read_stream, write_stream, _):

        # Create an MCP session for making tool calls
        async with ClientSession(read_stream, write_stream) as session:
            # Initialize the session before making requests
            await session.initialize()

            # Create the tool call request with warehouse_id in _meta
            request = CallToolRequest(
                method="tools/call",
                params={
                    # Tool name for executing SQL queries
                    "name": "execute_sql",

                    # Dynamic arguments - typically provided by your AI agent
                    "arguments": {
                        "query": "SELECT * FROM my_catalog.my_schema.my_table LIMIT 10"
                    },

                    # Meta parameters - specify which warehouse to use
                    "_meta": {
                        "warehouse_id": "a1b2c3d4e5f67890"  # Your SQL warehouse ID
                    }
                }
            )

            # Send the request and get the response
            response = await session.send_request(request, CallToolResult)
            return response

# Execute the async function and get results
response = asyncio.run(run_dbsql_tool_call_with_meta())