Verbinding maken voor opslagservices in Azure met gegevensarchieven

VAN TOEPASSING OP: Python SDK azureml v1

VAN TOEPASSING OP:Azure CLI ml-extensie v1

In dit artikel leert u hoe u verbinding maakt met gegevensopslagservices in Azure met Azure Machine Learning-gegevensarchieven en de Azure Machine Learning Python SDK.

Gegevensarchieven maken veilig verbinding met uw opslagservice in Azure en ze voorkomen risico's voor uw verificatiereferenties of de integriteit van uw oorspronkelijke gegevensarchief. In een gegevensarchief worden verbindingsgegevens opgeslagen, bijvoorbeeld uw abonnements-id of tokenautorisatie, in de Sleutelkluis die is gekoppeld aan de werkruimte. Met een gegevensarchief hebt u veilig toegang tot uw opslag, omdat u hardcoderingsverbindingsgegevens in uw scripts kunt voorkomen. U kunt gegevensarchieven maken die verbinding maken met deze Azure-opslagoplossingen.

Voor informatie over hoe gegevensarchieven passen bij de algemene werkstroom voor gegevenstoegang van Azure Machine Learning, gaat u naar het artikel Over veilige toegang tot gegevens .

Als u wilt weten hoe u verbinding maakt met een gegevensopslagresource met een gebruikersinterface, gaat u naar Verbinding maken naar gegevensopslag met de gebruikersinterface van studio.

Tip

In dit artikel wordt ervan uitgegaan dat u verbinding maakt met uw opslagservice met verificatiereferenties op basis van referenties, bijvoorbeeld een service-principal of een SAS-token (Shared Access Signature). Als referenties zijn geregistreerd bij gegevensarchieven, kunnen alle gebruikers met de rol Lezer van de werkruimte deze referenties ophalen. Ga naar Rollen beheren in uw werkruimte voor meer informatie.

Ga voor meer informatie over op identiteit gebaseerde gegevenstoegang naar op identiteit gebaseerde gegevenstoegang tot opslagservices (v1).

Vereisten

  • Een Azure-abonnement. Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint. Probeer de gratis of betaalde versie van Azure Machine Learning

  • Een Azure-opslagaccount met een ondersteund opslagtype

  • De Azure Machine Learning SDK voor Python

  • Een Azure Machine Learning-werkruimte.

    Een Azure Machine Learning-werkruimte maken of een bestaande werkruimte gebruiken via de Python SDK

    Importeer de Workspace en Datastore klasse en laad uw abonnementsgegevens uit het config.json bestand met de from_config() functie. De functie zoekt standaard naar het JSON-bestand in de huidige map, maar u kunt ook een padparameter opgeven om naar het bestand te verwijzen met from_config(path="your/file/path"):

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

    Het maken van een werkruimte registreert automatisch een Azure Blob-container en een Azure-bestandsshare, als gegevensopslag, naar de werkruimte. Ze hebben een naam workspaceblobstore en workspacefilestorerespectievelijk. De workspaceblobstore werkruimteartefacten en uw machine learning-experimentlogboeken worden opgeslagen. Het fungeert als het standaardgegevensarchief en kan niet worden verwijderd uit de werkruimte. De workspacefilestore notebooks en R-scripts die zijn geautoriseerd via het rekenproces worden opgeslagen.

    Notitie

    Azure Machine Learning Designer maakt automatisch een gegevensarchief met de naam azureml_globaldatasets wanneer u een voorbeeld opent op de startpagina van de ontwerpfunctie. Dit gegevensarchief bevat alleen voorbeeldgegevenssets. Gebruik dit gegevensarchief niet voor vertrouwelijke gegevenstoegang.

Ondersteunde servicetypen voor gegevensopslag

Gegevensarchieven ondersteunen momenteel de opslag van verbindingsgegevens met de opslagservices die worden vermeld in deze matrix:

Tip

