Csatlakozás az Azure-beli tárolási szolgáltatásokhoz adattárakkal

ÉRVÉNYES:Python SDK azureml v1

A KÖVETKEZŐre vonatkozik: Azure CLI ml-bővítmény 1-es verzió

Ebből a cikkből megtudhatja, hogyan csatlakozhat az Azure-beli adattárolási szolgáltatásokhoz az Azure Machine Tanulás adattárakkal és az Azure Machine Tanulás Python SDK-val.

Az adattárak biztonságosan csatlakoznak a tárolási szolgáltatáshoz az Azure-ban, és elkerülik a hitelesítési hitelesítő adatok vagy az eredeti adattár integritásának kockázatát. Az adattárak a munkaterülethez társított Key Vaultban tárolják a kapcsolati adatokat – például az előfizetés azonosítóját vagy a jogkivonat-engedélyezést. Egy adattárral biztonságosan elérheti a tárterületet, mert elkerülheti a szkriptekben a kapcsolati adatok szigorú kódolását. Létrehozhat adattárakat, amelyek ezekhez az Azure Storage-megoldásokhoz csatlakoznak.

Az adattáraknak az Azure Machine Tanulás általános adatelérési munkafolyamathoz való illeszkedéséről további információt a Biztonságos hozzáférés az adatokhoz című cikkben talál.

Ha meg szeretné tudni, hogyan csatlakozhat egy adattároló-erőforráshoz felhasználói felülettel, látogasson el a Csatlakozás az adattároláshoz a studio felhasználói felületével.

Tipp.

Ez a cikk feltételezi, hogy hitelesítő adatokon alapuló hitelesítési hitelesítő adatokkal fog csatlakozni a tárolási szolgáltatáshoz, például egy egyszerű szolgáltatásnévvel vagy egy közös hozzáférésű jogosultságkóddal (SAS- jogkivonattal). Vegye figyelembe, hogy ha a hitelesítő adatok regisztrálva vannak az adattárakban, a munkaterület-olvasó szerepkörrel rendelkező összes felhasználó lekérheti ezeket a hitelesítő adatokat. További információ: Szerepkörök kezelése a munkaterületen.

Az identitásalapú adathozzáférésről további információt az identitásalapú adathozzáférés társzolgáltatásokhoz (v1) című témakörben talál.

Előfeltételek

  • Azure-előfizetés. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot. Próbálja ki az Azure Machine Tanulás ingyenes vagy fizetős verzióját

  • Azure Storage-fiók támogatott tárolási típussal

  • Az Azure Machine Tanulás Pythonhoz készült SDK

  • Egy Azure Machine Learning-munkaterület.

    Azure Machine-Tanulás-munkaterület létrehozása vagy meglévő munkaterület használata a Python SDK-val

    Importálja az osztályt és Datastore az Workspace osztályt, és töltse be az előfizetés adatait a config.json fájlból a from_config() függvény használatával. Alapértelmezés szerint a függvény az aktuális könyvtárban keresi a JSON-fájlt, de megadhat egy elérési útparamétert is, amely a következővel from_config(path="your/file/path")mutat a fájlra:

    import azureml.core
    from azureml.core import Workspace, Datastore
    
    ws = Workspace.from_config()
    

    A munkaterület létrehozása automatikusan regisztrál egy Azure-blobtárolót és egy Azure-fájlmegosztást adattárként a munkaterületen. Elnevezték workspaceblobstore őket, és workspacefilestoremás néven. A workspaceblobstore munkaterület-összetevőket és a gépi tanulási kísérletnaplókat tárolja. Ez az alapértelmezett adattár , és nem törölhető a munkaterületről. A workspacefilestore számítási példányon keresztül engedélyezett jegyzetfüzeteket és R-szkripteket tárolja.

    Feljegyzés

    Az Azure Machine Tanulás tervező automatikusan létrehoz egy azureml_globaldatasets nevű adattárat, amikor megnyit egy mintát a tervező kezdőlapjában. Ez az adattár csak mintaadatkészleteket tartalmaz. Ne használja ezt az adattárat bizalmas adathozzáféréshez.

