Udostępnij za pośrednictwem


Używanie programu SQLAlchemy z usługą Azure Databricks

Usługa Azure Databricks udostępnia dialekt SQLAlchemy (system SQLAlchemyużywa do komunikowania się z różnymi typami implementacji i baz danych interfejsu API bazy danych) dla usługi Azure Databricks. SQLAlchemy to zestaw narzędzi języka Python SQL i maper relacyjny obiektów (ORM). SqlAlchemy udostępnia zestaw dobrze znanych wzorców trwałości na poziomie przedsiębiorstwa, zaprojektowanych pod kątem wydajnego i wydajnego dostępu do bazy danych, dostosowanego do prostego i języka pythonic. Zobacz Funkcje i filozofia.

Dialekt SQLAlchemy dla usługi Azure Databricks musi być zainstalowany, aby korzystać z funkcji SQLAlchemy w usłudze Azure Databricks. W tym artykule opisano dialekt SQLAlchemy dla usługi Azure Databricks w wersji 1.0 i 2.0, który będzie oparty na łączniku SQL Usługi Databricks dla języka Python w wersji 4.0.0 lub nowszej.

Wymagania

  • Maszyna deweloperna z uruchomionym językiem Python >=3.8 i <=3.11.
  • Usługa Databricks zaleca używanie środowisk wirtualnych języka Python, takich jak te udostępniane przez venv dołączone do języka Python. Środowiska wirtualne pomagają zapewnić, że używasz poprawnych wersji języka Python i łącznika SQL usługi Databricks dla języka Python. Konfigurowanie i używanie środowisk wirtualnych wykracza poza zakres tego artykułu. Aby uzyskać więcej informacji, zobacz Tworzenie środowisk wirtualnych.
  • Istniejący klaster lub magazyn SQL Warehouse.

Zacznij

  • Zainstaluj usługę databricks-sqlalchemy dla programu SQLAlchemy w wersji 1 przy użyciu pip install databricks-sqlalchemy~=1.0 lub sqlAlchemy w wersji 2 przy użyciu pip install databricks-sqlalchemy. Aby uzyskać informacje o wersji, zapoznaj się z historią wydań databricks-sqlalchemy.

  • Zbierz następujące informacje dotyczące klastra lub magazynu SQL, którego chcesz użyć:

    Klaster

    SQL Warehouse

    • Nazwa hosta serwera usługi SQL Warehouse. Możesz to uzyskać z wartości nazwy hosta serwera na karcie Szczegóły połączenia dla magazynu danych SQL.
    • Ścieżka HTTP usługi SQL Warehouse. Możesz to uzyskać z wartości ścieżki HTTP na karcie Szczegóły połączenia dla usługi SQL Warehouse.

Uwierzytelnianie

Dialekt SQLAlchemy dla usługi Azure Databricks obsługuje uwierzytelnianie osobistego tokenu dostępu usługi Azure Databricks.

Aby utworzyć osobisty token dostępu usługi Azure Databricks, wykonaj kroki opisane w artykule Osobiste tokeny dostępu usługi Azure Databricks dla użytkowników obszaru roboczego.

Aby uwierzytelnić dialekt SQLAlchemy, użyj następującego fragmentu kodu. W tym fragmencie kodu założono, że ustawiono następujące zmienne środowiskowe:

  • DATABRICKS_TOKENustawiony na osobisty token dostępu usługi Azure Databricks.
  • DATABRICKS_SERVER_HOSTNAMEustawioną na wartość nazwy hosta serwera dla twojego klastra lub magazynu SQL.
  • DATABRICKS_HTTP_PATHustaw wartość ścieżki HTTP dla klastra lub magazynu SQL.
  • DATABRICKS_CATALOG, ustawiony w katalogu docelowym katalogu Unity.
  • DATABRICKS_SCHEMA, ustawiony na schemat docelowy (znany również jako baza danych) w katalogu Unity.

Aby ustawić zmienne środowiskowe, zapoznaj się z dokumentacją systemu operacyjnego.

import os
from sqlalchemy import create_engine

access_token    = os.getenv("DATABRICKS_TOKEN")
server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME")
http_path       = os.getenv("DATABRICKS_HTTP_PATH")
catalog         = os.getenv("DATABRICKS_CATALOG")
schema          = os.getenv("DATABRICKS_SCHEMA")

engine = create_engine(
  url = f"databricks://token:{access_token}@{server_hostname}?" +
        f"http_path={http_path}&catalog={catalog}&schema={schema}"
)

# ...

Poprzednia zmienna engine służy do łączenia się z określonym wykazem i schematem za pośrednictwem zasobu obliczeniowego usługi Azure Databricks.

SQLAlchemy, wersja 1

Przykłady połączeń można znaleźć w tym example.py

SQLAlchemy, wersja 2

Przykłady połączeń można znaleźć w poniższej sekcji i pliku sqlalchemy_example.py w usłudze GitHub.

Dokumentacja interfejsu DBAPI

Dodatkowe zasoby