Query's uitvoeren met de Databricks SQL‑agent

Databricks met de Python SDK

Avi Steinberg

Senior Software Engineer

Databricks Unity Catalog

  • Primaire manier om data op te slaan in Databricks
  • Bevat schema's met meerdere tabellen
  • Maak tabellen in een schema uit diverse bronnen
  • Meerdere open‑source‑schema's in de samples‑catalogus

Databricks Unity Catalog

1 https://docs.databricks.com/aws/en/catalogs/
Databricks met de Python SDK

LangChain

  • Bibliotheek om LLM‑apps te bouwen en te deployen
  • Laat je AI‑agents maken die SQL gebruiken om data te bevragen LangChain
Databricks met de Python SDK

Python‑afhankelijkheden voor LangChain

Installeer Python‑pakketten:

pip install --upgrade databricks-langchain langchain-community langchain 
                      databricks-sql-connector databricks-sqlalchemy

Importeer libraries:

from langchain_community.agent_toolkits import create_sql_agent
from langchain_community.agent_toolkits import SQLDatabaseToolkit
from langchain_community.utilities import SQLDatabase
from databricks_langchain import ChatDatabricks
Databricks met de Python SDK

Databricks SQL Warehouse‑ID

Details van Databricks SQL Warehouse‑verbinding

Databricks met de Python SDK

LangChain authenticeren bij Databricks-werkruimte

Exporteer omgevingsvariabelen:

os.environ["DATABRICKS_TOKEN"] = "<Your-Access-Token>"
os.environ["DATABRICKS_HOST"] = "<your-workspace-id>.cloud.databricks.com"
Databricks met de Python SDK

Databricks SQL‑agent

  • Stel een AI‑agent vragen over data in een Databricks catalogus‑schema
  • AI‑agent kan vragen beantwoorden die SQL vereisen
  • Zet verbose=True om te zien hoe de agent te werk gaat

Uitvoer van LangChain-query

Databricks met de Python SDK

Databricks SQL‑agent gebruiken om de Catalog te bevragen

db = SQLDatabase.from_databricks(
    catalog="samples", 
    schema="nyctaxi",
    warehouse_id=warehouse_id)
llm = ChatDatabricks(
    endpoint="databricks-meta-llama-3-3-70b-instruct",
    temperature=0.1,
    max_tokens=100)
toolkit = SQLDatabaseToolkit(db=db, llm=llm)
agent = create_sql_agent(llm=llm, toolkit=toolkit, verbose=True)
# Query the Databricks SQL Agent
result = agent.run("What's the time and distance of the longest trip?")
print(result)
1 https://docs.databricks.com/aws/en/large-language-models/langchain#databricks-sql-agent
Databricks met de Python SDK

Maak een LangChain SQL‑database van een Databricks Catalog

db = SQLDatabase.from_databricks(
    catalog="samples", 
    schema="nyctaxi",
    warehouse_id="<your-warehouse-id>"
)
1 api.python.langchain.com/en/latest/utilities/langchain_community.utilities.sql_database.SQLDatabase.html
Databricks met de Python SDK

Maak een LangChain LLM met een foundation‑model

llm = ChatDatabricks(

endpoint="databricks-meta-llama-3-3-70b-instruct",
temperature=0.1, max_tokens=100, )
  • temperature: een float tussen 0 en 1 voor de willekeur in modelantwoorden
  • max_tokens: maximaal aantal tokens in het antwoord
1 https://docs.databricks.com/aws/en/large-language-models/langchain
Databricks met de Python SDK

Maak een LangChain SQL‑database‑toolkit

toolkit = SQLDatabaseToolkit(db=db, llm=llm)
1 https://docs.databricks.com/aws/en/large-language-models/langchain
Databricks met de Python SDK

Maak een Databricks SQL‑agent

agent = create_sql_agent(llm=llm, toolkit=toolkit, verbose=True)

result = agent.run("What's the time and distance of the longest trip?") display(result)
De gemiddelde rit duurt ongeveer 15 minuten.
1 https://docs.databricks.com/aws/en/large-language-models/langchain
Databricks met de Python SDK

Laten we data in Databricks bevragen!

Databricks met de Python SDK

Preparing Video For Download...