Támogatott adattárolási szolgáltatástípusok

Az adattárak jelenleg támogatják a kapcsolati adatok tárolását az ebben a mátrixban felsorolt tárolási szolgáltatásokhoz:

Tipp.

A nem támogatott (az alábbi táblázatban nem szereplő) tárolási megoldások esetében problémák léphetnek fel az adatok csatlakoztatása és használata során. Javasoljuk, hogy helyezze át az adatokat egy támogatott Azure Storage-megoldásba. Ez további forgatókönyvekben is segíthet, például az adatkimeneti költségek csökkentése az ML-kísérletek során.

Tárolási típus Hitelesítés típusa Azure Machine Learning Studio Azure Machine Learning Python SDK Azure Machine Learning CLI Azure Machine Tanulás REST API VS Code
Azure Blob Storage Fiókkulcs
SAS-jogkivonat
Azure-fájlmegosztás Fiókkulcs
SAS-jogkivonat
1. generációs Azure Data Lake Storage Szolgáltatásnév
Azure Data Lake Storage Gen2 Szolgáltatásnév
Azure SQL Database SQL-hitelesítés
Szolgáltatásnév
Azure PostgreSQL SQL-hitelesítés
Azure Database for MySQL SQL-hitelesítés ✓* ✓* ✓*
Databricks fájlrendszer Nincs hitelesítés ✓** ✓** ✓**

Storage – útmutató

Javasoljuk, hogy létrehozzon egy adattárat egy Azure Blob-tárolóhoz. A standard és a prémium szintű tároló is elérhető a blobokhoz. Bár a prémium szintű tárolás drágább, a gyorsabb átviteli sebesség javíthatja a betanítási futtatások sebességét, különösen akkor, ha nagy adatkészleten tanít be. A tárfiókok költségeiről az Azure díjkalkulátorában tájékozódhat.

Az Azure Data Lake Storage Gen2 az Azure Blob Storage-ra épül. Nagyvállalati big data-elemzésekhez tervezték. A Data Lake Storage Gen2 részeként a Blob Storage hierarchikus névteret tartalmaz. A hierarchikus névtér az objektumokat/fájlokat címtárak hierarchiájába rendezi a hatékony adathozzáférés érdekében.

Tárhozzáférés és engedélyek

Ahhoz, hogy biztonságosan csatlakozzon az Azure Storage-szolgáltatáshoz, az Azure Machine Tanulás engedélyre van szüksége a megfelelő adattároló eléréséhez. Ez a hozzáférés az adattár regisztrálásához használt hitelesítési hitelesítő adatoktól függ.

Feljegyzés

Ez az útmutató az identitásalapú adathozzáféréssel létrehozott adattárakra is vonatkozik.

Virtuális hálózat

Ha tűzfal mögött vagy virtuális hálózaton belül található tárfiókkal szeretne kommunikálni, az Azure Machine Tanulás további konfigurációs lépéseket igényel. Tűzfal mögött található tárfiók esetén hozzáadhatja az ügyfél IP-címét egy engedélyezési listához az Azure Portalon.

Az Azure Machine Tanulás fogadhatnak kéréseket a virtuális hálózaton kívüli ügyfelektől. Annak biztosítása érdekében, hogy a szolgáltatástól adatokat kérő entitás biztonságos legyen, és hogy lehetővé tegye az adatok megjelenítését a munkaterületen, használjon privát végpontot a munkaterülettel.

Python SDK-felhasználók számára: Ha a betanítási szkripttel szeretné elérni az adatokat egy számítási célon, a számítási célnak ugyanabban a virtuális hálózaton és a tároló alhálózatán belül kell lennie. Egy számítási példányt/fürtöt ugyanabban a virtuális hálózaton használhat.

