OneLake'i Azure Machine Learning ile tümleştirme

OneLake, Fabric'in Azure Depolama uyumlu erişime sahip açık göl depolama katmanıdır. Fabric verilerini, ADLS Gen2/DFS erişimi için onelake.dfs.fabric.microsoft.com ve Blob API erişimi için onelake.blob.fabric.microsoft.com üzerinden kullanıma sunar. Bu makalede, Azure Machine Learning AML veri depoları, toplu uç nokta giriş ve çıkışları ve not defterlerinden veya betiklerden doğrudan abfss:// erişim aracılığıyla bu yüzeyleri nasıl kullanabileceği açıklanır.

Azure Machine Learning, OneLake ile üç birincil tümleştirme noktası sağlar:

  1. Veri depoları - Fabric Lakehouse Files konumunu Azure Machine Learning veri deposu olarak kaydedin ve işlerden ve veri varlıklarından bu konuma başvurun. Azure Machine Learning, Fabric Lakehouse tablolarına doğrudan bağlantıyı da destekler, ancak bu desen ADLS 2. Nesil'e bir kopya içerir ve bu belgede ele alınamaz.
  2. Toplu işlem uç noktaları - giriş ve çıkışları OneLake'te bulunan toplu işlem dağıtımlarını çağırma (şu anda kayıtlı bir veri deposu veya kısayol destekli Blob/ADLS veri deposu aracılığıyla).
  3. OneLake API'leri / doğrudan ABFSS erişimi - OneLake'i doğrudan Azure Machine Learning çalışma zamanı ortamlarında çalışan not defterlerinden ve betiklerden okuyun ve yazın.
Azure Machine Learning tümleştirme noktası OneLake yüzeyi Azure Machine Learning yüzey Veriler ADLS 2. Nesil'e kopyalanıyor mu? Azure Machine Learning'de kullanılacak birincil URI
OneLake veri deposu Lakehouse /Files bölümü. CLI / SDK (YAML) Hayır azureml://datastores/<name>/paths/<path>
OneLake lakehouse tablosu (UI ile bağlantılı) Lakehouse /Tables bölümü. Azure Machine Learning Stüdyosu (kullanıcı arabirimi) Evet - Fabric işlem hattı aracılığıyla ADLS 2. Nesil'e kopyalandı, sonra kaydedildi azureml://datastores/<adls_ds>/paths/<path>
Batch uç noktası girişi/çıkışı Lakehouse /Files (ADLS kısayolu aracılığıyla). CLI / SDK / REST Optional azureml://datastores/<name>/paths/<path> veya abfss://...
Direct OneLake API/ABFSS /Files ve /Tables Azure Machine Learning işlem kaynaklarındaki not defterleri/betikler Hayır abfss://<workspace>@onelake.dfs.fabric.microsoft.com/<lakehouse>.Lakehouse/Files/...

Note

azureml://depolama protokolü değil, Azure Machine Learning özgü bir URI düzenidir. Azure Machine Learning denetim düzlemi ve veri çalışma zamanı, adlandırılmış veri deposunda kayıtlı bağlantı meta verilerini ve kimlik bilgilerini kullanarak temel depolama konumunu (Blob, ADLS 2. Nesil, OneLake ve daha fazlası) çözümlemek için bunu kullanır.

Azure Machine Learning Veri Deposu olarak OneLake

Veri deposu, dış depolama konumu (OneLake, Azure Blob, ADLS Gen2, Azure Dosyalar) için Azure Machine Learning'de çalışma alanı kapsamındaki bir soyutlamadır. Mevcut bir depolama kaynağı, uç nokta, kapsayıcı/dosya sistemi/öğe ve kimlik bilgileri veya kimlik yapılandırması için bağlantı meta verilerini, verilerin kendisini sağlamadan veya kopyalamadan depolar. Azure Machine Learning içindeki çeşitli deneyimler, kararlı bir URI (azureml://datastores/<name>/paths/<path>) kullanarak veri depolarına başvurabilir.

