Как получить доступ к OneLake в Fabric из машинного обучения Azure?

Поскольку машинное обучение Azure более зрело по сравнению с Synapse Data Science от Fabric, которое я недавно использовал, я хотел знать:

  • Есть ли способ получить доступ к данным OneLake (файлам или таблицам) из экземпляра Azure ML в рамках той же подписки?
  • Если да, то как это сделать? (Я не нашел никакой документации или руководства для этого случая. Самое похожее, что я нашел, — это объяснение того, как сделать конечную точку модели из Azure ML доступной в Fabric)
  • Каковы возможные узкие места (например, передача данных, если мне нужно использовать потенциальное промежуточное хранилище)

заранее спасибо


151
2

Ответы:

Решено

Чтобы получить доступ к данным OneLake из экземпляра Azure ML в рамках той же подписки, вы можете использовать Azure Data Lake Storage Gen2 (ADLS Gen2) в качестве промежуточного хранилища.

  1. Настройте ADLS Gen2 и убедитесь, что у Azure ML есть доступ.
  2. Используйте Azure ML SDK для Python для доступа к данным из ADLS Gen2.
  3. Узкие места: Задержка передачи данных и затраты.

Вы можете использовать классы Datastore и Dataset в пакете SDK Azure ML для доступа к данным.

Надеюсь, это поможет :)


К вашему сведению: мне удалось сделать это таким образом, поскольку коннектор OneLake может с трудом точно соответствовать ожидаемым переменным API. В моей ситуации, чтобы получить таблицы в OneLake на Fabric:

datastore.yml

$schema: http://azureml/sdk-2-0/OneLakeDatastore.json
name: datastore_name
type: one_lake
description: Credential-less datastore pointing to a Microsoft Fabric 
OneLake lakehouse
one_lake_workspace_name: "workspace_name"
endpoint: "onelake.dfs.fabric.microsoft.com"
artifact:
  type: lake_house
  name: "OnelakeName.Lakehouse/Tables"

В облачной оболочке после загрузки файла yml:

az ml datastore create --file datastore.yml --resource-group your_resource_group --workspace-name your_azureml_workspace

Внутри блокнота с помощью mltable:

!pip install mltable

from mltable import from_delta_lake
url = "abfss://path_of_the_resource_in_onelake/Tables/table"
df = from_delta_lake(url).to_pandas_dataframe()

Работает как шарм!