Az Azure Machine Tanulás studio felhasználói számára: Számos funkció arra támaszkodik, hogy adatokat olvasson be egy adathalmazból – például az adathalmaz előnézeteit, a profilokat és az automatizált gépi tanulást. Ahhoz, hogy ezek a funkciók a virtuális hálózatok mögötti tárolóval működjenek, használjon egy munkaterület által felügyelt identitást a studióban, hogy az Azure Machine Tanulás hozzáférjen a tárfiókhoz a virtuális hálózaton kívülről.

Feljegyzés

A virtuális hálózat mögötti Azure SQL Database-ben tárolt adatok esetében állítsa a Nyilvános hozzáférés megtagadása nem értékre az Azure Portalon, hogy az Azure Machine Tanulás hozzáférjenek a tárfiókhoz.

Hozzáférés-ellenőrzés

Figyelmeztetés

A tárfiókokhoz való bérlőközi hozzáférés nem támogatott. Ha a forgatókönyv bérlők közötti hozzáférésre van szüksége, forduljon az Azure Machine Tanulás Adattámogatási csapat aliasához amldatasupport@microsoft.com egy egyéni kódmegoldással kapcsolatos segítségért.

A kezdeti adattár-létrehozási és -regisztrációs folyamat részeként az Azure Machine Tanulás automatikusan ellenőrzi, hogy létezik-e a mögöttes tárolási szolgáltatás, és hogy a felhasználó által megadott rendszernév (felhasználónév, szolgáltatásnév vagy SAS-jogkivonat) hozzáfér-e a megadott tárterülethez.

Az adattár létrehozása után ez az ellenőrzés csak olyan metódusok esetében történik, amelyek hozzáférést igényelnek a mögöttes tárolóhoz, és nem minden alkalommal, amikor az adattár-objektumokat lekérik. Az érvényesítés például akkor történik, ha fájlokat szeretne letölteni az adattárból. Ha azonban csak az alapértelmezett adattárat szeretné módosítani, az ellenőrzés nem történik meg.

A mögöttes tárolási szolgáltatáshoz való hozzáférés hitelesítéséhez megadhatja a fiókkulcsot, a közös hozzáférésű jogosultságkódokat (SAS)-jogkivonatokat vagy a szolgáltatásnevet a létrehozni kívánt adattártípus megfelelő register_azure_*() metódusában. A tárolási típus mátrixa felsorolja az egyes adattártípusoknak megfelelő támogatott hitelesítési típusokat.

A fiókkulcs, az SAS-jogkivonat és a szolgáltatásnév adatai az Azure Portalon találhatók.

  • Ha fiókkulcsot vagy SAS-jogkivonatot szeretne használni a hitelesítéshez, válassza a bal oldali panelen a Tárfiókok lehetőséget, és válassza ki a regisztrálni kívánt tárfiókot

    • Az Áttekintés oldal a fiók nevét, a fájlmegosztás nevét, a tárolót stb.
      • Fiókkulcsok esetén nyissa meg az Access-kulcsokat a Gépház panelen
      • SAS-jogkivonatok esetén nyissa meg a megosztott hozzáférésű jogosultságkódokat a Gépház panelen
  • Ha szolgáltatásnevet szeretne használni a hitelesítéshez, lépjen a Alkalmazásregisztrációk, és válassza ki a használni kívánt alkalmazást

    • A kiválasztott alkalmazás megfelelő Áttekintés lapja kötelező információkat tartalmaz– például bérlőazonosítót és ügyfélazonosítót

Fontos

Ha módosítani szeretné egy Azure Storage-fiók (fiókkulcs vagy SAS-jogkivonat) hozzáférési kulcsait, szinkronizálja az új hitelesítő adatokat a munkaterületével és a hozzá csatlakoztatott adattárakkal. További információkért látogasson el a frissített hitelesítő adatok szinkronizálására.

