Adatbetöltés az Azure Data Factoryvel
Ebben a cikkben megismerheti az adatbetöltési folyamat Azure Data Factoryvel való létrehozásának rendelkezésre álló lehetőségeit. Ez az Azure Data Factory-folyamat az Azure Machine Learninghez való adatbetöltésre szolgál. A Data Factory lehetővé teszi az (ETL-) adatok egyszerű kinyerét, átalakítását és betöltését. Az adatok átalakítása és a tárolóba való betöltése után a gépi tanulási modellek betanítása az Azure Machine Learningben.
Az egyszerű adatátalakítás natív Data Factory-tevékenységekkel és olyan eszközökkel kezelhető, mint az adatfolyam. Ha bonyolultabb forgatókönyvekről van szó, az adatok néhány egyéni kóddal is feldolgozhatók. Például Python- vagy R-kód.
Az Azure Data Factory adatbetöltési folyamatainak összehasonlítása
A Data Factory használatának számos gyakori módszere van az adatok betöltés közbeni átalakítására. Minden technika rendelkezik olyan előnyökkel és hátrányokkal, amelyek segítenek meghatározni, hogy megfelelő-e egy adott használati esethez:
Módszer | Előnyök | Hátrányok |
---|---|---|
Data Factory + Azure Functions | Csak rövid ideig futó feldolgozáshoz jó | |
Data Factory + egyéni összetevő | ||
Data Factory + Azure Databricks notebook |
Azure Data Factory Azure-függvényekkel
Az Azure Functions lehetővé teszi, hogy kis kódrészleteket (függvényeket) futtasson anélkül, hogy aggódnia kellene az alkalmazás infrastruktúrája miatt. Ebben a beállításban az adatok feldolgozása egyéni Python-kóddal történik, amely egy Azure-függvénybe van csomagolva.
A függvény meghívása az Azure Data Factory Azure-függvénytevékenységével történik. Ez a megközelítés jó választás az egyszerűsített adatátalakításokhoz.
- Előnye:
- Az adatok feldolgozása kiszolgáló nélküli számításon történik viszonylag alacsony késéssel
- A Data Factory-folyamat meghívhat egy tartós Azure-függvényt , amely kifinomult adatátalakítási folyamatot valósíthat meg
- Az adatátalakítás részleteit az Azure-függvény absztrakcióval végzi el, amely más helyekről újra felhasználható és meghívható
- Hátrányai:
- Az Azure Functionst az ADF-hez való használat előtt létre kell hozni
- Az Azure Functions csak rövid ideig futó adatfeldolgozáshoz használható
Azure Data Factory egyéni összetevő-tevékenységgel
Ebben a beállításban az adatok egy végrehajtható fájlba csomagolt egyéni Python-kóddal lesznek feldolgozva. A rendszer egy Azure Data Factory egyéni összetevő-tevékenységgel hívja meg. Ez a megközelítés jobban illik a nagy méretű adatokhoz, mint az előző technika.
- Előnye:
- Hátrányai:
- Az Azure Batch-készletet a Data Factory használata előtt létre kell hozni
- A Python-kód végrehajthatóvá alakításával kapcsolatos mérnöki feladatok. Függőségek és bemeneti/kimeneti paraméterek kezelésének összetettsége
Azure Data Factory az Azure Databricks Python-jegyzetfüzettel
Az Azure Databricks egy Apache Spark-alapú elemzési platform a Microsoft-felhőben.
Ebben a technikában az adatátalakítást egy Azure Databricks-fürtön futó Python-jegyzetfüzet hajtja végre. Valószínűleg ez a leggyakoribb megközelítés, amely az Azure Databricks szolgáltatás teljes erejét használja. Nagy léptékű elosztott adatfeldolgozásra tervezték.
- Előnye:
- Az adatok a leghatékonyabb adatfeldolgozási Azure-szolgáltatáson alakulnak át, amelyet az Apache Spark-környezet készít biztonsági másolatot
- A Python natív támogatása adatelemzési keretrendszerekkel és kódtárakkal, köztük a TensorFlow-tal, a PyTorch-tal és a scikit-learn-lel
- A Python-kódot nem kell függvényekbe vagy végrehajtható modulokba burkolni. A kód a következőképpen működik.
- Hátrányai:
- A Data Factory használata előtt létre kell hozni az Azure Databricks-infrastruktúrát
- Az Azure Databricks konfigurációjától függően költséges lehet
- A számítási fürtök "hideg" módból történő felpörgetése egy ideig tart, ami nagy késést okoz a megoldásnak
Adatok felhasználása az Azure Machine Learningben
A Data Factory-folyamat menti az előkészített adatokat a felhőbeli tárolóba (például az Azure Blobba vagy az Azure Data Lake-be).
Az előkészített adatok felhasználása az Azure Machine Learningben a következő módon:
- Azure Machine Learning-folyamat meghívása a Data Factory-folyamatból.
VAGY - Azure Machine Learning-adattár létrehozása.
Azure Machine Learning-folyamat meghívása a Data Factoryből
Ez a módszer a Machine Learning Operations (MLOps) munkafolyamatokhoz ajánlott. Ha nem szeretne Azure Machine Learning-folyamatot beállítani, olvassa el közvetlenül a tárolóból származó adatok olvasása című témakört.
A Data Factory-folyamat minden futtatásakor
- A rendszer az adatokat egy másik tárolóhelyre menti.
- Ha át szeretné adni a helyet az Azure Machine Learningnek, a Data Factory-folyamat meghív egy Azure Machine Learning-folyamatot. Amikor a Data Factory-folyamat meghívja az Azure Machine Learning-folyamatot, a rendszer paraméterekként küldi el az adathelyet és a feladatazonosítót.
- Az ML-folyamat ezután létrehozhat egy Azure Machine Learning-adattárat és adatkészletet az adathellyel. További információ az Azure Machine Learning-folyamatok Data Factoryben való végrehajtásáról.
Tipp.
Az adathalmazok támogatják a verziószámozást, így az ML-folyamat regisztrálhatja az adathalmaz új verzióját, amely az ADF-folyamat legfrissebb adataira mutat.
Miután az adatok elérhetők egy adattáron vagy adatkészleten keresztül, használhatja egy ML-modell betanítása gombra. A betanítási folyamat ugyanannak az ML-folyamatnak a része lehet, amelyet az ADF-ből hívunk meg. Vagy ez lehet egy külön folyamat, például egy Jupyter-jegyzetfüzetben végzett kísérletezés.
Mivel az adathalmazok támogatják a verziószámozást, és a folyamat minden feladata létrehoz egy új verziót, könnyen érthető, hogy az adatok melyik verzióját használták a modell betanításához.
Adatok olvasása közvetlenül a tárolóból
Ha nem szeretne ml-folyamatot létrehozni, közvetlenül abból a tárfiókból érheti el az adatokat, ahol az előkészített adatok egy Azure Machine Learning-adattárral és adatkészlettel vannak mentve.
Az alábbi Python-kód bemutatja, hogyan hozhat létre olyan adattárat, amely az Azure DataLake 2. generációs tárolóhoz csatlakozik. További információ az adattárakról és a szolgáltatásnév engedélyeinek megkereséséről.
A KÖVETKEZŐKRE VONATKOZIK: Python SDK azureml v1
ws = Workspace.from_config()
adlsgen2_datastore_name = '<ADLS gen2 storage account alias>' #set ADLS Gen2 storage account alias in Azure Machine Learning
subscription_id=os.getenv("ADL_SUBSCRIPTION", "<ADLS account subscription ID>") # subscription id of ADLS account
resource_group=os.getenv("ADL_RESOURCE_GROUP", "<ADLS account resource group>") # resource group of ADLS account
account_name=os.getenv("ADLSGEN2_ACCOUNTNAME", "<ADLS account name>") # ADLS Gen2 account name
tenant_id=os.getenv("ADLSGEN2_TENANT", "<tenant id of service principal>") # tenant id of service principal
client_id=os.getenv("ADLSGEN2_CLIENTID", "<client id of service principal>") # client id of service principal
client_secret=os.getenv("ADLSGEN2_CLIENT_SECRET", "<secret of service principal>") # the secret of service principal
adlsgen2_datastore = Datastore.register_azure_data_lake_gen2(
workspace=ws,
datastore_name=adlsgen2_datastore_name,
account_name=account_name, # ADLS Gen2 account name
filesystem='<filesystem name>', # ADLS Gen2 filesystem
tenant_id=tenant_id, # tenant id of service principal
client_id=client_id, # client id of service principal
Ezután hozzon létre egy adatkészletet, amely a gépi tanulási feladatban használni kívánt fájlokra hivatkozik.
Az alábbi kód létrehoz egy TabularDatasetet egy csv-fájlból. prepared-data.csv
További információ az adathalmaztípusokról és az elfogadott fájlformátumokról.
A KÖVETKEZŐKRE VONATKOZIK: Python SDK azureml v1
from azureml.core import Workspace, Datastore, Dataset
from azureml.core.experiment import Experiment
from azureml.train.automl import AutoMLConfig
# retrieve data via Azure Machine Learning datastore
datastore = Datastore.get(ws, adlsgen2_datastore)
datastore_path = [(datastore, '/data/prepared-data.csv')]
prepared_dataset = Dataset.Tabular.from_delimited_files(path=datastore_path)
Innen prepared_dataset
az előkészített adatokra hivatkozhat, például a betanítási szkriptekben. Megtudhatja, hogyan taníthat be modelleket adathalmazokkal az Azure Machine Learningben.