Note

Azure Machine Learning Stüdyosu şu anda OneLake'i kullanıcı arabiriminde veri deposu türü olarak listelememektedir ancak CLI ve SDK, YAML tanımı aracılığıyla OneLake veri depoları oluşturmayı ve yönetmeyi destekler.

Microsoft Fabric’den gerekli bağlantı meta verisi

Fabric'teki lakehouse öğesinin Özellikler sayfasından şunları kaydedin:

  • Uç nokta - OneLake için, kullanmak istediğiniz protokole bağlı olarak onelake.dfs.fabric.microsoft.com veya onelake.blob.fabric.microsoft.com kullanın.
  • Çalışma Alanı GUID'i
  • Öğe GUID'i (göl evi GUID'i)

Azure Machine Learning'de veri deposu oluşturma

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.

Azure CLI kullanarak hedef Azure Machine Learning çalışma alanında veri deposu oluşturun. <name_of_AML_workspace> ve <name_of_datastore> yer tutucularını uygun değerlerle değiştirin.

az ml datastore create --file ./onelake-datastore.yml \
    --resource-group rg-amlonelake \
    --workspace-name <name_of_AML_workspace>

Azure Machine Learning işlerinde veri deposu kullanma

Azure Machine Learning veri deposu kaydedildikten sonra, azureml:// URI'si çeşitli kullanım deneyimleri üzerinden kullanılabilir. Buradaki örnek, bir Azure Machine Learning işinde OneLake veri deposuna nasıl başvurduğunu gösterir. Aşağıdaki URI, veri varlığı tanımlarında ve Azure Machine Learning'in veri deposu yolunu kabul ettiği her yerde, bir iş Input/Output için geçerlidir; ancak batch uç noktaları bunun dışındadır; çünkü bunlar şu anda giriş veya çıkış için veri deposu türü olarak OneLake'i desteklememektedir.

Aşağıdaki iş örneği, bir dosyayı aynı OneLake veri deposu içindeki bir konumdan diğerine kopyalar. Aynı işte giriş ve çıkış olarak desteklenen çeşitli depolama hedeflerinin (Blob, ADLS 2. Nesil, OneLake) bir karışımını kullanabilirsiniz.

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>

OneLake veri deposuna doğrudan başvurabilen Azure Machine Learning deneyimler

# Azure Machine Learning yüzey / arabirim Yönlendirme OneLake adresleme Source
1 Azure Machine Learning işleri - Input / Output (CLI v2, SDK v2 command, pipeline, sweep) R / W azureml://datastores/<onelake_ds>/paths/... Bir işteki verilere erişme
2 Veri varlıkları (uri_file, uri_folder) OneLake veri deposu yolunda kayıtlı R (varlıklar salt okunur referanslardır) azureml://datastores/<onelake_ds>/paths/... sürümlendirme ile sarılmış Veri varlıkları oluşturma
3 Azure Machine Learning işlem ortamındaki not defterlerinde/betiklerde azureml-fsspecaracılığıyla Azure Machine Learning veri çalışma zamanı R / W azureml://datastores/<onelake_ds>/paths/..., fsspec.open(...) veya AzureMachineLearningFileSystem ile açıldı Etkileşimli geliştirme sırasında OneLake'ten verilere erişme

Toplu iş uç noktalarıyla OneLake

Azure Machine Learning, makine öğrenmesi modelleri ve işlem hatlarıyla uzun süreli, eşzamansız çıkarım gerçekleştirmek için model dağıtımına yönelik toplu iş uç noktalarına erişmek üzere Fabric kullanmanızı sağlar.

