Sdílet prostřednictvím


Připojení ke službám úložiště v Azure pomocí úložišť dat

PLATÍ PRO: Python SDK azureml v1

PLATÍ PRO: Rozšíření Azure CLI ml v1

V tomto článku se dozvíte, jak se připojit ke službám úložiště dat v Azure pomocí úložišť dat Azure Machine Learning a sady Azure Machine Learning Python SDK.

Úložiště dat se bezpečně připojují ke službě úložiště v Azure a zabraňují riziku pro vaše ověřovací přihlašovací údaje nebo integritu vašeho původního úložiště dat. Úložiště dat ukládá informace o připojení – například ID předplatného nebo autorizaci tokenu – ve službě Key Vault přidružené k pracovnímu prostoru. S úložištěm dat můžete bezpečně přistupovat k úložišti, protože se můžete vyhnout pevně kódovacím informacím o připojení ve skriptech. Můžete vytvořit úložiště dat, která se připojují k těmto řešením úložiště Azure.

Informace, které popisují, jak se úložiště dat hodí k celkovému pracovnímu postupu přístupu k datům ve službě Azure Machine Learning, najdete v článku o bezpečném přístupu k datům .

Informace o připojení k prostředku úložiště dat pomocí uživatelského rozhraní najdete v tématu Připojení k úložišti dat pomocí uživatelského rozhraní studia.

Tip

Tento článek předpokládá, že se připojíte ke službě úložiště pomocí přihlašovacích údajů s přihlašovacími údaji – například instanční objekt nebo token sdíleného přístupového podpisu (SAS). Upozorňujeme, že pokud jsou přihlašovací údaje zaregistrované v úložištích dat, můžou tyto přihlašovací údaje načíst všichni uživatelé s rolí Čtenář pracovního prostoru. Další informace najdete v tématu Správa rolí ve vašem pracovním prostoru.

Další informace o přístupu k datům založeným na identitě najdete v tématu Přístup k datům založeným na identitě ke službám úložiště (v1).

Požadavky

  • Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet. Vyzkoušejte bezplatnou nebo placenou verzi služby Azure Machine Learning.

  • Účet úložiště Azure s podporovaným typem úložiště

  • Sada Azure Machine Learning SDK pro Python

  • Pracovní prostor služby Azure Machine Learning.

    Vytvoření pracovního prostoru Služby Azure Machine Learning nebo použití existujícího pracovního prostoru prostřednictvím sady Python SDK

    Importujte Workspace a třídu a Datastore načtěte informace o předplatném config.json ze souboru pomocí from_config() funkce. Ve výchozím nastavení funkce hledá soubor JSON v aktuálním adresáři, ale můžete také zadat parametr cesty, který má odkazovat na soubor pomocí from_config(path="your/file/path"):

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

    Vytvoření pracovního prostoru automaticky zaregistruje kontejner objektů blob Azure a sdílenou složku Azure jako úložiště dat do pracovního prostoru. Pojmenují workspaceblobstore se a workspacefilestorev uvedeném pořadí. Ukládá workspaceblobstore artefakty pracovního prostoru a protokoly experimentů strojového učení. Slouží jako výchozí úložiště dat a nejde ho z pracovního prostoru odstranit. Ukládá workspacefilestore poznámkové bloky a skripty R autorizované prostřednictvím výpočetní instance.

    Poznámka:

    Návrhář služby Azure Machine Learning automaticky vytvoří úložiště dat s názvem azureml_globaldatasets při otevření ukázky na domovské stránce návrháře. Úložiště dat obsahuje pouze ukázkové datové sady. Toto úložiště dat nepoužívejte pro žádný důvěrný přístup k datům.

Podporované typy služby úložiště dat

Úložiště dat v současné době podporují úložiště informací o připojení ke službám úložiště uvedeným v této matici:

Tip

U nepodporovaných řešení úložiště (těch, které nejsou uvedené v následující tabulce), můžete při připojování a práci s daty narazit na problémy. Doporučujeme přesunout data do podporovaného řešení úložiště Azure. To může také pomoct s dalšími scénáři – například snížení nákladů na výchozí přenos dat během experimentů ML.

Typ úložiště Authentication type Azure Machine Learning Studio Sada Azure Machine Learning Python SDK Rozhraní CLI služby Azure Machine Learning Azure Machine Learning REST API VS Code
Azure Blob Storage Klíč účtu
Token SAS
Sdílené složky Azure Klíč účtu
Token SAS
Azure Data Lake Storage Gen 1 Instanční objekt
Azure Data Lake Storage Gen 2 Instanční objekt
Azure SQL Database Ověřování SQL
Instanční objekt
Azure PostgreSQL Ověřování SQL
Azure Database for MySQL Ověřování SQL ✓* ✓* ✓*
Systém souborů Databricks Bez ověřování ✓** ✓ ** ✓**

