Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure Databricks egy SQLAlchemydialektust biztosít az Azure Databrickshez (az a rendszer, amelyet az SQLAlchemy a különböző típusú adatbázis-API-implementációkkal és adatbázisokkal való kommunikációra használ). Az SQLAlchemy egy Python SQL-eszközkészlet és objektumrelációs mapper (ORM). Az SQLAlchemy jól ismert, nagyvállalati szintű perzisztenciamintákat biztosít, amelyek hatékony és nagy teljesítményű adatbázis-hozzáféréshez lettek kialakítva, egyszerű és Pythonos doménnyelvre átültetve. Lásd: Funkciók és filozófia.
Az Azure Databricks SQLAlchemy-dialektusát telepíteni kell az SQLAlchemy funkcióinak az Azure Databricksben való használatához. Ez a cikk az Azure Databricks 1.0-s és 2.0-s verziójának SQLAlchemy dialektusát ismerteti, amely a Python 4.0.0-s vagy újabb verzióján alapuló Databricks SQL Connectoron alapul.
Követelmények
- Python >=3.8 és <=3.11 verziót futtató fejlesztőgép.
- A Databricks azt javasolja, hogy pythonos virtuális környezeteket használjon, például a Python részét képező venv által biztosítottakat. A virtuális környezetek segítségével biztosítható, hogy a Python és a Databricks SQL Connector for Python megfelelő verzióit használja együtt. A virtuális környezetek beállítása és használata a jelen cikk hatókörén kívül esik. További információ: Virtuális környezetek létrehozása.
- Meglévő fürt vagy SQL Warehouse.
Első lépések
Telepítse a databricks-sqlalchemyt az SQLAlchemy v1-hez a
pip install databricks-sqlalchemy~=1.0használatával vagy az SQLAlchemy v2-höz apip install databricks-sqlalchemyhasználatával. A verzióval kapcsolatos információkért lásd a databricks-sqlalchemy kiadási előzményeit.Gyűjtse össze a használni kívánt fürtre vagy SQL Warehouse-ra vonatkozó alábbi információkat:
fürt
- A klaszter kiszolgáló gazdagépneve. Ezt a szerver hosztnév értéket a fürtje Speciális beállítások JDBC/ODBC lapján találja meg.
- A klaszter HTTP-elérési útja. A HTTP-elérési út értéket a fürt JDBC/ODBC > Speciális beállítások fülén találja meg.
SQL-raktár
- Az SQL warehouse kiszolgáló gazdaneve. Ezt az SQL-raktár Kapcsolat részletei lapján található Kiszolgáló állomásnév értékéből szerezheti be.
- Az SQL Warehouse HTTP-elérési útja. Ezt az SQL Warehouse Kapcsolat részletei lapján található HTTP-elérési út értékből szerezheti be.
Hitelesítés
Az Azure Databricks SQLAlchemy dialektus a Databricks SQL Connector for Python segítségével kapcsolódik, és a(z) connect_args elemben szereplő értékeket továbbítja a csatlakozónak. Támogatja a következő hitelesítési típusokat:
- Személyes hozzáférési tokenes hitelesítés
- OAuth felhasználó és gép közötti (U2M) hitelesítés
- OAuth gépről gépre (M2M) hitelesítés
Személyes hozzáférési token hitelesítés
Azure Databricks személyes hozzáférési jogkivonat létrehozásához kövesse a munkaterület-felhasználók személyes hozzáférési jogkivonatainak létrehozása című szakasz lépéseit.
Az SQLAlchemy dialektus hitelesítéséhez használja az alábbi kódrészletet. Ez a kódrészlet feltételezi, hogy a következő környezeti változókat állította be:
-
DATABRICKS_TOKENállítsa be az Azure Databricks személyes hozzáférési tokenjét. - Állítsa be a
DATABRICKS_SERVER_HOSTNAMEkomponenst a szerver hosztnév értékére a fürt vagy az SQL tárház számára. -
DATABRICKS_HTTP_PATH, állítsa be a HTTP-elérési út értékét a klaszteréhez vagy az SQL raktárához. - A
DATABRICKS_CATALOG-t állítsa be a célkatalógusra a Unity Catalogban. -
DATABRICKS_SCHEMA, állítsa be a célséma (más néven adatbázis) a Unity Catalogban.
A környezeti változók beállításához tekintse meg az operációs rendszer dokumentációját.
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}"
)
# ...
Az előző engine változóval csatlakozhat a megadott katalógushoz és sémához az Azure Databricks számítási erőforrásán keresztül.
OAuth felhasználó–gép (U2M) hitelesítés
Az OAuth U2M hitelesítés valós idejű emberi bejelentkezést és hozzájárulást használ a célzott Azure Databricks felhasználói fiók hitelesítéséhez. Az ezt az egyes felhőkön támogató Databricks SQL Connector for Python-verziókról lásd: OAuth felhasználó–gép (U2M) hitelesítés.
Az SQLAlchemy dialektust OAuth U2M-mel való hitelesítéshez használja az alábbi kódrészletet. Ez a rész feltételezi, hogy beállítottad a DATABRICKS_SERVER_HOSTNAME, DATABRICKS_HTTP_PATH, DATABRICKS_CATALOG és DATABRICKS_SCHEMA környezeti változókat, a Personal access token authentication című cikkben leírtak szerint.
import os
from sqlalchemy import create_engine
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://{server_hostname}?" +
f"http_path={http_path}&catalog={catalog}&schema={schema}",
connect_args = {"auth_type": "databricks-oauth"}
)
# ...
Gépről gépre (M2M) történő OAuth-hitelesítés
Az OAuth M2M hitelesítés Azure Databricks service principalként autentikál. Telepítenie kell a Databricks SDK for Python csomagot is (például a pip install databricks-sdk futtatásával). A Databricks SQL Connector for Python és az azt az egyes felhőkben támogató SDK-verziókról lásd: OAuth gép–gép (M2M) hitelesítés.
Az OAuth M2M hitelesítés használatához a következőket hajtsuk végre:
- Hozzon létre egy Azure Databricks-szolgáltatásnevet az Azure Databricks-munkaterületen, és hozzon létre egy OAuth-titkos kulcsot a szolgáltatásnévhez. Lásd: Szolgáltatás főfelhasználó hozzáférésének engedélyezése az Azure Databrickshez OAuth használatával.
- Adj hozzáférést a szolgáltatásnévnek a klaszteredhez vagy az SQL-adattáradhoz. Lásd: Számítási engedélyek vagy SQL-raktár kezelése.
Az SQLAlchemy dialektussal OAuth M2M-mel történő hitelesítéshez használja az alábbi kódrészletet. A DATABRICKS_SERVER_HOSTNAME, DATABRICKS_HTTP_PATH, DATABRICKS_CATALOG, és DATABRICKS_SCHEMA környezeti változók mellett ez a snippet feltételezi, hogy a következő környezeti változókat állítottad be:
-
DATABRICKS_CLIENT_ID, állítsa be a szolgáltatás főképviselőjének UUID - vagy alkalmazásazonosítóját. -
DATABRICKS_CLIENT_SECRET, állítsa be a szolgáltatásnév OAuth-titkos kódjának titkos értékét.
import os
from databricks.sdk.core import Config, oauth_service_principal
from sqlalchemy import create_engine
server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME")
http_path = os.getenv("DATABRICKS_HTTP_PATH")
catalog = os.getenv("DATABRICKS_CATALOG")
schema = os.getenv("DATABRICKS_SCHEMA")
def credential_provider():
config = Config(
host = f"https://{server_hostname}",
client_id = os.getenv("DATABRICKS_CLIENT_ID"),
client_secret = os.getenv("DATABRICKS_CLIENT_SECRET"))
return oauth_service_principal(config)
engine = create_engine(
url = f"databricks://{server_hostname}?" +
f"http_path={http_path}&catalog={catalog}&schema={schema}",
connect_args = {"credentials_provider": credential_provider}
)
# ...
SQLAlchemy v1
Kapcsolati példákért tekintse meg ezt a example.py
SQLAlchemy v2
A kapcsolati példákért tekintse meg a következő szakaszt és a GitHub sqlalchemy_example.py fájlt.
DBAPI dokumentációja
- databricks-sqlalchemy v1 GitHub-tárház
- SQLAlchemy v1 README.md
- databricks-sqlalchemy v2 GitHub-tárház
- SQLAlchemy v2 README.md