Engedélyek

Az Azure Blob-tároló és az Azure Data Lake Gen 2 Storage esetében győződjön meg arról, hogy a hitelesítési hitelesítő adatok rendelkeznek Storage Blob Data Reader-hozzáféréssel . További információ: Storage Blob Data Reader. A fiók SAS-jogkivonata alapértelmezés szerint nem rendelkezik engedélyekkel.

  • Az adatolvasási hozzáféréshez a hitelesítési hitelesítő adatoknak legalább lista- és olvasási engedélyekkel kell rendelkezniük a tárolókhoz és objektumokhoz

  • Az adatírási hozzáférés írási és hozzáadási engedélyeket is igényel

Adattárak létrehozása és regisztrálása

Az Azure Storage-megoldások adattárként való regisztrálása automatikusan létrehozza és regisztrálja az adattárat egy adott munkaterületen. Tekintse át a jelen dokumentumban található tárhozzáférés > engedélyeket a virtuális hálózati forgatókönyvekkel kapcsolatos útmutatásért, valamint a szükséges hitelesítési hitelesítő adatok megkereséséhez.

Ez a szakasz példákat kínál arra, hogyan hozhat létre és regisztrálhat adattárat a Python SDK-val ezekhez a tárolótípusokhoz. Az alábbi példákban szereplő paraméterek az adattárak létrehozásához és regisztrálásához szükséges paraméterek :

Ha más támogatott tárolási szolgáltatásokhoz szeretne adattárakat létrehozni, tekintse meg az alkalmazandó register_azure_* módszerek referenciadokumentációját.

Ha meg szeretné tudni, hogyan csatlakozhat egy adattárolási erőforráshoz felhasználói felülettel, látogasson el Csatlakozás adatokhoz az Azure Machine Tanulás Studióval.

Fontos

Ha megszüntet egy azonos nevű adattár regisztrációját és újraregisztrációját, és az újraregisztráció meghiúsul, előfordulhat, hogy a munkaterület Azure Key Vaultja nem engedélyezi a helyreállítható törlést. Alapértelmezés szerint a helyreállítható törlés engedélyezve van a munkaterület által létrehozott Kulcstartó-példányhoz, de lehet, hogy nem lesz engedélyezve, ha meglévő kulcstartót használt, vagy 2020 októbere előtt létrehozott munkaterületet. A helyreállítható törlés engedélyezésének módját ismertető információkért tekintse meg a helyreállítható törlés bekapcsolása meglévő kulcstartók esetében című témakört.

Feljegyzés

Az adattárnevek csak kisbetűket, számjegyeket és aláhúzásjeleket tartalmazhatnak.

Azure-blobtároló

Az Azure Blob-tárolók adattárként való regisztrálásához használja a metódust register_azure_blob_container() .

Ez a kódminta létrehozza és regisztrálja az blob_datastore_name adattárat a ws munkaterületen. Az adattár a megadott fiókhozzáférési kulcsot használja a my-container-name tárfiók blobtárolójának my-account-name eléréséhez. A virtuális hálózati forgatókönyvekkel és a szükséges hitelesítési hitelesítő adatokkal kapcsolatos útmutatásért tekintse át a tárhozzáférés > engedélyekkel foglalkozó szakaszát.

blob_datastore_name='azblobsdk' # Name of the datastore to workspace
container_name=os.getenv("BLOB_CONTAINER", "<my-container-name>") # Name of Azure blob container
account_name=os.getenv("BLOB_ACCOUNTNAME", "<my-account-name>") # Storage account name
account_key=os.getenv("BLOB_ACCOUNT_KEY", "<my-account-key>") # Storage account access key

blob_datastore = Datastore.register_azure_blob_container(workspace=ws, 
                                                         datastore_name=blob_datastore_name, 
                                                         container_name=container_name, 
                                                         account_name=account_name,
                                                         account_key=account_key)

