Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
OneLake je otevřená jezerní úložná vrstva Fabric s přístupem kompatibilním s Azure Storage. Zpřístupňuje data Fabric prostřednictvím onelake.dfs.fabric.microsoft.com pro přístup ADLS Gen2/DFS a onelake.blob.fabric.microsoft.com pro přístup k rozhraní Blob API. Tento článek popisuje, jak může Azure Machine Learning používat tato rozhraní prostřednictvím úložišť dat služby AML, vstupů a výstupů koncových bodů dávkového zpracování a přímého abfss:// přístupu z poznámkových bloků nebo skriptů.
Azure Machine Learning poskytuje tři primární integrační body s OneLake:
-
Úložiště dat – zaregistruje umístění Fabric Lakehouse
Filesjako úložiště dat Azure Machine Learning a odkazuje na něj z úloh a datových prostředků. Azure Machine Learning podporuje také přímý odkaz na tabulky Fabric Lakehouse, ale tento vzor zahrnuje kopii do ADLS Gen2 a není v tomto dokumentu popsaný. - Koncové body služby Batch – volání dávkových nasazení se vstupy a výstupy, které jsou v OneLake (dnes prostřednictvím registrovaného úložiště dat nebo prostřednictvím úložiště dat založeného na zkratkách blob nebo ADLS).
- Rozhraní API OneLake / přímý přístup ABFSS – čtěte z OneLake a zapisujte do něj přímo z notebooků a skriptů spuštěných v runtime prostředích Azure Machine Learning.
| Bod integrace v Azure Machine Learning | Rozhraní OneLake | rozhraní Azure Machine Learning | Kopírují se data do ADLS Gen2? | Primární identifikátor URI, který se má použít v Azure Machine Learning |
|---|---|---|---|---|
| Úložiště dat OneLake | Oddíl Lakehouse /Files. |
CLI / SDK (YAML) | No | azureml://datastores/<name>/paths/<path> |
| Tabulka OneLake Lakehouse (propojená s uživatelským rozhraním) | Oddíl Lakehouse /Tables. |
studio Azure Machine Learning (uživatelské rozhraní) | Ano – zkopírováno přes kanál Fabric do ADLS Gen2 a pak zaregistrováno | azureml://datastores/<adls_ds>/paths/<path> |
| Vstup a výstup koncového bodu batch | Lakehouse /Files (přes zástupce ADLS). |
CLI / SDK / REST | Optional |
azureml://datastores/<name>/paths/<path> nebo abfss://... |
| Direct OneLake API / ABFSS |
/Files a /Tables |
Poznámkové bloky / skripty ve výpočetních prostředcích Azure Machine Learning | No | abfss://<workspace>@onelake.dfs.fabric.microsoft.com/<lakehouse>.Lakehouse/Files/... |
Note
azureml://je schéma identifikátoru URI specifické pro Azure Machine Learning, nikoli protokol úložiště. Řídicí rovina a datový runtime služby Azure Machine Learning jej používají k určení podkladového umístění úložiště (Blob, ADLS Gen2, OneLake a dalších) pomocí metadat připojení a přihlašovacích údajů zaregistrovaných pro pojmenované úložiště dat.
OneLake jako úložiště dat Azure Machine Learning
Úložiště dat je abstrakce Azure Machine Learning v rámci pracovního prostoru pro externí umístění úložiště (OneLake, Azure Blob, ADLS Gen2, Azure Files). Ukládá metadata připojení pro existující prostředek úložiště, koncový bod, kontejner, systém souborů nebo položku a konfiguraci přihlašovacích údajů nebo identity bez zřizování nebo kopírování samotných dat. Různá prostředí v rámci Azure Machine Learning můžou odkazovat na úložiště dat pomocí stabilního identifikátoru URI (azureml://datastores/<name>/paths/<path>).
Note
studio Azure Machine Learning v uživatelském rozhraní aktuálně nevypisuje OneLake jako typ úložiště dat, ale rozhraní příkazového řádku a sada SDK podporují vytváření a správu úložišť dat OneLake prostřednictvím definice YAML.
Metadata připojení požadovaná z Microsoft Fabric
Na stránce Vlastnosti položky lakehouse ve Fabric zaznamenejte:
-
Koncový bod – Pro OneLake použijte
onelake.dfs.fabric.microsoft.comneboonelake.blob.fabric.microsoft.comv závislosti na protokolu, který chcete použít. - GUID pracovního prostoru
- GUID položky (GUID datového skladu Lakehouse)
Vytvoření úložiště dat v Azure Machine Learning
onelake-datastore.yml:
$schema: https://azuremlschemas.azureedge.net/latest/oneLakeDatastore.schema.json
name: <name_of_datastore>
type: onelake
description: Datastore pointing to a Microsoft Fabric lakehouse.
onelake_workspace_name: <workspace_guid>
endpoint: onelake.dfs.fabric.microsoft.com
artifact:
type: lakehouse
name: <item_guid>/Files # Include /Files in the name to point at the lakehouse Files layer; omit it to point at the root of the item.
Pomocí Azure CLI vytvořte úložiště dat v cílovém pracovním prostoru Azure Machine Learning. Nahraďte zástupné prvky <name_of_AML_workspace> a <name_of_datastore> příslušnými hodnotami.
az ml datastore create --file ./onelake-datastore.yml \
--resource-group rg-amlonelake \
--workspace-name <name_of_AML_workspace>
Použití úložiště dat v úlohách Azure Machine Learning
Po registraci úložiště dat Azure Machine Learning je jeho azureml:// identifikátor URI dostupný pro použití v různých prostředích. Ukázka zde ukazuje, jak odkazovat na úložiště dat OneLake v úloze Azure Machine Learning. Následující identifikátor URI je platný pro úlohu Input/Output, v definicích datových prostředků a všude, kde Azure Machine Learning přijímá cestu k úložišti dat, s výjimkou dávkových koncových bodů, které v současné době nepodporují OneLake jako typ úložiště dat pro vstup ani výstup.
Následující ukázka úlohy zkopíruje soubor z jednoho umístění do jiného ve stejném úložišti dat OneLake. Jako vstupy a výstupy ve stejné úloze můžete použít kombinaci různých podporovaných cílů úložiště (Blob, ADLS Gen2, OneLake).
type: command
command: cp ${{inputs.input_data}} ${{outputs.output_data}}
compute: azureml:<replace_with_aml_compute_target>
environment: azureml://registries/azureml/environments/sklearn-1.1/versions/4
inputs:
input_data:
mode: ro_mount
path: azureml://datastores/<name_of_datastore>/paths/<folder-path>/<file-name> # Do not include /Files in the <file-name> portion of the path. Reason being that the datastore is already pointed at the /Files layer of the lakehouse via the artifact name in the datastore definition.
type: uri_file
outputs:
output_data:
mode: rw_mount
path: azureml://datastores/<name_of_datastore>/paths/<folder-path>/<file-name> # Do not include /Files in the <file-name> portion of the path. Reason being that the datastore is already pointed at the /Files layer of the lakehouse via the artifact name in the datastore definition.
type: uri_file
# optional: if you want to create a data asset from the output,
# then uncomment `name` (`name` can be set without setting `version`, and in this way, we will set `version` automatically for you)
# name: <name_of_data_asset> # use `name` and `version` to create a data asset from the output
# version: <version_of_data_asset>
Prostředí Azure Machine Learning, která mohou přímo odkazovat na úložiště dat OneLake
| # | prostředí / rozhraní Azure Machine Learning | Direction | Adresování OneLake | Source |
|---|---|---|---|---|
| 1 |
Úlohy Azure Machine Learning - Input / Output (CLI v2, SDK v2 command, pipeline, sweep) |
R / W | azureml://datastores/<onelake_ds>/paths/... |
Přístup k datům v úloze |
| 2 |
Datová aktiva (uri_file, uri_folder) zaregistrovaná pro cestu k úložišti dat OneLake |
R (assety jsou reference pouze pro čtení) |
azureml://datastores/<onelake_ds>/paths/... zabalené pomocí správy verzí |
Vytváření datových prostředků |
| 3 |
Datové prostředí runtime Azure Machine Learning prostřednictvím azureml-fsspec v poznámkových blocích nebo skriptech na výpočetních prostředcích Azure Machine Learning |
R / W |
azureml://datastores/<onelake_ds>/paths/... otevřeno pomocí fsspec.open(...) nebo AzureMachineLearningFileSystem |
Přístup k datům z OneLake během interaktivního vývoje |
OneLake s koncovými body pro dávkové zpracování
Azure Machine Learning vám umožňuje používat Fabric pro přístup ke koncovým bodům dávkového nasazení modelu pro dlouhotrvající asynchronní inferenci s modely a kanály strojového učení.
V tomto modelu je cílem architektury zachovat jednu fyzickou kopii vstupních dat funkcí i výstupních předpovědí, které jsou přístupné pro obě platformy – Fabric a Azure Machine Learning. Soubor v ADLS má dvě platné adresy – identifikátor URI azureml://datastores/..., který dávkové koncové body Azure Machine Learning přijímají jako vstup i výstup, a cestu k lakehouse (zpřístupněnou prostřednictvím zástupce ADLS), kterou mohou notebooky Fabric, kanály a koncové body SQL analýz používat k dotazům. Tento vzor zahrnuje žádné kopírování, žádnou naplánovanou synchronizaci, žádný druhý zdroj pravdy. Zobrazení lakehouse a zobrazení Azure Machine Learning jsou projekce stejného účtu úložiště.
Koncové body služby Batch se nacházejí mezi dvěma složkami viditelnými ve OneLake:
-
Vstupy – spravované
/Filesúložiště (zóna surových dat, ohodnocené požadavky, denní oddíly) připravené datovým inženýrstvím ve Fabric. Azure Machine Learning ho přečte prostřednictvím úložiště dat ADLS Gen2, který odkazuje na stejné úložiště jako zástupce. -
Výstupy – umístění predikcí
/Files, které dávková úloha zapisuje do stejného účtu ADLS Gen2, které se v lakehouse zobrazí pomocí zástupce a je okamžitě k dispozici pro poznámkové bloky Fabric, toky dat nebo krok načtení tabulky Delta.
Obecněji je tento model vhodný pro scénáře, ve kterých už máte data v ADLS Gen2. Například existující data lake, který zásobuje analytické nebo ML úlohy. Namísto migrace nebo duplikování těchto dat do OneLake zástupce OneLake zpřístupní existující umístění ADLS v prostředí Fabric lakehouse, zatímco stejný účet zůstane zaregistrovaný jako úložiště.
Přístup k sadě SDK OneLake nebo rozhraní API OneLake z poznámkových bloků a skriptů Azure Machine Learning
Když se kód spustí na výpočetním objektu Azure Machine Learning (výpočetní instance, výpočetní cluster nebo bezserverové výpočetní prostředky), může číst a zapisovat přímo do OneLake prostřednictvím abfss:// cesty nebo cesty úložiště dat OneLake. OneLake SDK a rozhraní API nabízejí flexibilní integrační bod, který je možné použít pro zkoumání založené na poznámkových blocích, vlastní trénovací skripty a komponenty, které potřebují obojí /Files a /Tables přístup prostřednictvím Azure Machine Learning výpočetních prostředků.
OneLake používá pro soubory v OneLake identifikátor URI abfss:// a ten lze použít jako platnou vstupní cestu úlohy pro ověřování založené na identitě nebo instančním objektu služby:
abfss://<workspace_guid>@<endpoint>/<item_guid>/Files/<path>
Výkon a škálovatelnost – volba správné čtečky v Azure Machine Learning
fsspec (a backend OneLake adlfs, který obaluje) je abstrakce souborového systému na úrovni jazyka Python. Je vhodný pro poznámkové bloky, ale není sám o sobě paralelním datovým modulem – jeho souběžnost je svázaná jedním procesem Python. Výkon proto závisí na čtečce a motoru, který je nad ním. Dokumentace k modulu runtime pro data v Azure Machine Learning explicitně doporučuje používat tento modul runtime pro data v Azure Machine Learning místo stahování trénovacích dat pomocí Pythonu na straně klienta a upozorňuje na pozorovaná omezení propustnosti úložiště „když kód klienta používá Python ke stahování dat z úložiště kvůli problémům s globálním zámkem interpretu (GIL)“.
Použití Azure Machine Learning Sparku pro zpracování velkých objemů dat na OneLake
OneLake je navržený jako analytické jezero a abfss:// koncový bod je sestavený pro paralelní rozdělené vzory čtení, které Spark používá. Pro ETL v rozsahu TB, tvorbu atributů nebo distribuovanou přípravu trénovacích dat použijte Azure Machine Learning Spark na platformě fsspec, ideálně v clusteru s více uzly:
Bezserverový Spark ve Azure Machine Learning nebo připojeném fondu Synapse Spark – spouštějte úlohy Sparku nebo poznámkové bloky Sparku uvnitř Azure Machine Learning a čtěte oneLake přímo přes
abfss://. Viz Apache Spark v Azure Machine Learning.Fabric Spark – poznámkové bloky Sparku nebo úlohy spuštěné uvnitř Fabric mají prvotřídní přístup ke stejnému jezeru a můžou předávat kurátorované výstupy Azure Machine Learning prostřednictvím úložiště dat OneLake.
Následující příklad ukazuje, jak načíst tabulku Delta z lakehouse v relaci Spark ve výpočetním prostředí Azure Machine Learning:
df = (
spark.read.format("delta")
.load(
"abfss://<workspace_guid>@onelake.dfs.fabric.microsoft.com/"
"<item_guid>/Tables/<table-name>"
)
)
OneLake a Azure Machine Learning mltable
V současnosti čtení dat využívajících OneLake prostřednictvím mltable selhává při streamování souboru. Pozorované chyby zahrnují ScriptExecution.StreamAccess.NotFound a Invalid argument (os error 22). Výpočetní prostředí Azure Machine Learning může přistupovat ke službě OneLake a číst ji prostřednictvím azureml-fsspec, pyarrow nebo sady Azure Storage Datové Jezero SDK se stejným úložištěm dat a identitou.
Místo tabulky ML zvažte jednu z následujících alternativ:
- Pro čtení z OneLake upřednostňujte
uri_file/uri_folderdatové assety a načítejte je pomocíazureml-fsspec+ pyarrow / pandas / polars / DuckDB (jeden uzel) nebo pomocí Sparku naabfss://(distribuovaně). Samotná dokumentace Microsoft Learnmltableuvádí, že pro jednoduchou složku Parquet nebo soubor CSV jsouuri_file/uri_folderdoporučenou volbou. - Pokud je
mltablesémantika skutečně vyžadována – nejčastěji jako vstup do AutoML, který vyžadujetype: mltable– nejprve připravte data do účtu ADLS Gen2 a potom vytvořtemltablenad tímto umístěním.mltableje v současné chvíli spolehlivá pro ADLS Gen2. - Vzorec zástupce OneLake (probíraný v rámci dávkových koncových bodů) se pro tabulku ML přirozeně hodí – tentýž fyzický soubor je uložený v ADLS Gen2 (kde
mltablefunguje) a prostřednictvím zástupce se zpřístupní v lakehouse Fabric (kde ho nástroje Fabric vidí), aniž by se kopíroval.
mltable obsahuje několik možností, které uri_file / uri_folder nejsou k dispozici. Následující tabulka uvádí nejbližší ekvivalent při přímém čtení OneLake.
mltable Schopnosti |
Alternativa |
|---|---|
Deklarativní, přenositelný popis načítání (oddělovač, kódování, hlavička, velikost oddílu, typy sloupců) uložený jako soubor MLTable spolu s daty |
Zafixujte nastavení čtení v Pythonu (pyarrow.parquet.ParquetDataset, pandas.read_csv(...), polars.scan_parquet(...), duckdb.read_parquet(...)) a ponechte tento modul načítání ve správě zdrojového kódu. |
Předdefinované transformace při čtení (filter, drop_columns, convert_column_types, take_random_sample) |
Použijte ekvivalenty v enginu, který si zvolíte – polars / duckdb LazyFrame podobně posouvá filtry a projekce dolů; Spark na abfss:// dělá totéž ve velkém měřítku |
| Sestavení cesty z více zdrojů – jedna tabulka zahrnující více souborů, složek, vzorů glob a dokonce i účtů úložiště | Použijte fs.glob(...) z azureml-fsspec, pyarrow.dataset.dataset(paths) nebo Sparku spark.read.parquet(*paths) pro načtení seznamu cest jako jedné logické datové sady |
eval_mount
/
eval_download režimy v úlohách Azure Machine Learning (vyhodnotit cesty ze souboru MLTable při odeslání úlohy, připojit pouze to, na co je odkazováno) |
Materializujte kurátorovanou podmnožinu upstreamu (poznámkový blok Fabric nebo úloha předběžného zpracování v Azure Machine Learning zapisuje do vyhrazené složky /Files/curated/...) a nasměrujte ji na uri_folder |
Verzování receptu pro čtení (nejen data) pomocí datového assetu typu mltable |
Verzujte skript zavaděče spolu s kódem modelu v Gitu nebo spárujte datový asset uri_folder s malým modulem zavaděče zařazeným do repozitáře vedle trénovacího skriptu |
**Vstup AutoML – AutoML vyžaduje type: mltable (Nastavení tréninku AutoML) |
Přeneste data do ADLS Gen2 (zkratka z Lakehouse zachovává jedinou fyzickou kopii) a tam vytvořte mltable |
Pro vlastní trénování a bodování na OneLake použijte uri_file / uri_folder plus modul podle vašeho výběru (pyarrow / polars / duckdbjeden uzel nebo Spark distribuovaný v Azure Machine Learning). Tyto možnosti nabízejí stejné funkční funkce jako mltable u srovnatelné nebo lepší propustnosti. Pro AutoML směrujte přes ADLS Gen2, dokud není podporováno mltable přes OneLake. Můžete použít zástupce na OneLake, abyste se vyhnuli duplikaci dat a zároveň měli data ve Fabricu stále k dispozici pro další scénáře použití.
Considerations
Model identit OneLake používá model identit SaaS, takže nezpřístupňuje ID předplatného. Místo řízení přístupu na základě role v Azure (Azure RBAC) u účtu úložiště se přístup řídí rolemi pracovního prostoru Fabric (Admin, Member, Contributor, Viewer) v cílovém lakehouse. Datové úložiště OneLake podporuje dva režimy přihlašování, které jsou popsány v článku Vytvoření úložišť dat. Pokud chcete nastavit úložiště dat a získat přístup k Fabric lakehouse, potřebujete uživatele s rolí Přispěvatel pracovního prostoru Fabric a rolí správce pracovního prostoru Azure Machine Learning.
Jedna kopie dat Úložiště dat OneLake a přímý přístup ABFSS zachová princip "jediné kopie" OneLake. Vzor zkratky pro koncové body dávkového zpracování tento princip logicky zachovává, ale jako podkladové fyzické úložiště vyžaduje účet služby ADLS Gen2.
Společné umístění v rámci oblasti. Umístěte pracovní prostor Azure Machine Learning, výpočetní prostředky a kapacitu Fabric nebo oblast OneLake do stejné oblasti, abyste se vyhnuli odchozímu přenosu dat mezi oblastmi.