Bu düzende mimari hedef, hem giriş özelliği verilerinin hem de çıkış tahminlerinin tek bir fiziksel kopyasının her iki platform için de erişilebilir olmasını sağlamaktır : Fabric ve Azure Machine Learning. ADLS'deki bir dosya iki geçerli adrese sahiptir: Azure Machine Learning toplu işlem uç noktalarının girdi/çıktı olarak kabul ettiği bir azureml://datastores/... URI'si ve Fabric not defterlerinin, işlem hatlarının ve SQL analiz uç noktalarının sorgulayabildiği (ADLS kısayolu aracılığıyla etkinleştirilen) bir lakehouse yolu. Bu düzen kopya, zamanlanmış eşitleme veya ikinci bir gerçek kaynağı içermez. Göl evi görünümü ve Azure Machine Learning görünümü aynı depolama hesabının projeksiyonlarıdır.

Toplu iş uç noktaları, OneLake’te görünen iki klasör arasında bulunur:

  • Girdiler - Fabric veri mühendisliği tarafından hazırlanan düzenlenmiş /Files konum (ham veri iniş alanı, puanlanmış istekler, günlük bölüntüler). Azure Machine Learning, bunu kısayolun işaret ettiği depolama alanıyla aynı depolama alanını işaret eden bir ADLS Gen2 veri deposu aracılığıyla okur.
  • Çıkışlar - toplu iş tarafından aynı ADLS Gen2 hesabına yazılan bir tahmin konumu /Files; bu konum lakehouse'ta bir kısayol aracılığıyla görünür ve Fabric not defterleri, veri akışları veya Delta tablosu yükleme adımı tarafından hemen kullanılabilir.

Daha genel olarak, bu yaklaşım ADLS Gen2’de verilerin zaten bulunduğu senaryolar için çok uygundur. Örneğin, analitik veya ML iş yüklerini besleyen mevcut bir veri gölü. OneLake kısayolu, bu verileri OneLake’e taşımak veya çoğaltmak yerine, mevcut ADLS konumunu bir Fabric lakehouse içinde görünür kılar; aynı hesap da veri deposu olarak kayıtlı olmaya devam eder.

Azure Machine Learning not defterlerinden ve betiklerden OneLake SDK veya API erişimi

Kod, bir Azure Machine Learning işlem kaynağında (işlem örneği, işlem kümesi veya sunucusuz işlem) çalıştığında, abfss:// yolu veya OneLake veri deposu yolu üzerinden doğrudan OneLake'ten okuyabilir ve OneLake'e yazabilir. OneLake SDK’sı ve API’leri esnek bir tümleştirme noktası sunar ve notebook tabanlı keşif, özel eğitim komut dosyaları ve Azure Machine Learning işlem kaynağı üzerinden hem /Files hem de /Tables erişimi gerektiren bileşenler için kullanılabilir.

OneLake, OneLake'teki dosyalar için bir abfss:// URI kullanır ve kimlik veya hizmet sorumlusu tabanlı kimlik doğrulaması için geçerli iş giriş yolu olarak kullanılabilir:

abfss://<workspace_guid>@<endpoint>/<item_guid>/Files/<path>

Performans ve ölçeklenebilirlik - Azure Machine Learning'de doğru okuyucuyu seçme

fsspec (ve sarmaladığı OneLake adlfs arka ucu) Python düzeyinde bir dosya sistemi soyutlamasıdır. Not defterleri için kullanışlıdır ancak kendisi paralel bir veri altyapısı değildir; eşzamanlılığı tek bir Python işlemiyle sınırlanır. Bu nedenle performans, üzerine oturan okuyucuya ve motora bağlıdır. Azure Machine Learning veri çalışma zamanı belgelerinde, eğitim verileri için istemci tarafında Python ile veri indirmeye kıyasla Azure Machine Learning veri çalışma zamanının kullanılmasının açıkça önerildiği ve "istemci kodu, Global Interpreter Lock (GIL) sorunları nedeniyle Python kullanarak depolama alanından veri indirdiğinde" gözlemlenen depolama aktarım hızı sınırlamalarına dikkat çekildiği belirtilir.

OneLake'de büyük ölçekli veri işleme için Azure Machine Learning Spark kullanma

