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ě
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 aDatastore
načtěte informace o předplatnémconfig.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 aworkspacefilestore
v 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í | ✓** | ✓ ** | ✓** |
- MySQL je podporován pouze pro kanál DataTransferStep.
- Databricks se podporuje jenom pro kanál DatabricksStep.
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í .
- Na stránce Přehled najdete název účtu, název sdílené složky, kontejner atd.
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.