Voor niet-ondersteunde opslagoplossingen (die niet worden vermeld in de volgende tabel), kunnen er problemen optreden wanneer u verbinding maakt en met uw gegevens werkt. We raden u aan uw gegevens te verplaatsen naar een ondersteunde Azure-opslagoplossing. Dit kan ook helpen bij aanvullende scenario's, bijvoorbeeld het verminderen van de kosten voor uitgaand gegevens tijdens ML-experimenten.

Opslagtype Authentication type Azure Machine Learning Studio Python SDK voor Azure Machine Learning Azure Machine Learning CLI Azure Machine Learning REST API VS Code
Azure Blob-opslag Accountsleutel
SAS-token
Azure-bestandsshare Accountsleutel
SAS-token
Azure Data Lake Storage Gen 1 Service-principal
Azure Data Lake Storage Gen 2 Service-principal
Azure SQL-database SQL-verificatie
Service-principal
Azure PostgreSQL SQL-verificatie
Azure Database for MySQL SQL-verificatie ✓* ✓* ✓*
Databricks-bestandssysteem Geen verificatie ✓** ✓** ✓**

Richtlijnen voor Azure Storage

U wordt aangeraden een gegevensarchief te maken voor een Azure Blob-container. Zowel Standard- als Premium-opslag zijn beschikbaar voor blobs. Hoewel Premium Storage duurder is, kunnen de snellere doorvoersnelheden de snelheid van uw trainingsuitvoeringen verbeteren, vooral als u traint op basis van een grote gegevensset. Ga naar de Azure-prijscalculator voor informatie over de kosten van opslagaccounts.

Azure Data Lake Storage Gen2 is gebouwd op Basis van Azure Blob Storage. Het is ontworpen voor big data-analyses voor ondernemingen. Als onderdeel van Data Lake Storage Gen2 beschikt Blob Storage over een hiërarchische naamruimte. Met de hiërarchische naamruimte worden objecten/bestanden georganiseerd in een hiërarchie met mappen voor efficiënte toegang tot de gegevens.

Toegang en machtigingen voor opslag

Om ervoor te zorgen dat u veilig verbinding maakt met uw Azure Storage-service, moet u voor Azure Machine Learning gemachtigd zijn om toegang te krijgen tot de bijbehorende container voor gegevensopslag. Deze toegang is afhankelijk van de verificatiereferenties die worden gebruikt om het gegevensarchief te registreren.

Notitie

Deze richtlijnen zijn ook van toepassing op gegevensarchieven die zijn gemaakt met op identiteit gebaseerde gegevenstoegang.

Virtueel netwerk

Voor communicatie met een opslagaccount dat zich achter een firewall of binnen een virtueel netwerk bevindt, vereist Azure Machine Learning extra configuratiestappen. Voor een opslagaccount dat zich achter een firewall bevindt, kunt u het IP-adres van uw client toevoegen aan een acceptatielijst met Azure Portal.

Azure Machine Learning kan aanvragen ontvangen van clients buiten het virtuele netwerk. Gebruik een privé-eindpunt met uw werkruimte om ervoor te zorgen dat de entiteit die gegevens van de service aanvraagt, veilig is en om weergave van gegevens in uw werkruimte in te schakelen.

Voor Python SDK-gebruikers: Als u toegang wilt krijgen tot uw gegevens op een rekendoel met uw trainingsscript, moet u het rekendoel vinden in hetzelfde virtuele netwerk en subnet van de opslag. U kunt een rekenproces/cluster in hetzelfde virtuele netwerk gebruiken.

Voor Azure Machine Learning-studio gebruikers: verschillende functies zijn afhankelijk van de mogelijkheid om gegevens uit een gegevensset te lezen, bijvoorbeeld voorbeelden van gegevenssets, profielen en geautomatiseerde machine learning. Als u met deze functies wilt werken met opslag achter virtuele netwerken, gebruikt u een door een werkruimte beheerde identiteit in de studio om Azure Machine Learning toegang te geven tot het opslagaccount van buiten het virtuele netwerk.

