Menggunakan SQLAlchemy dengan Azure Databricks
Azure Databricks menyediakan dialek SQLAlchemy(sistem yang digunakan SQLAlchemy untuk berkomunikasi dengan berbagai jenis implementasi dan database API database) untuk Azure Databricks. SQLAlchemy adalah toolkit Python SQL dan Object Relational Mapper (ORM). SQLAlchemy menyediakan serangkaian pola persistensi tingkat perusahaan terkenal, yang dirancang untuk akses database yang efisien dan berkinerja tinggi, disesuaikan ke dalam bahasa domain sederhana dan Pythonic. Lihat Fitur dan Filsafat.
Dialek SQLAlchemy untuk Azure Databricks perlu diinstal untuk menggunakan fitur SQLAlchemy dengan Azure Databricks. Artikel ini membahas dialek SQLAlchemy untuk Azure Databricks versi 1.0 dan 2.0, yang akan didasarkan pada Databricks SQL Connector untuk Python versi 4.0.0 atau lebih tinggi.
Persyaratan
- Mesin pengembangan yang menjalankan Python >=3.8 dan <=3.11.
- Databricks merekomendasikan agar Anda menggunakan lingkungan virtual Python, seperti yang disediakan oleh venv yang disertakan dengan Python. Lingkungan virtual membantu memastikan bahwa Anda menggunakan versi Python yang benar dan Konektor SQL Databricks untuk Python bersama-sama. Menyiapkan dan menggunakan lingkungan virtual berada di luar cakupan artikel ini. Untuk informasi selengkapnya, lihat Membuat lingkungan virtual.
- Kluster atau Gudang SQL yang sudah ada.
Get dimulai
Instal databricks-sqlalchemy untuk SQLAlchemy v1 menggunakan
pip install databricks-sqlalchemy~=1.0
atau untuk SQLAlchemy v2 menggunakanpip install databricks-sqlalchemy
. Untuk informasi versi, lihat riwayat rilis databricks-sqlalchemy.Kumpulkan informasi berikut ini untuk kluster atau gudang SQL yang ingin digunakan:
Kluster
- Nama host server kluster. Anda dapat
ini dari nilai Nama Host Server di tab Opsi Tingkat Lanjut JDBC/ODBC untuk kluster Anda. - Jalur HTTP kluster. Anda dapat
ini dari nilai Jalur HTTP di tab untuk kluster Anda.Opsi Tingkat Lanjut JDBC/ODBC
Gudang SQL
- Nama host server gudang SQL. Anda dapat melakukan get ini dari nilai Nama Host Server di tab Detail Koneksi untuk gudang SQL Anda.
- Jalur HTTP gudang SQL. Anda dapat
ini dari nilai Jalur HTTP di tab Detail Koneksi untuk gudang SQL Anda.
- Nama host server kluster. Anda dapat
Autentikasi
Dialek SQLAlchemy untuk Azure Databricks mendukung autentikasi token akses pribadi Azure Databricks.
Untuk membuat token akses pribadi Azure Databricks, ikuti langkah-langkah dalam token akses pribadi Azure Databricks untuk pengguna ruang kerja.
Untuk mengautentikasi dialek SQLAlchemy, gunakan cuplikan kode berikut. Cuplikan ini mengasumsikan bahwa Anda memiliki set variabel lingkungan berikut:
-
DATABRICKS_TOKEN
, set untuk token akses pribadi Azure Databricks. ke nilai Nama Host Server untuk kluster atau gudang SQL Anda. -
DATABRICKS_HTTP_PATH
, set ke nilai Jalur HTTP untuk kluster atau gudang SQL Anda. -
DATABRICKS_CATALOG
, set ke target catalog di Unity Catalog. -
DATABRICKS_SCHEMA
, set menuju target schema (juga dikenal sebagai database) di Unity Catalog.
Untuk melihat variabel lingkungan set, lihat dokumentasi sistem operasi Anda.
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}"
)
# ...
Anda menggunakan variabel engine
yang telah disebutkan sebelumnya untuk menghubungkan ke catalog dan schema yang telah Anda tentukan melalui sumber daya komputasi Azure Databricks Anda.
SQLAlchemy v1
Untuk contoh koneksi, lihat example.py ini
SQLAlchemy v2
Untuk contoh koneksi, lihat bagian berikut dan file sqlalchemy_example.py di GitHub.
Referensi DBAPI
- databricks-sqlalchemy v1 repositori GitHub
- SQLAlchemy v1 README.md
- repositori GitHub databricks-sqlalchemy v2
- SQLAlchemy v2 README.md
Sumber Daya Tambahan:
- Tutorial Terpadu SQLAlchemy 1
- Tutorial Terpadu SQLAlchemy 2