Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
OneLake is de open lake opslaglaag van Fabric met toegang die compatibel is met Azure Storage. Hiermee worden Fabric-gegevens ontsloten via onelake.dfs.fabric.microsoft.com voor ADLS Gen2/DFS-toegang en via onelake.blob.fabric.microsoft.com voor Blob API-toegang. In dit artikel wordt beschreven hoe Azure Machine Learning deze opslaglocaties kan gebruiken via AML-gegevensopslag, invoer en uitvoer van batch-eindpunten en rechtstreekse abfss:// toegang vanuit notebooks of scripts.
Azure Machine Learning biedt drie primaire integratiepunten met OneLake:
-
Gegevensarchieven: registreer een Fabric Lakehouse-locatie
Filesals een Azure Machine Learning gegevensarchief en verwijs ernaar vanuit taken en gegevensassets. Azure Machine Learning ondersteunt ook directe koppeling naar Fabric Lakehouse-tabellen, maar dat patroon omvat een kopie naar ADLS Gen2 en wordt niet behandeld in dit document. - Batch-eindpunten : batchimplementaties aanroepen met invoer en uitvoer die zich in OneLake bevinden (vandaag via een geregistreerd gegevensarchief of via een blob-/ADLS-gegevensarchief met snelkoppelingen).
- OneLake-API's /directe ABFSS-toegang - OneLake rechtstreeks lezen en schrijven vanuit notebooks en scripts die worden uitgevoerd in Azure Machine Learning runtime-omgevingen.
| Integratiepunt in Azure Machine Learning | OneLake-oppervlak | Azure Machine Learning oppervlak | Worden gegevens gekopieerd naar ADLS Gen2? | Primaire URI die moet worden gebruikt in Azure Machine Learning |
|---|---|---|---|---|
| OneLake-gegevensarchief | Lakehouse-sectie /Files . |
CLI/SDK (YAML) | No | azureml://datastores/<name>/paths/<path> |
| OneLake Lakehouse-tabel (gekoppeld aan de gebruikersinterface) | Lakehouse-sectie /Tables . |
Azure Machine Learning Studio (UI) | Ja: gekopieerd via Fabric pijplijn naar ADLS Gen2 en vervolgens geregistreerd | azureml://datastores/<adls_ds>/paths/<path> |
| Batch-eindpuntinvoer/-uitvoer | Lakehouse /Files (via ADLS-snelkoppeling). |
CLI/SDK/REST | Optional |
azureml://datastores/<name>/paths/<path> of abfss://... |
| Direct OneLake API / ABFSS |
/Files en /Tables |
Notebooks / scripts op rekenresources van Azure Machine Learning | No | abfss://<workspace>@onelake.dfs.fabric.microsoft.com/<lakehouse>.Lakehouse/Files/... |
Opmerking
azureml://is een Azure Machine Learning-specifiek URI-schema, niet een opslagprotocol. Azure Machine Learning-besturingsvlak en gegevensruntime gebruiken het om de onderliggende opslaglocatie (Blob, ADLS Gen2, OneLake en meer) te bepalen met behulp van de verbindingsmetagegevens en referenties die zijn geregistreerd op het benoemde gegevensarchief.
OneLake als een Azure Machine Learning Gegevensarchief
Een gegevensarchief is een Azure Machine Learning abstractie met werkruimtebereik via een externe opslaglocatie (OneLake, Azure Blob, ADLS Gen2, Azure Files). Hiermee worden de metagegevens van de verbinding opgeslagen voor een bestaande opslagresource, het eindpunt, het container-/bestandssysteem/item en referenties of identiteitsconfiguratie, zonder de gegevens zelf in te richten of te kopiëren. Verschillende ervaringen binnen Azure Machine Learning kunnen verwijzen naar gegevensarchieven met behulp van een stabiele URI (azureml://datastores/<name>/paths/<path>).
Opmerking
Azure Machine Learning Studio vermeldt OneLake momenteel niet als gegevensarchieftype in de gebruikersinterface, maar de CLI en SDK bieden ondersteuning voor het maken en beheren van OneLake-gegevensarchieven via YAML-definitie.
Verbindingsmetagegevens vereist voor Microsoft Fabric
Leg op de pagina Eigenschappen van het lakehouse-item in Fabric het volgende vast:
-
Eindpunt : gebruik
onelake.dfs.fabric.microsoft.comvoor OneLake ofonelake.blob.fabric.microsoft.comafhankelijk van het protocol dat u wilt gebruiken. - Werkruimte-GUID
- Item-GUID (de lakehouse-GUID)
Het gegevensarchief maken in 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.
Maak met Azure CLI het gegevensarchief in de Azure Machine Learning doelwerkruimte. Vervang de plaatsaanduidingen <name_of_AML_workspace> en <name_of_datastore> door de juiste waarden.
az ml datastore create --file ./onelake-datastore.yml \
--resource-group rg-amlonelake \
--workspace-name <name_of_AML_workspace>
Een datastore gebruiken in Azure Machine Learning-jobs
Zodra een Azure Machine Learning gegevensarchief is geregistreerd, is de azureml:// URI beschikbaar voor gebruik via verschillende ervaringen. In het voorbeeld ziet u hoe u in een Azure Machine Learning taak verwijst naar een OneLake-gegevensarchief. De volgende URI is geldig als een taak Input/Output, in definities van gegevensassets en overal waar Azure Machine Learning een datastorepad accepteert, behalve voor batch-eindpunten, die momenteel OneLake niet ondersteunen als datastoretype voor invoer of uitvoer.
In het volgende voorbeeld van een taak wordt een bestand gekopieerd van de ene locatie naar de andere in hetzelfde OneLake-gegevensarchief. U kunt een combinatie van verschillende ondersteunde opslagdoelen (Blob, ADLS Gen2, OneLake) gebruiken als invoer en uitvoer in dezelfde taak.
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>
Azure Machine Learning ervaringen die rechtstreeks naar een OneLake-gegevensarchief kunnen verwijzen
| # | Azure Machine Learning oppervlak/interface | Richting | OneLake-adressering | Source |
|---|---|---|---|---|
| 1 |
Azure Machine Learning-jobs - Input / Output (CLI v2, SDK v2 command, pipeline, sweep) |
R / W | azureml://datastores/<onelake_ds>/paths/... |
Toegang tot gegevens in een taak |
| 2 |
Gegevensassets (uri_file, uri_folder) die zijn geregistreerd bij een OneLake-gegevensarchiefpad |
R (assets zijn alleen-lezen-verwijzingen) |
azureml://datastores/<onelake_ds>/paths/... verpakt met versiebeheer |
Gegevensmiddelen maken |
| 3 |
Azure Machine Learning-runtime voor gegevens via azureml-fsspec in notebooks/scripts op Azure Machine Learning-rekenresources |
R / W |
azureml://datastores/<onelake_ds>/paths/... geopend met fsspec.open(...) of AzureMachineLearningFileSystem |
Toegang tot gegevens van OneLake tijdens interactieve ontwikkeling |
OneLake met eindpunten voor batches
Azure Machine Learning kunt u Fabric gebruiken voor toegang tot batcheindpunten voor modelimplementatie voor langdurige, asynchrone deductie met machine learning-modellen en -pijplijnen.
In dit patroon is het architectuurdoel om één fysieke kopie van zowel de invoerfunctiegegevens als de uitvoervoorspellingen toegankelijk te houden voor beide platforms: Fabric en Azure Machine Learning. Een bestand in ADLS bevat twee geldige adressen - een azureml://datastores/... URI die door Azure Machine Learning batch-endpoints als input/output worden geaccepteerd, en een lakehouse-pad (ingeschakeld via ADLS-snelkoppeling) dat Fabric-notebooks, pipelines en SQL-analytics-endpoints kunnen doorzoeken. Dit patroon omvat geen kopie, geen geplande synchronisatie, geen tweede bron van waarheid. De lakehouse-weergave en de weergave Azure Machine Learning zijn projecties van hetzelfde opslagaccount.
Batch-eindpunten bevinden zich tussen twee mappen die zichtbaar zijn voor OneLake:
-
Invoer - een samengestelde locatie (
/Filesonbewerkte landingszone, beoordeelde aanvragen, dagelijkse partities) die is voorbereid door Fabric data engineering. Azure Machine Learning leest het via een ADLS Gen2-gegevensarchief dat verwijst naar dezelfde opslag als de snelkoppeling. -
Uitvoer - een locatie voor voorspellingen
/Filesdie door de batchtaak wordt weggeschreven naar hetzelfde ADLS Gen2-account, die in het lakehouse verschijnt via een snelkoppeling en onmiddellijk beschikbaar is voor Fabric-notebooks, gegevensstromen of een laadstap van een Delta-tabel.
Dit patroon is breder geschikt voor scenario's waarin u al gegevens hebt opgenomen in ADLS Gen2. Bijvoorbeeld een bestaande data lake die analyses of ML-workloads invoert. In plaats van die gegevens te migreren of te dupliceren naar OneLake, wordt met een OneLake-snelkoppeling de bestaande ADLS-locatie in een Fabric lakehouse weergegeven, terwijl hetzelfde account blijft geregistreerd als een gegevensarchief.
Toegang tot de OneLake SDK of API vanuit Azure Machine Learning-notebooks en -scripts
Wanneer code wordt uitgevoerd op een Azure Machine Learning compute (rekenproces, rekencluster of serverloze berekening), kan deze rechtstreeks naar OneLake lezen en schrijven via abfss:// het pad of het bijbehorende OneLake-gegevensarchiefpad. OneLake SDK en API's bieden een flexibel integratiepunt en kunnen worden gebruikt voor notebookgestuurde verkenning, aangepaste trainingsscripts en onderdelen die zowel /Files als /Tables toegang nodig hebben via Azure Machine Learning compute.
OneLake gebruikt een abfss:// URI voor bestanden in OneLake en kan worden gebruikt als geldig taakinvoerpad voor verificatie op basis van identiteit of service-principal:
abfss://<workspace_guid>@<endpoint>/<item_guid>/Files/<path>
Prestaties en schaalbaarheid: de juiste lezer kiezen in Azure Machine Learning
fsspec (en de OneLake-backend adlfs waar het omheen zit) is een bestandssysteemabstractie op Python-niveau. Het is handig voor notebooks, maar is zelf geen parallelle gegevensengine. De gelijktijdigheid ervan wordt gebonden door één Python proces. De prestaties zijn daarom afhankelijk van de lezer en motor die er bovenop zitten. In de documentatie voor Azure Machine Learning data runtime wordt expliciet aanbevolen om voor trainingsdata de Azure Machine Learning-data runtime te gebruiken in plaats van client-side Python-downloads, waarbij wordt opgemerkt dat er beperkingen in de opslagdoorvoer zijn waargenomen "wanneer de clientcode Python gebruikt om data uit de opslag te downloaden, vanwege problemen met de Global Interpreter Lock (GIL)."
Gebruik Azure Machine Learning Spark voor grootschalige gegevensverwerking in OneLake
OneLake is ontworpen als een analyse lake en het abfss:// eindpunt is gebouwd voor de parallelle, gepartitioneerde leespatronen die Spark gebruikt. Gebruik voor ETL op TB-schaal, feature-engineering of gedistribueerde voorbereiding van trainingsgegevens Azure Machine Learning Spark via fsspec, bij voorkeur op een cluster met meerdere knooppunten:
Serverloze Spark in Azure Machine Learning of een gekoppelde Synapse Spark-pool: voer Spark-taken/notebooks uit binnen Azure Machine Learning en lees OneLake rechtstreeks via
abfss://. Zie Apache Spark in Azure Machine Learning.Fabric Spark - Spark-notebooks/-taken die in Fabric worden uitgevoerd, beschikken over eersteklas toegang tot hetzelfde lakehouse en kunnen gecureerde uitvoer afleveren aan Azure Machine Learning via OneLake-gegevensopslag.
In het volgende voorbeeld ziet u hoe u een Lakehouse Delta-tabel leest uit een Spark-sessie in Azure Machine Learning compute:
df = (
spark.read.format("delta")
.load(
"abfss://<workspace_guid>@onelake.dfs.fabric.microsoft.com/"
"<item_guid>/Tables/<table-name>"
)
)
OneLake en Azure Machine Learning mltable
Op dit moment mislukt het lezen van in OneLake opgeslagen gegevens via mltable wanneer het bestand wordt gestreamd. Waargenomen fouten zijn onder andere ScriptExecution.StreamAccess.NotFound en Invalid argument (os error 22). Azure Machine Learning compute kan OneLake oplossen en lezen viaazureml-fsspec, pyarrowof de Azure Storage Data Lake SDK voor dezelfde gegevensopslag en identiteit.
Overweeg een van de volgende alternatieven in plaats van ML-tabel:
- Gebruik bij het lezen uit OneLake bij voorkeur
uri_file/uri_folderdata-assets en laad deze metazureml-fsspec+ pyarrow / pandas / polars / DuckDB (één node), of met Spark opabfss://(gedistribueerd). In de Microsoft Learn-documentatiemltablewordt aangegeven dat voor een eenvoudige Parquet-map of CSV-bestanduri_file/uri_folderde aanbevolen keuze is. - Als
mltable-semantiek echt vereist is — meestal als invoer voor AutoML, waarvoortype: mltablevereist is — zet de gegevens dan eerst over naar een ADLS Gen2-account en bouw demltableop die locatie.mltableis tegenwoordig betrouwbaar op ADLS Gen2. - Het OneLake-shortcutpatroon (besproken als onderdeel van batch-eindpunten) past van nature goed bij ML Table: hetzelfde fysieke bestand bevindt zich in ADLS Gen2 (waar
mltablewerkt) en is via een shortcut zichtbaar in het Fabric-lakehouse (waar Fabric-tools het zien), zonder het te kopiëren.
mltable combineert meerdere mogelijkheden die uri_file / uri_folder standaard niet bieden. De volgende tabel bevat het dichtstbijzijnde equivalent wanneer u OneLake rechtstreeks leest.
mltable Vermogen |
Alternatief |
|---|---|
Declaratieve, draagbare blauwdruk voor lezen (scheidingsteken, codering, koptekst, partitiegrootte, kolomtypen) behouden als een MLTable bestand naast de gegevens |
Maak de leesinstellingen vast in Python (pyarrow.parquet.ParquetDataset, pandas.read_csv(...), polars.scan_parquet(...), ) duckdb.read_parquet(...)en houd die laadmodule onder broncodebeheer |
Ingebouwde transformaties op leestijd (filter, drop_columns, convert_column_types, take_random_sample) |
Pas de equivalenten toe in de engine die u kiest - polars / duckdb lazy frames duwen filters en projecties op dezelfde manier omlaag; Spark on abfss:// doet hetzelfde op grote schaal |
| Samenstelling van meerdere bronpaden - één tabel met meerdere bestanden, mappen, globpatronen en zelfs opslagaccounts | Gebruik fs.glob(...) van azureml-fsspec, pyarrow.dataset.dataset(paths)of Spark's spark.read.parquet(*paths) om een lijst met paden te lezen als één logische gegevensset |
eval_mount
/
eval_download modi in Azure Machine Learning-jobs (paden uit het MLTable-bestand omzetten bij het indienen van de job, alleen dat koppelen waarnaar wordt verwezen) |
Stel eerder in de pijplijn een samengestelde subset beschikbaar (een Fabric-notebook of een Azure Machine Learning-taak voor voorverwerking schrijft naar een toegewezen map /Files/curated/...) en verwijs vervolgens naar uri_folder |
Versiebeheer van het uitleesrecept (niet alleen van de gegevens) via een data-asset van het type mltable |
Versie van het loader-script met de modelcode in Git of koppel een uri_folder gegevensasset met een kleine laadmodule die is ingecheckt naast het trainingsscript |
**AutoML-invoer— AutoML-mandaten type: mltable (AutoML-training instellen) |
Gegevens faseer naar ADLS Gen2 (snelkoppeling vanuit lakehouse houdt één fysieke kopie bij) en bouw de mltable gegevens daar |
Gebruik voor aangepaste training en scoreberekening op OneLake uri_file / uri_folder plus een engine van uw keuze (pyarrow / polars / duckdbéén knooppunt, of Spark, gedistribueerd in Azure Machine Learning). Deze opties bieden dezelfde functionele mogelijkheden als mltable met vergelijkbare of betere doorvoer. Gebruik voor AutoML ADLS Gen2 totdat routing via mltable OneLake wordt ondersteund. U kunt een snelkoppeling naar OneLake gebruiken om duplicatie van gegevens te voorkomen en de gegevens nog steeds beschikbaar te maken in Fabric voor andere gebruiksvoorbeelden.
Considerations
Identiteitsmodel. OneLake maakt gebruik van het SaaS-identiteitsmodel, dus er wordt geen abonnements-id weergegeven. In plaats van Azure op rollen gebaseerde toegangsbeheer (Azure RBAC) voor het opslagaccount, wordt de toegang beheerd door Fabric-werkruimterollen (Beheerder, Lid, Bijdrager, Lezer) op het doellakehouse. Het OneLake-gegevensarchief ondersteunt twee referentiemodi, die worden beschreven in Gegevensarchieven maken. Als u de gegevensopslag wilt instellen en toegang wilt hebben tot het Fabric-lakehouse, hebt u een gebruiker nodig met de rol Inzender in de Fabric-werkruimte en de beheerdersrol voor de Azure Machine Learning-werkruimte.
Eén kopie van gegevens. Het OneLake-gegevensarchief en directe ABFSS-toegang behouden het principe van 'één kopie' van OneLake. Het patroon met snelkoppelingen voor batcheindpunten handhaaft dit principe op logische wijze, maar vereist een ADLS Gen2-account als onderliggende fysieke opslag.
Co-locatie van regio's. Plaats de Azure Machine Learning-werkruimte, compute en de Fabric-capaciteit of OneLake-regio in dezelfde regio om uitgaand verkeer tussen regio's te voorkomen.