OneLake bir analiz gölü olarak tasarlanmıştır ve abfss:// uç nokta Spark'ın kullandığı paralel, bölümlenmiş okuma desenleri için oluşturulur. TB ölçeğinde ETL, özellik mühendisliği veya dağıtılmış eğitim verisi hazırlama için, tercihen çok düğümlü bir kümede fsspecüzerinde Azure Machine Learning Spark kullanın:

  • Azure Machine Learning’de Sunucusuz Spark veya ekli Synapse Spark havuzu - Spark işlerini/not defterlerini Azure Machine Learning’de çalıştırın ve abfss:// aracılığıyla OneLake’i doğrudan okuyun. Bkz. Azure Machine Learning'de Apache Spark.

  • Fabric Spark - Fabric içinde çalışan Spark not defterleri ve işler, aynı lakehouse'a doğrudan erişebilir ve düzenlenmiş çıktıları OneLake veri deposu aracılığıyla Azure Machine Learning'e aktarabilir.

Aşağıdaki örnek, Azure Machine Learning işlem kaynağındaki bir Spark oturumundan bir lakehouse Delta tablosunun nasıl okunacağını gösterir:

df = (
    spark.read.format("delta")
        .load(
            "abfss://<workspace_guid>@onelake.dfs.fabric.microsoft.com/"
            "<item_guid>/Tables/<table-name>"
        )
)

OneLake ve Azure Machine Learning mltable

Şu anda, dosya akışı sırasında OneLake tarafından desteklenen verilerin mltable üzerinden okunması başarısız oluyor. Gözlemlenen hatalar ScriptExecution.StreamAccess.NotFound ve Invalid argument (os error 22) içerir. Azure Machine Learning işlem kaynağı, OneLake’i azureml-fsspec, pyarrow veya aynı veri deposu ve kimlikle Azure Depolama Veri Gölü SDK’sı aracılığıyla çözümleyebilir ve okuyabilir.

ML Tablosu yerine aşağıdaki alternatiflerden birini göz önünde bulundurun:

  • OneLake okumaları için uri_file / uri_folder veri varlıklarını tercih edin ve bunları azureml-fsspec + pyarrow / pandas / polars / DuckDB ile (tek düğümde) ya da Spark ile abfss:// üzerinde (dağıtık olarak) yükleyin. Microsoft Learn mltable belgeleri, basit bir Parquet klasörü veya CSV dosyası uri_file / uri_folder için önerilen seçenek olduğunu belirtir.
  • mltable semantiği gerçekten gerekiyorsa — en yaygın olarak, zorunlu kılan type: mltable girdi olarak — verileri önce bir ADLS Gen2 hesabına hazırlayın ve mltable öğesini bu konuma karşı oluşturun. mltable bugün ADLS 2. Nesil'de güvenilirdir.
  • OneLake kısayol deseni (toplu işlem uç noktalarının bir parçası olarak ele alınır), ML Tablosu için doğal olarak uygundur: aynı fiziksel dosya ADLS Gen2’de bulunur (burada mltable çalışır) ve kopyalama olmadan, bir kısayol aracılığıyla Fabric lakehouse’unda görünür (Fabric araçları da onu burada görür).

mltable, uri_file / uri_folder ürünlerinin varsayılan olarak sunmadığı çeşitli özellikleri bir araya getirir. Aşağıdaki tabloda, OneLake'i doğrudan okuduğunuzda en yakın eşdeğer listelenir.