Pokyny k ukládání

Doporučujeme vytvořit úložiště dat pro kontejner objektů blob Azure. Pro objekty blob jsou k dispozici úložiště úrovně Standard i Premium. I když je premium storage dražší, rychlost rychlejší propustnosti může zvýšit rychlost trénovacích běhů, zejména pokud trénujete proti velké datové sadě. Informace o nákladech na účet úložiště najdete v cenové kalkulačce Azure.

Azure Data Lake Storage Gen2 je postavená na službě Azure Blob Storage. Je navržená pro analýzu velkých objemů dat v podniku. V rámci Služby Data Lake Storage Gen2 má úložiště objektů blob hierarchický obor názvů. Hierarchický obor názvů uspořádá objekty a soubory do hierarchie adresářů pro efektivní přístup k datům.

Přístup k úložišti a oprávnění

Aby se služba Azure Machine Learning bezpečně připojila ke službě Azure Storage, vyžaduje, abyste měli oprávnění pro přístup k odpovídajícímu kontejneru úložiště dat. Tento přístup závisí na přihlašovacích údajích ověřování použitých k registraci úložiště dat.

Poznámka:

Tyto pokyny platí také pro úložiště dat vytvořená s přístupem k datům založeným na identitách.

Virtuální síť

Ke komunikaci s účtem úložiště umístěným za bránou firewall nebo ve virtuální síti vyžaduje Azure Machine Learning další kroky konfigurace. Pro účet úložiště umístěný za bránou firewall můžete přidat IP adresu klienta do seznamu povolených na webu Azure Portal.

Azure Machine Learning může přijímat žádosti od klientů mimo virtuální síť. Pokud chcete zajistit, aby entita, která požaduje data ze služby, byla bezpečná a aby bylo možné zobrazit data ve vašem pracovním prostoru, použijte privátní koncový bod s pracovním prostorem.

Uživatelé sady Python SDK: Pokud chcete získat přístup k datům v cílovém výpočetním objektu pomocí trénovacího skriptu, musíte cílový výpočetní objekt najít ve stejné virtuální síti a podsíti úložiště. Výpočetní instanci nebo cluster můžete použít ve stejné virtuální síti.

Pro studio Azure Machine Learning uživatele: Několik funkcí spoléhá na schopnost číst data z datové sady – například náhledy datových sad, profily a automatizované strojové učení. Aby tyto funkce fungovaly s úložištěm za virtuálními sítěmi, použijte spravovanou identitu pracovního prostoru v sadě Studio , abyste službě Azure Machine Learning umožnili přístup k účtu úložiště mimo virtuální síť.

Poznámka:

U dat uložených ve službě Azure SQL Database za virtuální sítí nastavte možnost Odepřít veřejný přístup na Ne pomocí webu Azure Portal, aby služba Azure Machine Learning mohla přistupovat k účtu úložiště.

Ověření přístupu

Upozorňující

Přístup mezi tenanty k účtům úložiště se nepodporuje. Pokud váš scénář potřebuje přístup mezi tenanty, spojte se s aliasem týmu podpory dat služby Azure Machine Learning a amldatasupport@microsoft.com požádejte ho o pomoc s vlastním řešením kódu.

V rámci počátečního procesu vytvoření a registrace úložiště dat Azure Machine Learning automaticky ověří, že základní služba úložiště existuje a že k zadanému úložišti má přístup zadaný objekt zabezpečení (uživatelské jméno, instanční objekt nebo token SAS).

Po vytvoření úložiště dat se toto ověření provádí pouze pro metody, které vyžadují přístup k podkladovému kontejneru úložiště, a ne pokaždé, když se načtou objekty úložiště dat. K ověření dojde například v případě, že chcete stáhnout soubory z úložiště dat. Pokud ale chcete změnit jenom výchozí úložiště dat, neproběhne ověření.

Pokud chcete ověřit přístup k podkladové službě úložiště, můžete zadat klíč účtu, tokeny sdíleného přístupového podpisu (SAS) nebo instanční objekt v odpovídající register_azure_*() metodě typu úložiště dat, který chcete vytvořit. Matice typů úložiště obsahuje seznam podporovaných typů ověřování, které odpovídají jednotlivým typům úložiště dat.

