Megosztás a következőn keresztül:


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
  • Alacsony késés, kiszolgáló nélküli számítás
  • Állapotalapú függvények
  • Újrafelhasználható függvények
  • Csak rövid ideig futó feldolgozáshoz jó
    Data Factory + egyéni összetevő
  • Nagy léptékű párhuzamos számítástechnika
  • Alkalmas nehéz algoritmusokhoz
  • Kódfuttatást igényel egy végrehajtható fájlban
  • A függőségek és az I/O kezelésének összetettsége
  • Data Factory + Azure Databricks notebook
  • Apache Spark
  • Natív Python-környezet
  • Költséges lehet
  • A fürtök létrehozása kezdetben időt vesz igénybe, és késést okoz
  • 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.

    Az ábrán egy Azure Data Factory-folyamat látható, az Azure Function és a Run ML Pipeline, valamint egy Azure Machine Learning-folyamat betanítása modellel, valamint a nyers adatokkal és az előkészített adatokkal való interakciójukkal.

    • 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.

    Az ábra egy Azure Data Factory-folyamatot mutat be egy egyéni összetevővel és M L-folyamat futtatásával, valamint egy Azure Machine Learning-folyamat betanítása modellel, valamint a nyers adatokkal és az előkészített adatokkal való interakciójukkal.

    • Előnye:
      • Az adatok feldolgozása az Azure Batch-készletben történik, amely nagy léptékű párhuzamos és nagy teljesítményű számítástechnikát biztosít
      • Nagy teljesítményű algoritmusok futtatására és jelentős mennyiségű adat feldolgozására használható
    • 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.

    Az ábrán egy Azure Data Factory-folyamat látható, az Azure Databricks Pythonnal és az M L-folyamat futtatásával, valamint egy Azure Machine Learning-folyamattal a Train Model használatával, valamint a nyers adatokkal és az előkészített adatokkal való interakciójukkal.

    • 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 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

    1. A rendszer az adatokat egy másik tárolóhelyre menti.
    2. 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.
    3. 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.

    A diagram egy Azure Data Factory-folyamatot és egy Azure Machine Learning-folyamatot, valamint a nyers adatokkal és az előkészített adatokkal való interakciót mutatja be. A Data Factory-folyamat adatokat ad át az előkészített adatadat-adatbázisba, amely egy adattárat táplál, amely a Machine Learning-munkaterületen tárolja az adathalmazokat.

    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.

    Következő lépések