mltable yetenek Alternatif
Bildirim temelli, taşınabilir okuma şeması (sınırlayıcı, kodlama, üst bilgi, bölüm boyutu, sütun türleri) verilerin yanı sıra dosya MLTable olarak kalıcı hale getirildi Python (pyarrow.parquet.ParquetDataset, pandas.read_csv(...), , polars.scan_parquet(...)duckdb.read_parquet(...)) içindeki okuma ayarlarını sabitleyin ve bu yükleyici modülünü kaynak denetimi altında tutun
Okuma zamanında yerleşik dönüştürmeler (filter, drop_columns, convert_column_types, take_random_sample) Seçtiğiniz motorda eşdeğerleri uygulayın - polars / duckdb lazy frame’ler benzer şekilde filtreleri ve projeksiyonları alta iter; abfss:// üzerindeki Spark da aynı şeyi büyük ölçekte yapar
Çok kaynaklı yol oluşturma - birden çok dosya, klasör, glob desenleri ve hatta depolama hesaplarını kapsayan bir tablo Bir yol listesini tek bir mantıksal veri kümesi olarak okumak için, fs.glob(...), azureml-fsspec veya Spark'ın pyarrow.dataset.dataset(paths) öğesinden spark.read.parquet(*paths) kullanın
eval_mount / eval_download modları Azure Machine Learning işlerinde (MLTable dosyasındaki yolları iş gönderimi sırasında çözümleyin, yalnızca başvurulanları bağlayın) Özenle seçilmiş bir alt kümeyi yukarı akışta oluşturun (Fabric not defteri veya Azure Machine Learning ön işleme işi verileri özel bir /Files/curated/... klasörüne yazar) ve bunu uri_folder öğesine yönlendirin
türünde bir veri varlığı aracılığıyla mltable (yalnızca verilerin değil) sürümlenmesi Yükleyici betiğini Git'te model koduyla birlikte sürümleyin veya uri_folder veri varlığını, eğitim betiğinin yanında depoya eklenmiş küçük bir yükleyici modülüyle eşleştirin
**AutoML girişi—AutoML gereksinimleri type: mltable (AutoML eğitimini yapılandırma) Verileri ADLS Gen2’ye hazırlayın (lakehouse kısayolu tek bir fiziksel kopya tutar) ve mltable burada oluşturun

OneLake'te özel eğitim ve puanlama için, uri_file / uri_folder ile birlikte seçtiğiniz bir işlem altyapısını kullanın (pyarrow / polars / duckdb tek düğümlü veya Azure Machine Learning'de dağıtılmış Spark). Bu seçenekler, mltable ile aynı işlevsel özellikleri karşılaştırılabilir veya daha yüksek iş hacmiyle sunar. AutoML için, OneLake üzerinden mltable desteklenene kadar ADLS Gen2 üzerinden yönlendirin. Veri yinelemesini önlemek için OneLake kısayolunu kullanabilir ve diğer kullanım örnekleri için verilerin Fabric'de kullanılabilir durumda olmasını sağlayabilirsiniz.

Considerations

  • Kimlik modeli. OneLake, SaaS kimlik modelini kullandığından Abonelik Kimliğini kullanıma sunmaz. Depolama hesabındaki Azure rol tabanlı erişim denetimi (Azure RBAC) yerine, erişim hedef lakehouse üzerindeki Fabric çalışma alanı rolleri (Yönetici, Üye, Katkıda Bulunan, Görüntüleyici) tarafından yönetilir. OneLake veri deposu, Veri depoları oluşturma bölümünde belgelenen iki kimlik bilgisi modunu destekler. Veri depoyu ayarlamak ve Fabric lakehouse'a erişmek için Fabric çalışma alanı Katkıda Bulunanı rolüne ve Azure Machine Learning çalışma alanı yöneticisi rolüne sahip bir kullanıcıya ihtiyacınız vardır.

  • Verilerin tek kopyası. OneLake veri deposu ve doğrudan ABFSS erişimi, OneLake'in "tek kopya" ilkesini korur. Toplu uç noktalar için kısayol modeli, bu ilkeyi mantıksal olarak korur ancak altyapıdaki fiziksel depo olarak bir ADLS Gen2 hesabı gerektirir.

  • Bölgelerin aynı konumda bulunması. Bölgeler arası çıkıştan kaçınmak için Azure Machine Learning çalışma alanını, işlem ve Fabric kapasitesini veya OneLake bölgesini aynı bölgeye yerleştirin.