Azure-fájlmegosztás

Az Azure-fájlmegosztások adattárként való regisztrálásához használja a register_azure_file_share() módszert.

Ez a kódminta létrehozza és regisztrálja az file_datastore_name adattárat a ws munkaterületen. Az adattár a my-fileshare-name tárfiókon található my-account-name fájlmegosztást használja a megadott hozzáférési kulccsal. A virtuális hálózati forgatókönyvekkel és a szükséges hitelesítési hitelesítő adatokkal kapcsolatos útmutatásért tekintse át a tárhozzáférés > engedélyekkel foglalkozó szakaszát.

file_datastore_name='azfilesharesdk' # Name of the datastore to workspace
file_share_name=os.getenv("FILE_SHARE_CONTAINER", "<my-fileshare-name>") # Name of Azure file share container
account_name=os.getenv("FILE_SHARE_ACCOUNTNAME", "<my-account-name>") # Storage account name
account_key=os.getenv("FILE_SHARE_ACCOUNT_KEY", "<my-account-key>") # Storage account access key

file_datastore = Datastore.register_azure_file_share(workspace=ws,
                                                     datastore_name=file_datastore_name, 
                                                     file_share_name=file_share_name, 
                                                     account_name=account_name,
                                                     account_key=account_key)

2. generációs Azure Data Lake Storage

Egy 2. generációs Azure Data Lake Storage -adattár (ADLS Gen 2) esetében aregister_azure_data_lake_gen2() metódussal regisztráljon egy Azure Data Lake Gen 2-tárolóhoz csatlakoztatott hitelesítőadat-tárolót szolgáltatásnév-engedélyekkel.

A szolgáltatásnév használatához regisztrálnia kell az alkalmazást, és azure-beli szerepköralapú hozzáférés-vezérléssel (Azure RBAC) vagy hozzáférés-vezérlési listákkal (ACL) kell hozzáférést biztosítania a szolgáltatásnévhez. További információkért tekintse meg az ADLS Gen 2-hez beállított hozzáférés-vezérlést.

Ez a kód létrehozza és regisztrálja az adlsgen2_datastore_name adattárat a ws munkaterületen. Ez az adattár a megadott szolgáltatásnév hitelesítő adatainak használatával fér hozzá a account_name tárfiók fájlrendszeréheztest. Tekintse át a tárhozzáférés > engedélyekkel foglalkozó szakaszát a virtuális hálózati forgatókönyvekkel kapcsolatos útmutatásért, valamint a szükséges hitelesítési hitelesítő adatok megkereséséhez.

adlsgen2_datastore_name = 'adlsgen2datastore'

subscription_id=os.getenv("ADL_SUBSCRIPTION", "<my_subscription_id>") # subscription id of ADLS account
resource_group=os.getenv("ADL_RESOURCE_GROUP", "<my_resource_group>") # resource group of ADLS account

account_name=os.getenv("ADLSGEN2_ACCOUNTNAME", "<my_account_name>") # ADLS Gen2 account name
tenant_id=os.getenv("ADLSGEN2_TENANT", "<my_tenant_id>") # tenant id of service principal
client_id=os.getenv("ADLSGEN2_CLIENTID", "<my_client_id>") # client id of service principal
client_secret=os.getenv("ADLSGEN2_CLIENT_SECRET", "<my_client_secret>") # 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='test', # ADLS Gen2 filesystem
                                                             tenant_id=tenant_id, # tenant id of service principal
                                                             client_id=client_id, # client id of service principal
                                                             client_secret=client_secret) # the secret of service principal

Adattárak létrehozása más Azure-eszközökkel

A Python SDK-val és a stúdióval végzett adattár-létrehozás mellett adattárakat is létrehozhat Azure Resource Manager-sablonokkal vagy az Azure Machine Tanulás VS Code-bővítményével.

