Veri varlıkları oluşturma

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)

Bu makalede, Azure Machine Learning'de veri varlığı oluşturmayı öğreneceksiniz. Bir veri varlığı oluşturarak, veri kaynağı konumuna bir başvuru ve meta verilerinin bir kopyasını oluşturursunuz. Veriler mevcut konumunda kaldığından ek depolama maliyetine neden olmazsınız ve veri kaynaklarınızın bütünlüğünü riske atmazsınız. Azure ML veri depolarından, Azure Depolama'dan, genel URL'lerden ve yerel dosyalardan Veri oluşturabilirsiniz.

Önemli

Verilerinize yalnızca etkileşimli bir oturumda (örneğin, bir Not Defteri) veya bir işte erişmek istiyorsanız, önce bir veri varlığı oluşturmanız gerekmez. Veri varlığı oluşturmak sizin için gereksiz bir adım olabilir.

Not defterindeki verilerinize erişme hakkında daha fazla bilgi için bkz. Etkileşimli geliştirme için Azure bulut depolamadan verilere erişme.

Bir işteki verilerinize (hem yerel hem de bulut depolama) erişme hakkında daha fazla bilgi için bkz. bir işteki verilere erişme.

Veri varlıkları oluşturmak, aşağıdaki işlemleri yapmak istediğinizde kullanışlıdır:

  • Bulut depolamadaki dosya konumlarını hatırlamaları gerekmeyecek şekilde verilerinizi ekibinizin diğer üyeleriyle paylaşın ve yeniden kullanın.
  • Konum , açıklama ve etiketler gibi meta verilerin sürümünü oluşturun.

Ön koşullar

Veri varlıkları oluşturmak ve bunlarla çalışmak için şunları yapmanız gerekir:

Desteklenen yollar

Azure Machine Learning'de bir veri varlığı oluşturduğunuzda, konumuna işaret eden bir path parametre belirtmeniz gerekir. Aşağıda Azure Machine Learning'de desteklenen farklı veri konumlarını ve parametresine yönelik örnekleri gösteren bir tablo verilmiştir path :

Konum Örnekler
Yerel bilgisayarınızdaki bir yol ./home/username/data/my_data
Veri deposundaki yol azureml://datastores/<data_store_name>/paths/<path>
Ortak http(s) sunucusundaki yol https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv
Azure Depolama'da bir yol wasbs://<containername>@<accountname>.blob.core.windows.net/<path_to_data>/
abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>
adl://<accountname>.azuredatalakestore.net/<path_to_data>/
https://<account_name>.blob.core.windows.net/<container_name>/path

Not

Yerel bir yoldan veri varlığı oluşturduğunuzda, otomatik olarak buluttaki varsayılan Azure Machine Learning veri deposuna yüklenir.

Önemli

Stüdyo yalnızca kimlik bilgisi olmayan ADLS 2. Nesil veri depolarına göz atmayı destekler.