Klíč účtu, token SAS a informace o instančním objektu najdete na webu Azure Portal.

  • Pokud chcete pro ověřování použít klíč účtu nebo token SAS, vyberte v levém podokně účty úložiště a zvolte účet úložiště, který chcete zaregistrovat.

    • Na stránce Přehled najdete název účtu, název sdílené složky, kontejner atd.
      • U klíčů účtu přejděte na Přístupové klíče v podokně Nastavení .
      • V případě tokenů SAS přejděte do části Sdílené přístupové podpisy v podokně Nastavení .
  • Pokud chcete k ověřování použít instanční objekt, přejděte na Registrace aplikací a vyberte aplikaci, kterou chcete použít.

    • Odpovídající stránka Přehled vybrané aplikace obsahuje požadované informace, například ID tenanta a ID klienta.

Důležité

Pokud chcete změnit přístupové klíče pro účet Azure Storage (klíč účtu nebo token SAS), synchronizujte nové přihlašovací údaje s pracovním prostorem a úložišti dat připojenými k němu. Další informace najdete v části Synchronizace aktualizovaných přihlašovacích údajů.

Oprávnění

V případě kontejneru objektů blob Azure a úložiště Azure Data Lake Gen2 se ujistěte, že přihlašovací údaje pro ověřování mají přístup ke čtenáři dat objektů blob služby Storage. Další informace najdete v tématu Čtenář dat objektů blob služby Storage. Token SAS účtu ve výchozím nastavení nemá žádná oprávnění.

  • Pro přístup ke čtení dat musí mít vaše ověřovací přihlašovací údaje minimálně oprávnění seznamu a čtení pro kontejnery a objekty.

  • Přístup k zápisu dat také vyžaduje oprávnění k zápisu a přidání.

Vytváření a registrace úložišť dat

Registrace řešení úložiště Azure jako úložiště dat automaticky vytvoří a zaregistruje úložiště dat do určitého pracovního prostoru. Pokyny ke scénářům virtuální sítě a vyhledání požadovaných přihlašovacích údajů pro ověřování najdete v tomto dokumentu v tomto dokumentu.

Tato část obsahuje příklady, které popisují, jak vytvořit a zaregistrovat úložiště dat prostřednictvím sady Python SDK pro tyto typy úložišť. Parametry uvedené v těchto příkladech jsou požadované parametry pro vytvoření a registraci úložiště dat:

Pokud chcete vytvořit úložiště dat pro jiné podporované služby úložiště, navštivte referenční dokumentaci pro příslušné register_azure_* metody.

Informace o připojení k prostředku úložiště dat pomocí uživatelského rozhraní najdete v tématu Připojení k datům pomocí studio Azure Machine Learning.

Důležité

Pokud zrušíte registraci a znovu zaregistrujete úložiště dat se stejným názvem a opětovná registrace selže, nemusí mít služba Azure Key Vault pro váš pracovní prostor povolené obnovitelné odstranění. Ve výchozím nastavení je pro instanci trezoru klíčů vytvořenou vaším pracovním prostorem povolené obnovitelné odstranění, ale pokud jste použili existující trezor klíčů nebo jste vytvořili pracovní prostor před říjnem 2020, nemusí být povolený. Informace, které popisují, jak povolit obnovitelné odstranění, najdete v tématu Zapnutí obnovitelného odstranění pro existující trezor klíčů.

Poznámka:

Název úložiště dat by měl obsahovat jenom malá písmena, číslice a podtržítka.

Kontejner objektů blob Azure

Pokud chcete zaregistrovat kontejner objektů blob Azure jako úložiště dat, použijte metodu register_azure_blob_container() .

Tento vzorový kód vytvoří a zaregistruje blob_datastore_name úložiště dat do ws pracovního prostoru. Úložiště dat používá zadaný přístupový klíč účtu pro přístup ke kontejneru my-container-name objektů blob v my-account-name účtu úložiště. Informace o scénářích virtuální sítě a vyhledání požadovaných přihlašovacích údajů pro ověřování najdete v části Přístup k úložišti a oprávnění k úložišti.

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)

Sdílená složka Azure

Pokud chcete registrovat sdílenou složku Azure jako úložiště dat, použijte metodu register_azure_file_share() .

Tento vzorový kód vytvoří a zaregistruje file_datastore_name úložiště dat do ws pracovního prostoru. Úložiště dat používá sdílenou my-fileshare-name složku v my-account-name účtu úložiště se zadaným přístupovým klíčem účtu. Informace o scénářích virtuální sítě a vyhledání požadovaných přihlašovacích údajů pro ověřování najdete v části Přístup k úložišti a oprávnění k úložišti.

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