Azure Resource Manager

Több sablont https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices is használhat az adattárak létrehozásához. Ezekről a sablonokról az Azure Resource Manager-sablon használatával hozhat létre munkaterületet az Azure Machine Tanulás.

VS Code-bővítmény

Az adattárak Azure Machine Tanulás VS Code-bővítménysel való létrehozásáról és felügyeletéről a VS Code erőforrás-kezelési útmutatójában talál további információt.

Adatok használata az adattárakban

Az adattár létrehozása után hozzon létre egy Azure Machine-Tanulás adatkészletet az adatok kezeléséhez. Az adathalmazok egy lazán kiértékelt hasznosítható objektumba csomagolják az adatokat gépi tanulási feladatokhoz, például a betanításhoz. Adathalmazokkal bármilyen formátumú fájlokat tölthet le vagy csatlakoztathat az Azure Storage-szolgáltatásokból a számítási cél modellbetanításához. További információ az ml-modellek adatkészletekkel való betanítása érdekében.

Adattárak lekérése a munkaterületről

Ha egy adott adattárat szeretne regisztrálni az aktuális munkaterületen, használja az get() osztály statikus metódusát Datastore :

# Get a named datastore from the current workspace
datastore = Datastore.get(ws, datastore_name='your datastore name')

Az adott munkaterületen regisztrált adattárak listájának lekéréséhez használja a datastores munkaterület objektumának tulajdonságát:

# List all datastores registered in the current workspace
datastores = ws.datastores
for name, datastore in datastores.items():
    print(name, datastore.datastore_type)

Ez a kódminta bemutatja, hogyan szerezheti be a munkaterület alapértelmezett adattárát:

datastore = ws.get_default_datastore()

Ezzel a kódmintával az alapértelmezett adattárat is módosíthatja. Ezt a képességet csak az SDK támogatja:

 ws.set_default_datastore(new_default_datastore)

Adatok elérése a pontozás során

Az Azure Machine Tanulás számos módszert kínál a modellek pontozásra való használatára. Ezen módszerek némelyike nem biztosít hozzáférést az adattárakhoz. Az alábbi táblázat azt ismerteti, hogy mely módszerek teszik lehetővé az adattárak elérését a pontozás során:

Metódus Adattár-hozzáférés Leírás
Batch-előrejelzés Nagy mennyiségű adatra vonatkozó előrejelzések készítése aszinkron módon.
Webszolgáltatás   Modellek üzembe helyezése webszolgáltatásként.

Ha az SDK nem biztosít hozzáférést az adattárakhoz, előfordulhat, hogy létrehozhat egyéni kódot a megfelelő Azure SDK-val az adatok eléréséhez. Az Azure Storage SDK for Python ügyfélkódtár például hozzáférhet a blobokban vagy fájlokban tárolt adatokhoz.

Adatok áthelyezése támogatott Azure Storage-megoldásokba

Az Azure Machine Tanulás támogatja az adatok elérését

  • Azure Blob Storage
  • Azure Files
  • 1. generációs Azure Data Lake Storage
  • 2. generációs Azure Data Lake Storage
  • Azure SQL Database
  • Azure Database for PostgreSQL

Ha nem támogatott tárterületet használ, javasoljuk, hogy az Azure Data Factoryt használja , és ezeket a lépéseket követve helyezze át az adatokat a támogatott Azure Storage-megoldásokba. Az adatok támogatott tárolóba való áthelyezése segíthet az adatforgalom költségeinek mentésében a gépi tanulási kísérletek során.

Az Azure Data Factory hatékony és rugalmas adatátvitelt biztosít, több mint 80 előre összeállított összekötővel, extra költség nélkül. Ezek az összekötők közé tartoznak az Azure-beli adatszolgáltatások, a helyszíni adatforrások, az Amazon S3 és a Redshift, valamint a Google BigQuery.

Következő lépések