Veri varlığı türleri

  • [URI'ler] (veri varlığı #Create uri_folder ) - Yerel bilgisayarınızdaki veya buluttaki bir depolama konumuna başvuru olan ve işlerinizdeki verilere erişmeyi kolaylaştıran U niformResource Igirintileyicisi. Azure Machine Learning iki tür URI'sini ayırt eder:uri_file ve uri_folder.

  • [MLTable] (veri varlığı #Create mltable ) - MLTable Tablosal veriler için şema tanımını soyutlamanıza yardımcı olur; böylece karmaşık/değişen şemaya veya AutoML'de kullanılmaya daha uygundur. Yalnızca bir iş için veri varlığı oluşturmak istiyorsanız veya Python'da kendi ayrıştırma mantığınızı yazmak istiyorsanız , uri_folderkullanabilirsinizuri_file.

Kullanılacak mltable ideal senaryolar şunlardır:

  • Verilerinizin şeması karmaşıktır ve/veya sık sık değişir.
  • Yalnızca bir veri alt kümesine ihtiyacınız vardır (örneğin: satır veya dosya örneği, belirli sütunlar vb.)
  • Tablo verileri gerektiren AutoML işleri.

Senaryonuz yukarıdakilere uymuyorsa URI'ler büyük olasılıkla daha uygun bir türdür.

uri_folder Veri varlığı oluşturma

Aşağıda varlık olarak klasör oluşturma gösterilmektedir:

YAML Dosya oluştur (<file-name>.yml):

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json

# Supported paths include:
# local: ./<path>
# blob:  https://<account_name>.blob.core.windows.net/<container_name>/<path>
# ADLS gen2: abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>/
# Datastore: azureml://datastores/<data_store_name>/paths/<path>
type: uri_folder
name: <name_of_data>
description: <description goes here>
path: <path>

Ardından CLI kullanarak veri varlığını oluşturun:

az ml data create -f <file-name>.yml

uri_file Veri varlığı oluşturma

Aşağıda veri varlığı olarak belirli bir dosyanın nasıl oluşturulacağı gösterilmektedir:

Yerel yoldaki veriler için örnek YAML dosya <file-name>.yml aşağıdaki gibidir:

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json

# Supported paths include:
# local: ./<path>/<file>
# blob:  https://<account_name>.blob.core.windows.net/<container_name>/<path>/<file>
# ADLS gen2: abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>/<file>
# Datastore: azureml://datastores/<data_store_name>/paths/<path>/<file>

type: uri_file
name: <name>
description: <description>
path: <uri>
> az ml data create -f <file-name>.yml

mltable Veri varlığı oluşturma

mltable , veri varlıklarını paylaşmayı kolaylaştırmak amacıyla tablosal verilerin şema tanımını soyutlamanın bir yoludur ( MLTable'da genel bakış bulunabilir). mltable aşağıdaki kaynaklardan gelen tablosal verileri destekler:

  • Sınırlandırılmış dosyalar (CSV, TSV, TXT)
  • Parquet dosyaları
  • JSON Çizgileri
  • Delta Lake

reference-yaml-mltable içinde aracılığıyla mltable sağladığımız özellikler hakkında daha fazla ayrıntı bulabilirsiniz.

Bu bölümde, türü mltablebir olduğunda veri varlığının nasıl oluşturulacağını göstereceğiz.

MLTable dosyası

MLTable dosyası, altyapının verileri bellek içi bir nesneye (Pandas/Dask/Spark) dönüştürebilmesi için verilerin şemasının mltable belirtimini sağlayan bir dosyadır.

Not

Bu dosyanın tam olarak olarak MLTableadlandırılması gerekir.

Sınırlandırılmış dosyalar için örnek bir MLTable dosyası aşağıda verilmiştir:

type: mltable

paths:
  - pattern: ./*.txt
transformations:
  - read_delimited:
      delimiter: ,
      encoding: ascii
      header: all_files_same_headers

Delta Lake için örnek bir MLTable dosyası aşağıda verilmiştir:

type: mltable

paths:
  - abfss://my_delta_files

transformations:
  - read_delta_lake:
      timestamp_as_of: '2022-08-26T00:00:00Z'
#timestamp_as_of: Timestamp to be specified for time-travel on the specific Delta Lake data.
#version_as_of: Version to be specified for time-travel on the specific Delta Lake data.

içinde mltablekullanılabilen diğer dönüştürmeler için lütfen reference-yaml-mltable bölümüne bakın.

Önemli

MLTable dosyasını depolamadaki temel verilerle birlikte bulmanızı öneririz. Örnek:

├── my_data
│   ├── MLTable
│   ├── file_1.txt
.
.
.
│   ├── file_n.txt

MLTable'ın verilerle birlikte bulunması, tüm gerekenlerin tek bir klasörde (my_data) depolandığı bağımsız bir yapıt sağlar; bu klasörün yerel sürücünüzde mi, bulut deponuzda mı yoksa genel http sunucusunda mı depolandığına bakılmaksızın. MLTable dosyasında mutlak yollarbelirtmemelisiniz.

Python SDK aracılığıyla MLTable yapıtı oluşturma: from_*

Python SDK aracılığıyla bellekte bir MLTable nesnesi oluşturmak isterseniz from_* yöntemleri kullanabilirsiniz. from_* yöntemleri verileri gerçekleştirmez, bunun yerine MLTable tanımında bir dönüştürme olarak depolar.

Örneğin, yolundan delta_table_pathdelta lake verilerini okumak üzere bellek içi MLTable yapıtı oluşturmak için from_delta_lake() kullanabilirsiniz.

import mltable as mlt
mltable = from_delta_lake(delta_table_path, timestamp_as_of="2021-01-01T00:00:00Z")
df = mltable.to_pandas_dataframe()
print(df.to_string())

MLTable Python işlevleri hakkında daha fazla ayrıntıya buradan ulaşabilirsiniz.

Python kodunuzda MLTable yapıtını pandas veri çerçevesine dönüştürebilirsiniz:

import mltable

tbl = mltable.load(uri="./my_data")
df = tbl.to_pandas_dataframe()

içindeki mltable.load() parametresi, uri geçerli bir MLTable dosyası içeren yerel veya bulut klasörünün geçerli bir yolu olmalıdır.

Not

Kitaplığın mltable Ortamınızda (pip install mltable) yüklü olması gerekir.

Aşağıda bir veri varlığının nasıl oluşturulacağı mltable gösterilmektedir. , path yukarıda özetlenen desteklenen yol biçimlerinden herhangi biri olabilir.

YAML Dosya oluşturma (<file-name>.yml):

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json

# path must point to **folder** containing MLTable artifact (MLTable file + data
# Supported paths include:
# local: ./<path>
# blob:  https://<account_name>.blob.core.windows.net/<container_name>/<path>
# ADLS gen2: abfss://<file_system>@<account_name>.dfs.core.windows.net/<path>/
# Datastore: azureml://datastores/<data_store_name>/paths/<path>

type: mltable
name: <name_of_data>
description: <description goes here>
path: <path>

Not

Yol, MLTable yapıtını içeren klasörü işaret ediyor.

Ardından CLI kullanarak veri varlığını oluşturun:

az ml data create -f <file-name>.yml

Sonraki adımlar