Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как подключиться к OneLake с помощью бессерверных вычислений Azure Databricks.
Предпосылки
Перед подключением убедитесь, что у вас есть:
- Рабочая область Fabric и озерохранилище.
- Рабочая область Azure Databricks уровня "Премиум".
- Служебный принципал с назначением роли рабочей области "Участник" по крайней мере.
- Секреты баз данных или хранилище ключей Azure Key Vault (AKV) для сохранения и извлечения секретов. В этом примере используются секреты Databricks.
Подключение к OneLake с помощью бессерверных вычислений Databricks
С помощью Databricks Serverless Compute можно запускать рабочие нагрузки без предварительного создания кластера. Согласно документации о бессерверной архитектуре Databricks, для автоматизации настройки Spark в бессерверных вычислениях, Databricks разрешает конфигурировать только подмножество поддерживаемых свойств Spark.
Замечание
Это ограничение не является уникальным для Azure Databricks. Реализации без сервера Databricks в Amazon Web Services (AWS) и Google Cloud демонстрируют то же поведение.
Если вы пытаетесь изменить или задать неподдерживаемую конфигурацию Spark в записной книжке, связанной с бессерверными вычислениями Databricks, система возвращает ошибку CONFIG_NOT_AVAILABLE.
OneLake поддерживает входящие подключения из бессерверных вычислений Databricks. Вы можете подключиться к OneLake из бессерверных вычислений Databricks, если у вас есть соответствующий доступ и существует сетевой путь между бессерверными вычислениями Databricks и OneLake. При использовании Бессерверного Databricks убедитесь, что код не изменяет неподдерживаемые свойства Spark.
Создание записной книжки
Создайте записную книжку в рабочей области Databricks и подключите ее к бессерверным вычислениям.
Импорт модулей Python в этом примере используйте три модуля:
- msal — это библиотека проверки подлинности Майкрософт (MSAL), и она предназначена для того, чтобы разработчики интегрирули проверку подлинности платформы удостоверений Майкрософт в свои приложения.
- Модуль запросов используется для выполнения HTTP-запросов с помощью Python.
- delta lake используется для чтения и записи таблиц Delta Lake с помощью Python.
from msal import ConfidentialClientApplication import requests from deltalake import DeltaTableОбъявите переменные для клиента Microsoft Entra, включая идентификатор приложения. Используйте идентификатор клиента, в котором развернута Microsoft Fabric.
# Fetch from Databricks secrets. tenant_id = dbutils.secrets.get(scope="<replace-scope-name>",key="<replace value with key value for tenant _id>") client_id = dbutils.secrets.get(scope="<replace-scope-name>",key="<replace value with key value for client _id>") client_secret = dbutils.secrets.get(scope="<replace-scope-name>",key="<replace value with key value for secret>")Объявите переменные рабочей области Fabric.
workspace_id = "<replace with workspace name>" lakehouse_id = "<replace with lakehouse name>" table_to_read = "<name of lakehouse table to read>" storage_account_name = workspace_id onelake_uri = f"abfss://{workspace_id}@onelake.dfs.fabric.microsoft.com/{lakehouse_id}.lakehouse/Tables/{table_to_read}"Инициализируют клиента для получения токена.
authority = f"https://login.microsoftonline.com/{tenant_id}" app = ConfidentialClientApplication( client_id, authority=authority, client_credential=client_secret ) result = app.acquire_token_for_client(scopes=["https://onelake.fabric.microsoft.com/.default"]) if "access_token" in result: access_token = result["access_token"] print("Access token acquired.") token_val = result['access_token']Чтение разностной таблицы из OneLake
dt = DeltaTable(onelake_uri, storage_options={"bearer_token": f"{token_val}", "use_fabric_endpoint": "true"}) df = dt.to_pandas() print(df.head())Замечание
Рабочая сущность имеет назначение роли Contributor в рабочей области, и её можно использовать для записи данных обратно в OneLake.
Выполнив описанные выше действия, вы можете считывать данные из OneLake с помощью Databricks записной книжки, подключенной к бессерверным вычислениям.