Databricks SQL aracısı ile sorgulama

Python SDK ile Databricks

Avi Steinberg

Senior Software Engineer

Databricks Unity Catalog

  • Databricks'te veri saklamanın birincil yöntemi
  • Şemalar içerir; her şema birden çok tablo barındırabilir
  • Şemada çok çeşitli kaynaklardan tablolar oluşturabilirsiniz
  • Samples kataloğunda birden çok açık kaynak şeması vardır

Databricks Unity Catalog

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

LangChain

  • LLM uygulamaları geliştirme ve dağıtma kütüphanesi
  • Verileri sorgulamak için SQL kullanan YZ aracıları oluşturmayı sağlar LangChain
Python SDK ile Databricks

Python LangChain bağımlılıkları

Python paket bağımlılıklarını kurun:

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

Kütüphaneleri içe aktarın:

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
Python SDK ile Databricks

Databricks SQL Warehouse kimliği

Databricks SQL Warehouse Bağlantı Ayrıntıları

Python SDK ile Databricks

LangChain'i Databricks Çalışma Alanına kimlik doğrulayın

Ortam değişkenlerini ayarlayın:

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

Databricks SQL aracısı

  • Bir Databricks katalog şemasındaki veriler hakkında bir YZ aracısına soru sorun
  • YZ aracısı, SQL gerektiren veri sorularını yanıtlayabilir
  • Aracının adımlarını görmek için verbose=True belirtin

LangChain Sorgu çıktısı

Python SDK ile Databricks

Databricks SQL aracısını kullanarak Kataloğu sorgulayın

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
Python SDK ile Databricks

Databricks Kataloğundan bir LangChain SQL veritabanı oluşturun

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
Python SDK ile Databricks

Temel bir modelle LangChain LLM oluşturun

llm = ChatDatabricks(

endpoint="databricks-meta-llama-3-3-70b-instruct",
temperature=0.1, max_tokens=100, )
  • temperature: model yanıtlarındaki rastgeleliği belirleyen 0–1 arası bir float
  • max_tokens: yanıttaki en fazla token sayısı
1 https://docs.databricks.com/aws/en/large-language-models/langchain
Python SDK ile Databricks

Bir LangChain SQL veritabanı araç seti oluşturun

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

Bir Databricks SQL Aracısı oluşturun

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)
Ortalama yolculuk yaklaşık 15 dakika sürer.
1 https://docs.databricks.com/aws/en/large-language-models/langchain
Python SDK ile Databricks

Haydi Databricks verilerini sorgulayalım!

Python SDK ile Databricks

Preparing Video For Download...