Notitie

Voor gegevens die zijn opgeslagen in een Azure SQL Database achter een virtueel netwerk, stelt u Openbare toegang weigeren in op Nee met azure Portal, zodat Azure Machine Learning toegang heeft tot het opslagaccount.

Toegangsvalidatie

Waarschuwing

Toegang tussen tenants tot opslagaccounts wordt niet ondersteund. Als uw scenario toegang tot meerdere tenants nodig heeft, neemt u contact op met de alias van het Azure Machine Learning Data Support-team op amldatasupport@microsoft.com voor hulp bij een aangepaste codeoplossing.

Als onderdeel van het eerste proces voor het maken en registreren van gegevensarchieven valideert Azure Machine Learning automatisch of de onderliggende opslagservice bestaat en of de door de gebruiker geleverde principal (gebruikersnaam, service-principal of SAS-token) toegang heeft tot de opgegeven opslag.

Nadat het gegevensarchief is gemaakt, wordt deze validatie alleen uitgevoerd voor methoden waarvoor toegang tot de onderliggende opslagcontainer is vereist, niet telkens wanneer gegevensopslagobjecten worden opgehaald. Validatie vindt bijvoorbeeld plaats als u bestanden uit uw gegevensarchief wilt downloaden. Als u echter alleen uw standaardgegevensarchief wilt wijzigen, gebeurt de validatie niet.

Als u uw toegang tot de onderliggende opslagservice wilt verifiëren, kunt u uw accountsleutel, SAS-tokens (Shared Access Signatures) of service-principal opgeven in de bijbehorende register_azure_*() methode van het gegevensarchieftype dat u wilt maken. De matrix van het opslagtype bevat de ondersteunde verificatietypen die overeenkomen met elk gegevensarchieftype.

U vindt informatie over de accountsleutel, het SAS-token en de service-principal in uw Azure-portal.

  • Als u een accountsleutel of SAS-token wilt gebruiken voor verificatie, selecteert u Opslagaccounts in het linkerdeelvenster en kiest u het opslagaccount dat u wilt registreren

    • De pagina Overzicht bevat accountnaam, bestandssharenaam, container, enzovoort.
      • Ga voor accountsleutels naar Toegangssleutels in het deelvenster Instellingen
      • Ga voor SAS-tokens naar Handtekeningen voor gedeelde toegang in het deelvenster Instellingen
  • Als u een service-principal wilt gebruiken voor verificatie, gaat u naar uw App-registraties en selecteert u de app die u wilt gebruiken

    • De bijbehorende overzichtspagina van de geselecteerde app bevat vereiste informatie, bijvoorbeeld tenant-id en client-id

Belangrijk

Als u uw toegangssleutels voor een Azure Storage-account (accountsleutel of SAS-token) wilt wijzigen, synchroniseert u de nieuwe referenties met uw werkruimte en de gekoppelde gegevensarchieven. Ga naar Uw bijgewerkte referenties synchroniseren voor meer informatie.

Machtigingen

Voor Azure Blob-container en Azure Data Lake Gen 2-opslag moet u ervoor zorgen dat uw verificatiereferenties toegang hebben tot Storage Blob Data Reader . Ga naar Storage Blob Data Reader voor meer informatie. Een SAS-token voor een account is standaard ingesteld op geen machtigingen.

  • Voor leestoegang tot gegevens moeten uw verificatiereferenties een minimum aan lijst- en leesmachtigingen hebben voor containers en objecten

  • Schrijftoegang voor gegevens vereist ook schrijf- en toevoegmachtigingen

Gegevensarchieven maken en registreren

Registratie van een Azure-opslagoplossing als een gegevensarchief maakt en registreert dat gegevensarchief automatisch in een specifieke werkruimte. Bekijk toegang tot opslag en machtigingen in dit document voor hulp bij scenario's voor virtuele netwerken en waar u de vereiste verificatiereferenties kunt vinden.