V případě úložiště dat Azure Data Lake Storage Generation 2 (ADLS Gen2) použijtemetodu register_azure_data_lake_gen2() k registraci úložiště přihlašovacích údajů připojeného k úložišti Azure Data Lake Gen2 s oprávněními instančního objektu.

Pokud chcete použít instanční objekt, musíte zaregistrovat aplikaci a udělit přístup k datům instančního objektu prostřednictvím řízení přístupu na základě role (Azure RBAC) nebo seznamů řízení přístupu (ACL). Další informace najdete v tématu Nastavení řízení přístupu pro ADLS Gen2.

Tento kód vytvoří a zaregistruje adlsgen2_datastore_name úložiště dat do ws pracovního prostoru. Tento úložiště dat přistupuje k systému test souborů v account_name účtu úložiště prostřednictvím poskytnutých přihlašovacích údajů instančního objektu. Informace o scénářích virtuální sítě a vyhledání požadovaných přihlašovacích údajů pro ověřování najdete v části Přístup k úložišti a oprávnění k úložišti.

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

Vytváření úložišť dat pomocí jiných nástrojů Azure

Kromě vytváření úložiště dat pomocí sady Python SDK a studia můžete také vytvářet úložiště dat pomocí šablon Azure Resource Manageru nebo rozšíření azure Machine Learning VS Code.

Azure Resource Manager

K vytvoření úložišť dat můžete použít několik šablon https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices . Informace o těchto šablonách najdete v tématu Použití šablony Azure Resource Manageru k vytvoření pracovního prostoru pro Azure Machine Learning.

Rozšíření VS Code

Další informace o vytváření a správě úložišť dat pomocí rozšíření Azure Machine Learning VS Code najdete v průvodci správou prostředků VS Code.

Použití dat v úložištích dat

Po vytvoření úložiště dat vytvořte datovou sadu Azure Machine Learning pro interakci s daty. Datová sada zabalí vaše data do lazily vyhodnoceného spotřebního objektu pro úlohy strojového učení, jako je trénování. S datovými sadami můžete stáhnout nebo připojit soubory libovolného formátu ze služeb Azure Storage pro trénování modelu na cílové výpočetní objekty. Přečtěte si další informace o tom, jak trénovat modely ML pomocí datových sad.

Získání úložišť dat z pracovního prostoru

Pokud chcete získat konkrétní úložiště dat zaregistrované v aktuálním pracovním prostoru, použijte get() statickou metodu ve Datastore třídě:

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

Pokud chcete získat seznam úložišť dat zaregistrovaných v daném pracovním prostoru, použijte datastores vlastnost objektu pracovního prostoru:

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

Tento ukázkový kód ukazuje, jak získat výchozí úložiště dat pracovního prostoru:

datastore = ws.get_default_datastore()

Výchozí úložiště dat můžete také změnit pomocí této ukázky kódu. Tuto schopnost podporuje pouze sada SDK:

 ws.set_default_datastore(new_default_datastore)

Přístup k datům během vyhodnocování

Azure Machine Learning nabízí několik způsobů použití modelů k bodování. Některé z těchto metod neposkytují přístup k úložištům dat. Následující tabulka popisuje, které metody umožňují přístup k úložištím dat během vyhodnocování:

metoda Přístup k úložišti dat Popis
Dávkové předpovědi Asynchronně můžete vytvářet předpovědi u velkých objemů dat.
Webová služba   Nasaďte modely jako webovou službu.

Pokud sada SDK neposkytuje přístup k úložištím dat, možná budete moct vytvořit vlastní kód s příslušnou sadou Azure SDK pro přístup k datům. Například klientská knihovna Azure Storage SDK pro Python má přístup k datům uloženým v objektech blob nebo souborech.

Přesun dat do podporovaných řešení úložiště Azure

Azure Machine Learning podporuje přístup k datům z

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

Pokud používáte nepodporované úložiště, doporučujeme použít Azure Data Factory a tyto kroky k přesunu dat do podporovaných řešení úložiště Azure. Přesunutí dat do podporovaného úložiště vám může pomoct ušetřit náklady na výchozí přenos dat během experimentů strojového učení.

Azure Data Factory poskytuje efektivní a odolný přenos dat s více než 80 předem připravenými konektory bez dalších poplatků. Mezi tyto konektory patří datové služby Azure, místní zdroje dat, Amazon S3 a Redshift a Google BigQuery.

Další kroky