Datastore 類別
代表 Azure Machine Learning 記憶體帳戶的記憶體抽象概念。
數據存放區會附加至工作區,並用來將連線資訊儲存至 Azure 記憶體服務,因此您可以依名稱參考它們,而不需要記住用來連線到記憶體服務的連線資訊和秘密。
可註冊為數據存放區的支援的 Azure 記憶體服務範例如下:
Azure Blob 容器
Azure 檔案共用
Azure Data Lake
Azure Data Lake Gen2
Azure SQL Database
適用於 PostgreSQL 的 Azure 資料庫
Databricks 檔案系統
適用於 MySQL 的 Azure 資料庫
使用此類別來執行管理作業,包括緩存器、清單、取得和移除資料存放區。
每個服務的數據存放區都會使用 register*
這個類別的方法建立。 使用資料存放區來存取數據時,您必須具有存取該數據的許可權,這取決於向數據存放區註冊的認證。
如需數據存放區以及如何在機器學習中使用的詳細資訊,請參閱下列文章:
依名稱取得數據存放區。 此呼叫會向數據存放區服務提出要求。
- 繼承
-
builtins.objectDatastore
建構函式
Datastore(workspace, name=None)
參數
備註
若要與數據存放區中的數據互動,以進行機器學習工作,例如定型, 請建立 Azure Machine Learning 數據集。 資料集提供將表格式資料載入 Pandas 或 Spark DataFrame 中的功能。 資料集也能讓您從 Azure Blob 儲存體、Azure 檔案儲存體、Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2、Azure SQL Database 和適用於 PostgreSQL 的 Azure 資料庫下載或掛接任何格式的檔案。 深入了解如何使用資料集進行定型。
下列範例示範如何建立連線至 Azure Blob 容器的數據存放區。
from azureml.exceptions import UserErrorException
blob_datastore_name='MyBlobDatastore'
account_name=os.getenv("BLOB_ACCOUNTNAME_62", "<my-account-name>") # Storage account name
container_name=os.getenv("BLOB_CONTAINER_62", "<my-container-name>") # Name of Azure blob container
account_key=os.getenv("BLOB_ACCOUNT_KEY_62", "<my-account-key>") # Storage account key
try:
blob_datastore = Datastore.get(ws, blob_datastore_name)
print("Found Blob Datastore with name: %s" % blob_datastore_name)
except UserErrorException:
blob_datastore = Datastore.register_azure_blob_container(
workspace=ws,
datastore_name=blob_datastore_name,
account_name=account_name, # Storage account name
container_name=container_name, # Name of Azure blob container
account_key=account_key) # Storage account key
print("Registered blob datastore with name: %s" % blob_datastore_name)
blob_data_ref = DataReference(
datastore=blob_datastore,
data_reference_name="blob_test_data",
path_on_datastore="testdata")
方法
get |
依名稱取得數據存放區。 這與呼叫建構函式相同。 |
get_default |
取得工作區的預設數據存放區。 |
register_azure_blob_container |
向數據存放區註冊 Azure Blob 容器。 支援以認證為基礎的 (GA) 和身分識別型 (預覽版) 數據存取,您可以選擇使用 SAS 令牌或記憶體帳戶密鑰。 如果沒有使用數據存放區儲存認證,則如果使用者的 AAD 令牌直接呼叫下列其中一個函式,則會在筆記本或本機 Python 程式中使用:FileDataset.mount FileDataset.download FileDataset.to_path TabularDataset.to_pandas_dataframe TabularDataset.to_dask_dataframe TabularDataset.to_spark_dataframe TabularDataset.to_parquet_files TabularDataset.to_csv_files Experiment.submit 所提交的作業中將會使用計算目標的身分識別來進行數據存取驗證。 在這裡深入了解。 |
register_azure_data_lake |
初始化新的 Azure Data Lake 資料存放區。 支援以認證為基礎的 (GA) 和身分識別型 (Preview) 數據存取,您可以使用服務主體註冊數據存放區,以進行認證型數據存取。 如果沒有使用數據存放區儲存認證,則如果使用者的 AAD 令牌直接呼叫下列其中一個函式,則會在筆記本或本機 Python 程式中使用:FileDataset.mount FileDataset.download FileDataset.to_path TabularDataset.to_pandas_dataframe TabularDataset.to_dask_dataframe TabularDataset.to_spark_dataframe TabularDataset.to_parquet_files TabularDataset.to_csv_files Experiment.submit 所提交的作業中將會使用計算目標的身分識別來進行數據存取驗證。 在這裡深入了解。 如需如何將 Azure Data Lake Gen1 註冊為數據存放區的範例,請參閱下方。
|
register_azure_data_lake_gen2 |
初始化新的 Azure Data Lake Gen2 數據存放區。 支援以認證為基礎的 (GA) 和身分識別型 (Preview) 數據存取,您可以使用服務主體註冊數據存放區,以進行認證型數據存取。 如果沒有使用數據存放區儲存認證,則如果使用者的 AAD 令牌直接呼叫下列其中一個函式,則會在筆記本或本機 Python 程式中使用:FileDataset.mount FileDataset.download FileDataset.to_path TabularDataset.to_pandas_dataframe TabularDataset.to_dask_dataframe TabularDataset.to_spark_dataframe TabularDataset.to_parquet_files TabularDataset.to_csv_files Experiment.submit 所提交的作業中將會使用計算目標的身分識別來進行數據存取驗證。 在這裡深入了解。 |
register_azure_file_share |
向數據存放區註冊 Azure 檔案共用。 您可以選擇使用 SAS 令牌或記憶體帳戶金鑰 |
register_azure_my_sql |
初始化新的 Azure MySQL 資料存放區。 MySQL 數據存放區只能用來建立 DataReference 作為 Azure Machine Learning 管線中 DataTransferStep 的輸入和輸出。 如需詳細資訊,請參閱這裡。 如需如何將 Azure MySQL 資料庫註冊為數據存放區的範例,請參閱下方。 |
register_azure_postgre_sql |
初始化新的 Azure PostgreSQL 資料存放區。 如需如何將 Azure PostgreSQL 資料庫註冊為數據存放區的範例,請參閱下方。 |
register_azure_sql_database |
初始化新的 Azure SQL 資料庫數據存放區。 支援以認證為基礎的 (GA) 和身分識別型 (Preview) 資料存取,您可以選擇使用服務主體或使用者名稱 + 密碼。 如果沒有使用數據存放區儲存認證,則如果使用者的 AAD 令牌直接呼叫下列其中一個函式,則會在筆記本或本機 Python 程式中使用:FileDataset.mount FileDataset.download FileDataset.to_path TabularDataset.to_pandas_dataframe TabularDataset.to_dask_dataframe TabularDataset.to_spark_dataframe TabularDataset.to_parquet_files TabularDataset.to_csv_files Experiment.submit 所提交的作業中將會使用計算目標的身分識別來進行數據存取驗證。 在這裡深入了解。 如需如何將 Azure SQL 資料庫註冊為數據存放區的範例,請參閱下方。 |
register_dbfs |
(DBFS) 數據存放區,初始化新的 Databricks 文件系統。 DBFS 數據存放區只能用來建立 DataReference 作為輸入和 PipelineData 做為 Azure Machine Learning 管線中 DatabricksStep 的輸出。 如需詳細資訊,請參閱這裡。 |
register_hdfs |
注意 這是實驗性方法,隨時可能會變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。 初始化新的 HDFS 資料存放區。 |
set_as_default |
設定預設數據存放區。 |
unregister |
取消註冊數據存放區。 基礎記憶體服務將不會刪除。 |
get
依名稱取得數據存放區。 這與呼叫建構函式相同。
static get(workspace, datastore_name)
參數
傳回
該名稱的對應數據存放區。
傳回類型
get_default
取得工作區的預設數據存放區。
static get_default(workspace)
參數
傳回
工作區的預設數據存放區
傳回類型
register_azure_blob_container
向數據存放區註冊 Azure Blob 容器。
支援以認證為基礎的 (GA) 和身分識別型 (預覽版) 數據存取,您可以選擇使用 SAS 令牌或記憶體帳戶密鑰。 如果沒有使用數據存放區儲存認證,則如果使用者的 AAD 令牌直接呼叫下列其中一個函式,則會在筆記本或本機 Python 程式中使用:FileDataset.mount FileDataset.download FileDataset.to_path TabularDataset.to_pandas_dataframe TabularDataset.to_dask_dataframe TabularDataset.to_spark_dataframe TabularDataset.to_parquet_files TabularDataset.to_csv_files Experiment.submit 所提交的作業中將會使用計算目標的身分識別來進行數據存取驗證。 在這裡深入了解。
static register_azure_blob_container(workspace, datastore_name, container_name, account_name, sas_token=None, account_key=None, protocol=None, endpoint=None, overwrite=False, create_if_not_exists=False, skip_validation=False, blob_cache_timeout=None, grant_workspace_access=False, subscription_id=None, resource_group=None)
參數
- sas_token
- str, <xref:optional>
帳戶 SAS 令牌預設為 None。 針對讀取的數據,我們至少需要容器 & 對象的清單 & 讀取許可權,以及針對數據寫入,我們還需要寫入 & 新增許可權。
- blob_cache_timeout
- int, <xref:optional>
掛接此 Blob 時,請將快取逾時設定為這多秒。 如果為 None,預設為沒有逾時 (,也就是讀取) 時,將會快取作業持續時間的 Blob。
- grant_workspace_access
- bool, <xref:optional>
預設為 False。 將它設定為 True,以從 Machine Learning Studio 存取虛擬網路後方的數據。這可讓 Machine Learning Studio 的數據存取使用工作區受控識別進行驗證,並將工作區受控識別新增為記憶體的讀取者。 您必須是記憶體的擁有者或使用者存取系統管理員,才能加入宣告。 如果您沒有必要的許可權,請要求系統管理員進行設定。 深入瞭解 'https://docs.microsoft.com/azure/machine-learning/how-to-enable-studio-virtual-network'
傳回
Blob 資料存放區。
傳回類型
備註
如果您要從與工作區區域不同的區域鏈接記憶體,可能會導致延遲較高,以及額外的網路使用量成本。
register_azure_data_lake
初始化新的 Azure Data Lake 資料存放區。
支援以認證為基礎的 (GA) 和身分識別型 (Preview) 數據存取,您可以使用服務主體註冊數據存放區,以進行認證型數據存取。 如果沒有使用數據存放區儲存認證,則如果使用者的 AAD 令牌直接呼叫下列其中一個函式,則會在筆記本或本機 Python 程式中使用:FileDataset.mount FileDataset.download FileDataset.to_path TabularDataset.to_pandas_dataframe TabularDataset.to_dask_dataframe TabularDataset.to_spark_dataframe TabularDataset.to_parquet_files TabularDataset.to_csv_files Experiment.submit 所提交的作業中將會使用計算目標的身分識別來進行數據存取驗證。 在這裡深入了解。
如需如何將 Azure Data Lake Gen1 註冊為數據存放區的範例,請參閱下方。
adlsgen1_datastore_name='adlsgen1datastore'
store_name=os.getenv("ADL_STORENAME", "<my_datastore_name>") # the ADLS name
subscription_id=os.getenv("ADL_SUBSCRIPTION", "<my_subscription_id>") # subscription id of the ADLS
resource_group=os.getenv("ADL_RESOURCE_GROUP", "<my_resource_group>") # resource group of ADLS
tenant_id=os.getenv("ADL_TENANT", "<my_tenant_id>") # tenant id of service principal
client_id=os.getenv("ADL_CLIENTID", "<my_client_id>") # client id of service principal
client_secret=os.getenv("ADL_CLIENT_SECRET", "<my_client_secret>") # the secret of service principal
adls_datastore = Datastore.register_azure_data_lake(
workspace=ws,
datastore_name=aslsgen1_datastore_name,
subscription_id=subscription_id, # subscription id of ADLS account
resource_group=resource_group, # resource group of ADLS account
store_name=store_name, # ADLS account name
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
static register_azure_data_lake(workspace, datastore_name, store_name, tenant_id=None, client_id=None, client_secret=None, resource_url=None, authority_url=None, subscription_id=None, resource_group=None, overwrite=False, grant_workspace_access=False)
參數
- resource_url
- str, <xref:optional>
資源 URL,決定在 Data Lake Store 上執行哪些作業,如果 None,則預設 https://datalake.azure.net/
會允許我們執行文件系統作業。
- grant_workspace_access
- bool, <xref:optional>
預設為 False。 將它設定為 True,以從 Machine Learning Studio 存取虛擬網路後方的數據。這可讓 Machine Learning Studio 的數據存取使用工作區受控識別進行驗證,並將工作區受控識別新增為記憶體的讀取者。 您必須是記憶體的擁有者或使用者存取系統管理員,才能加入宣告。 如果您沒有必要的許可權,請要求系統管理員進行設定。 深入瞭解 'https://docs.microsoft.com/azure/machine-learning/how-to-enable-studio-virtual-network'
傳回
傳回 Azure Data Lake 數據存放區。
傳回類型
備註
如果您要從與工作區區域不同的區域鏈接記憶體,可能會導致延遲較高,以及額外的網路使用量成本。
注意
Azure Data Lake 資料存放區支援使用 Azure Machine Learning 管線進行數據傳輸和執行 U-Sql 作業。
您也可以使用它作為 Azure Machine Learning 數據集的數據源,該數據集可以下載或掛接在任何支持的計算上。
register_azure_data_lake_gen2
初始化新的 Azure Data Lake Gen2 數據存放區。
支援以認證為基礎的 (GA) 和身分識別型 (Preview) 數據存取,您可以使用服務主體註冊數據存放區,以進行認證型數據存取。 如果沒有使用數據存放區儲存認證,則如果使用者的 AAD 令牌直接呼叫下列其中一個函式,則會在筆記本或本機 Python 程式中使用:FileDataset.mount FileDataset.download FileDataset.to_path TabularDataset.to_pandas_dataframe TabularDataset.to_dask_dataframe TabularDataset.to_spark_dataframe TabularDataset.to_parquet_files TabularDataset.to_csv_files Experiment.submit 所提交的作業中將會使用計算目標的身分識別來進行數據存取驗證。 在這裡深入了解。
static register_azure_data_lake_gen2(workspace, datastore_name, filesystem, account_name, tenant_id=None, client_id=None, client_secret=None, resource_url=None, authority_url=None, protocol=None, endpoint=None, overwrite=False, subscription_id=None, resource_group=None, grant_workspace_access=False)
參數
- resource_url
- str, <xref:optional>
資源 URL,決定將在 Data Lake Store 上執行的作業,預設 https://storage.azure.com/
會允許我們執行文件系統作業。
- grant_workspace_access
- bool, <xref:optional>
預設為 False。 將它設定為 True,以從 Machine Learning Studio 存取虛擬網路後方的數據。這可讓 Machine Learning Studio 的數據存取使用工作區受控識別進行驗證,並將工作區受控識別新增為記憶體的讀取者。 您必須是記憶體的擁有者或使用者存取系統管理員,才能加入宣告。 如果您沒有必要的許可權,請要求系統管理員進行設定。 深入瞭解 'https://docs.microsoft.com/azure/machine-learning/how-to-enable-studio-virtual-network'
傳回
傳回 Azure Data Lake Gen2 數據存放區。
傳回類型
備註
如果您要從與工作區區域不同的區域鏈接記憶體,可能會導致延遲較高,以及額外的網路使用量成本。
register_azure_file_share
向數據存放區註冊 Azure 檔案共用。
您可以選擇使用 SAS 令牌或記憶體帳戶金鑰
static register_azure_file_share(workspace, datastore_name, file_share_name, account_name, sas_token=None, account_key=None, protocol=None, endpoint=None, overwrite=False, create_if_not_exists=False, skip_validation=False)
參數
- sas_token
- str, <xref:optional>
帳戶 SAS 令牌預設為 None。 針對讀取的數據,我們至少需要容器 & 對象的清單 & 讀取許可權,以及針對數據寫入,我們還需要寫入 & 新增許可權。
傳回
檔案數據存放區。
傳回類型
備註
如果您要從與工作區區域不同的區域鏈接記憶體,可能會導致延遲較高,以及額外的網路使用量成本。
register_azure_my_sql
初始化新的 Azure MySQL 資料存放區。
MySQL 數據存放區只能用來建立 DataReference 作為 Azure Machine Learning 管線中 DataTransferStep 的輸入和輸出。 如需詳細資訊,請參閱這裡。
如需如何將 Azure MySQL 資料庫註冊為數據存放區的範例,請參閱下方。
static register_azure_my_sql(workspace, datastore_name, server_name, database_name, user_id, user_password, port_number=None, endpoint=None, overwrite=False, **kwargs)
參數
傳回
傳回 MySQL 資料庫數據存放區。
傳回類型
備註
如果您要從與工作區區域不同的區域鏈接記憶體,可能會導致延遲較高,以及額外的網路使用量成本。
mysql_datastore_name="mysqldatastore"
server_name=os.getenv("MYSQL_SERVERNAME", "<my_server_name>") # FQDN name of the MySQL server
database_name=os.getenv("MYSQL_DATBASENAME", "<my_database_name>") # Name of the MySQL database
user_id=os.getenv("MYSQL_USERID", "<my_user_id>") # The User ID of the MySQL server
user_password=os.getenv("MYSQL_USERPW", "<my_user_password>") # The user password of the MySQL server.
mysql_datastore = Datastore.register_azure_my_sql(
workspace=ws,
datastore_name=mysql_datastore_name,
server_name=server_name,
database_name=database_name,
user_id=user_id,
user_password=user_password)
register_azure_postgre_sql
初始化新的 Azure PostgreSQL 資料存放區。
如需如何將 Azure PostgreSQL 資料庫註冊為數據存放區的範例,請參閱下方。
static register_azure_postgre_sql(workspace, datastore_name, server_name, database_name, user_id, user_password, port_number=None, endpoint=None, overwrite=False, enforce_ssl=True, **kwargs)
參數
- endpoint
- str, <xref:optional>
PostgreSQL 伺服器的端點。 如果為 None,則預設為 postgres.database.azure.com。
傳回
傳回 PostgreSQL 資料庫數據存放區。
傳回類型
備註
如果您要從與工作區區域不同的區域鏈接記憶體,可能會導致延遲較高,以及額外的網路使用量成本。
psql_datastore_name="postgresqldatastore"
server_name=os.getenv("PSQL_SERVERNAME", "<my_server_name>") # FQDN name of the PostgreSQL server
database_name=os.getenv("PSQL_DATBASENAME", "<my_database_name>") # Name of the PostgreSQL database
user_id=os.getenv("PSQL_USERID", "<my_user_id>") # The database user id
user_password=os.getenv("PSQL_USERPW", "<my_user_password>") # The database user password
psql_datastore = Datastore.register_azure_postgre_sql(
workspace=ws,
datastore_name=psql_datastore_name,
server_name=server_name,
database_name=database_name,
user_id=user_id,
user_password=user_password)
register_azure_sql_database
初始化新的 Azure SQL 資料庫數據存放區。
支援以認證為基礎的 (GA) 和身分識別型 (Preview) 資料存取,您可以選擇使用服務主體或使用者名稱 + 密碼。 如果沒有使用數據存放區儲存認證,則如果使用者的 AAD 令牌直接呼叫下列其中一個函式,則會在筆記本或本機 Python 程式中使用:FileDataset.mount FileDataset.download FileDataset.to_path TabularDataset.to_pandas_dataframe TabularDataset.to_dask_dataframe TabularDataset.to_spark_dataframe TabularDataset.to_parquet_files TabularDataset.to_csv_files Experiment.submit 所提交的作業中將會使用計算目標的身分識別來進行數據存取驗證。 在這裡深入了解。
如需如何將 Azure SQL 資料庫註冊為數據存放區的範例,請參閱下方。
static register_azure_sql_database(workspace, datastore_name, server_name, database_name, tenant_id=None, client_id=None, client_secret=None, resource_url=None, authority_url=None, endpoint=None, overwrite=False, username=None, password=None, subscription_id=None, resource_group=None, grant_workspace_access=False, **kwargs)
參數
- server_name
- str
SQL Server 名稱。 對於 「sample.database.windows.net」 等完整功能變數名稱,server_name值應該是 「sample」 ,端點值應該是 「database.windows.net」。
- resource_url
- str, <xref:optional>
資源 URL,決定在 SQL 資料庫存放區上執行哪些作業,如果無,則預設為 https://database.windows.net/。
- grant_workspace_access
- bool, <xref:optional>
預設為 False。 將它設定為 True,以從 Machine Learning Studio 存取虛擬網路後方的數據。這可讓 Machine Learning Studio 的數據存取使用工作區受控識別進行驗證,並將工作區受控識別新增為記憶體的讀取者。 您必須是記憶體的擁有者或使用者存取系統管理員,才能加入宣告。 如果您沒有必要的許可權,請要求系統管理員進行設定。 深入瞭解 'https://docs.microsoft.com/azure/machine-learning/how-to-enable-studio-virtual-network'
傳回
傳回 SQL 資料庫數據存放區。
傳回類型
備註
如果您要從與工作區區域不同的區域鏈接記憶體,可能會導致延遲較高,以及額外的網路使用量成本。
sql_datastore_name="azuresqldatastore"
server_name=os.getenv("SQL_SERVERNAME", "<my_server_name>") # Name of the Azure SQL server
database_name=os.getenv("SQL_DATABASENAME", "<my_database_name>") # Name of the Azure SQL database
username=os.getenv("SQL_USER_NAME", "<my_sql_user_name>") # The username of the database user.
password=os.getenv("SQL_USER_PASSWORD", "<my_sql_user_password>") # The password of the database user.
sql_datastore = Datastore.register_azure_sql_database(
workspace=ws,
datastore_name=sql_datastore_name,
server_name=server_name, # name should not contain fully qualified domain endpoint
database_name=database_name,
username=username,
password=password,
endpoint='database.windows.net')
register_dbfs
(DBFS) 數據存放區,初始化新的 Databricks 文件系統。
DBFS 數據存放區只能用來建立 DataReference 作為輸入和 PipelineData 做為 Azure Machine Learning 管線中 DatabricksStep 的輸出。 如需詳細資訊,請參閱這裡。
static register_dbfs(workspace, datastore_name)
參數
傳回
傳回 DBFS 資料存放區。
傳回類型
備註
如果您要從與工作區區域不同的區域鏈接記憶體,可能會導致延遲較高,以及額外的網路使用量成本。
register_hdfs
注意
這是實驗性方法,隨時可能會變更。 請參閱 https://aka.ms/azuremlexperimental 以取得詳細資訊。
初始化新的 HDFS 資料存放區。
static register_hdfs(workspace, datastore_name, protocol, namenode_address, hdfs_server_certificate, kerberos_realm, kerberos_kdc_address, kerberos_principal, kerberos_keytab=None, kerberos_password=None, overwrite=False)
參數
- protocol
- str 或 <xref:_restclient.models.enum>
與 HDFS 叢集通訊時要使用的通訊協定。 HTTP 或 HTTPs。 可能的值包括:'HTTP'、'https'
set_as_default
unregister
取消註冊數據存放區。 基礎記憶體服務將不會刪除。
unregister()
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應