Deze sectie bevat voorbeelden waarin wordt beschreven hoe u een gegevensarchief maakt en registreert via de Python SDK voor deze opslagtypen. De parameters die in deze voorbeelden worden weergegeven, zijn de vereiste parameters voor het maken en registreren van een gegevensarchief:

Als u gegevensarchieven wilt maken voor andere ondersteunde opslagservices, gaat u naar de referentiedocumentatie voor de toepasselijke register_azure_* methoden.

Als u wilt weten hoe u verbinding maakt met een gegevensopslagresource met een gebruikersinterface, gaat u naar Verbinding maken met gegevens met Azure Machine Learning-studio.

Belangrijk

Als u de registratie van een gegevensarchief met dezelfde naam ongedaan maakt en opnieuw registreert en de registratie mislukt, is de Azure Key Vault voor uw werkruimte mogelijk niet ingeschakeld voor voorlopig verwijderen. Voorlopig verwijderen is standaard ingeschakeld voor het sleutelkluisexemplaren dat door uw werkruimte is gemaakt, maar deze functie is mogelijk niet ingeschakeld als u een bestaande sleutelkluis hebt gebruikt of een werkruimte hebt gemaakt vóór oktober 2020. Zie Voorlopig verwijderen inschakelen voor een bestaande sleutelkluis voor informatie over het inschakelen van voorlopig verwijderen.

Notitie

Een gegevensarchiefnaam mag alleen kleine letters, cijfers en onderstrepingstekens bevatten.

Azure-blobcontainer

Als u een Azure Blob-container wilt registreren als een gegevensarchief, gebruikt u de register_azure_blob_container() methode.

Met dit codevoorbeeld wordt het blob_datastore_name gegevensarchief gemaakt en geregistreerd in de ws werkruimte. Het gegevensarchief maakt gebruik van de opgegeven toegangssleutel voor het account voor toegang tot de my-container-name blobcontainer in het my-account-name opslagaccount. Raadpleeg de sectie over opslagtoegang en machtigingen voor richtlijnen over scenario's voor virtuele netwerken en waar u de vereiste verificatiereferenties kunt vinden.

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

Als u een Azure-bestandsshare wilt registreren als een gegevensarchief, gebruikt u de register_azure_file_share() methode.

Met dit codevoorbeeld wordt het file_datastore_name gegevensarchief gemaakt en geregistreerd in de ws werkruimte. Het gegevensarchief maakt gebruik van de my-fileshare-name bestandsshare in het my-account-name opslagaccount, met de opgegeven toegangssleutel voor het account. Raadpleeg de sectie over opslagtoegang en machtigingen voor richtlijnen over scenario's voor virtuele netwerken en waar u de vereiste verificatiereferenties kunt vinden.

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)

Azure Data Lake Storage Generation 2

Voor een Azure Data Lake Storage Generation 2-gegevensarchief (ADLS Gen 2) gebruikt u demethode register_azure_data_lake_gen2() om een referentiegegevensarchief te registreren dat is verbonden met een Azure Data Lake Gen 2-opslag met service-principal-machtigingen.

Als u uw service-principal wilt gebruiken, moet u uw toepassing registreren en de service-principal gegevenstoegang verlenen via op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) of toegangsbeheerlijsten (ACL). Ga voor meer informatie naar het instellen van toegangsbeheer voor ADLS Gen 2.

Met deze code wordt het adlsgen2_datastore_name gegevensarchief gemaakt en geregistreerd bij de ws werkruimte. Dit gegevensarchief heeft toegang tot het bestandssysteem test in het account_name opslagaccount, via het gebruik van de opgegeven referenties voor de service-principal. Raadpleeg de sectie over opslagtoegang en machtigingen voor richtlijnen voor scenario's voor virtuele netwerken en waar u de vereiste verificatiereferenties kunt vinden.

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

Gegevensarchieven maken met andere Azure-hulpprogramma's

