Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Important
Ta funkcja jest dostępna w publicznej wersji testowej.
Serwer SQL MCP Databricks to zarządzany przez Azure Databricks serwer MCP, który pozwala agentom uruchamiać generowany przez AI SQL na tabelach Unity Catalog w celu odczytu i zapisu danych, przy czym dostęp jest regulowany uprawnieniami Unity Catalog. Zapytania działają asynchronicznie: agent wywołuje narzędzie, aby rozpocząć zapytanie, a następnie przeprowadza ankiety aż do zakończenia odpowiedzi.
Important
Azure Databricks zaleca usługęsystem.ai.dbsql MCP do dodatkowego zarządzania poprzez przyznania usług MCP, polityki, logi audytowe i śledzenie użycia.
Usługa domyślnie pozwala na odczyt i zapis. Aby ustawić go jako tylko do odczytu, ustaw disallow_writes na system.ai.dbsql_policy we wbudowanej zasadzie true.
Używaj tego serwera do programowania i inżynierii danych: uruchamiania konkretnego zapytania napisanego przez Ciebie lub agenta kodującego, sprawdzania schematów, weryfikowania składni SQL oraz tworzenia potoków danych przy użyciu narzędzi AI do kodowania. Daje pełną kontrolę nad dokładnie tym kodem SQL, który jest wykonywany.
| Wzorzec adresu URL | Zakres OAuth |
|---|---|
https://<workspace-hostname>/api/2.0/mcp/sql |
sql |
Genie One MCP vs. serwery SQL MCP Databricks
W przypadku zastosowań analitycznych, gdy użytkownik zadaje pytanie biznesowe w języku naturalnym, użyj serwera MCP Genie One . Genie rozwiązuje terminy biznesowe za pomocą Genie Ontology, twojej warstwy semantycznej zarządzanej, dzięki czemu generuje dokładniejsze odpowiedzi niż agent piszący SQL bezpośrednio na surowych tabelach.
Korzystaj z serwera SQL MCP Databricks , gdy musisz uruchomić konkretne zapytanie, które już napisałeś, na przykład walidując składnię lub tworząc pipeline.
_meta Parametry
_meta parametry to wartości konfiguracyjne, które ustawiasz w kodzie agenta, aby deterministycznie ustawić zachowanie serwera MCP, zamiast pozwalać LLM generować je dynamicznie w czasie wywołania narzędzia. Serwer SQL MCP Databricks obsługuje następujące _meta parametry:
| Nazwa parametru | Typ | Description |
|---|---|---|
warehouse_id |
str |
Identyfikator usługi SQL Warehouse do użycia do wykonywania zapytań. Przykład: "a1b2c3d4e5f67890"Jeśli nie zostanie określony, system automatycznie wybiera magazyn na podstawie zasobów i uprawnień. |
Przykład: określanie magazynu SQL dla zapytań SQL usługi Databricks
W tym przykładzie pokazano, jak użyć parametru warehouse_id_meta, aby określić, który magazyn SQL wykonuje zapytania z serwera Databricks SQL MCP przy użyciu oficjalnego SDK MCP dla języka Python.
W tym scenariuszu chcesz:
- Używanie określonego magazynu SQL na potrzeby wykonywania zapytań zamiast zezwalania systemowi na automatyczne wybranie jednego
- Weryfikowanie spójnej wydajności przez kierowanie zapytań do dedykowanego magazynu
Aby uruchomić ten przykład, skonfiguruj środowisko języka Python na potrzeby tworzenia zarządzanych aplikacji MCP:
Aby znaleźć identyfikator usługi SQL Warehouse, zobacz Nawiązywanie połączenia z usługą SQL Warehouse.
# 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"
# Databricks recommends system.ai.dbsql MCP Service for additional governance support:
# mcp_server_url = "https://<workspace-hostname>/ai-gateway/mcp-services/system.ai.dbsql"
# 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())
Limitations
- Brak kontekstu semantycznego. Serwer uruchamia SQL, które otrzymał. Nie rozwiązuje terminów biznesowych, definicji metryk ani relacji tabelowych, więc agent musi je wywnioskować wyłącznie ze schematów. Do pytań analitycznych zadawanych w języku naturalnym używaj serwera MCP Genie One, który opiera odpowiedzi na ontologii Genie.
- Rozmiar wyniku. Serwer obcina duże zbiory wyników w odpowiedziach narzędzi, aby uniknąć wyczerpania okna kontekstowego modelu. Zwracaj mniej wierszy i kolumn lub agreguj w SQL, aby wyniki mieściły się w limicie.
- Wykonywanie asynchroniczne. Zapytania nie wracają synchronicznie. Agent rozpoczyna zapytanie, a następnie cyklicznie sprawdza jego status aż do jego zakończenia, więc musi obsługiwać stany pośrednie.