Naast het maken van gegevensarchieven met de Python SDK en de studio, kunt u ook gegevensarchieven maken met Azure Resource Manager-sjablonen of de Azure Machine Learning VS Code-extensie.

Azure Resource Manager

U kunt verschillende sjablonen gebruiken https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices om gegevensarchieven te maken. Ga naar Een Azure Resource Manager-sjabloon gebruiken om een werkruimte voor Azure Machine Learning te maken voor meer informatie over deze sjablonen.

VS Code-extensie

Voor meer informatie over het maken en beheren van gegevensarchieven met de Azure Machine Learning VS Code-extensie, gaat u naar de handleiding voor VS Code-resourcebeheer.

Gegevens gebruiken in uw gegevensarchieven

Nadat het gegevensarchief is gemaakt, maakt u een Azure Machine Learning-gegevensset om met uw gegevens te communiceren. Een gegevensset verpakt uw gegevens in een lazily geëvalueerd verbruiksobject voor machine learning-taken, zoals training. Met gegevenssets kunt u bestanden van elke indeling van Azure Storage-services downloaden of koppelen voor modeltraining op een rekendoel. Meer informatie over het trainen van ML-modellen met gegevenssets.

Gegevensarchieven ophalen uit uw werkruimte

Als u een specifiek gegevensarchief wilt ophalen dat is geregistreerd in de huidige werkruimte, gebruikt u de get() statische methode in de Datastore klasse:

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

Als u de lijst met gegevensarchieven wilt ophalen die zijn geregistreerd bij een bepaalde werkruimte, gebruikt u de datastores eigenschap voor een werkruimteobject:

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

In dit codevoorbeeld ziet u hoe u het standaardgegevensarchief van de werkruimte kunt ophalen:

datastore = ws.get_default_datastore()

U kunt ook het standaardgegevensarchief wijzigen met dit codevoorbeeld. Alleen de SDK biedt ondersteuning voor deze mogelijkheid:

 ws.set_default_datastore(new_default_datastore)

Toegang tot gegevens tijdens scoren

Azure Machine Learning biedt verschillende manieren om uw modellen te gebruiken voor scoren. Sommige van deze methoden bieden geen toegang tot gegevensarchieven. In de volgende tabel wordt beschreven welke methoden toegang bieden tot gegevensarchieven tijdens het scoren:

Wijze Toegang tot gegevensarchief Beschrijving
Batchvoorspelling Doe asynchroon voorspellingen op grote hoeveelheden gegevens.
Webservice   Modellen implementeren als een webservice.

Wanneer de SDK geen toegang biedt tot gegevensarchieven, kunt u mogelijk aangepaste code maken met de relevante Azure SDK om toegang te krijgen tot de gegevens. De Azure Storage SDK voor python-clientbibliotheek heeft bijvoorbeeld toegang tot gegevens die zijn opgeslagen in blobs of bestanden.

Gegevens verplaatsen naar ondersteunde Azure-opslagoplossingen

Azure Machine Learning biedt ondersteuning voor toegang tot gegevens vanuit

  • Azure Blob Storage
  • Azure Files
  • Azure Data Lake Storage Gen1
  • Azure Data Lake Storage Gen2
  • Azure SQL Database
  • Azure Database for PostgreSQL

Als u niet-ondersteunde opslag gebruikt, raden we u aan Azure Data Factory en deze stappen te gebruiken om uw gegevens te verplaatsen naar ondersteunde Azure-opslagoplossingen. Door gegevens naar ondersteunde opslag te verplaatsen, kunt u kosten voor uitgaand gegevens besparen tijdens machine learning-experimenten.

Azure Data Factory biedt een efficiënte en flexibele gegevensoverdracht, met meer dan 80 vooraf gebouwde connectors, zonder extra kosten. Deze connectors omvatten Azure-gegevensservices, on-premises gegevensbronnen, Amazon S3 en Redshift en Google BigQuery.

Volgende stappen