Datastore 类

表示通过 Azure 机器学习存储帐户的存储抽象。

数据存储附加到工作区,用于存储到 Azure 存储服务的连接信息,以便可以按名称引用它们,并且无需记住用于连接到存储服务的连接信息和机密。

可注册为数据存储的受支持 Azure 存储服务的示例包括:

  • Azure Blob 容器

  • Azure 文件共享

  • Azure Data Lake

  • Azure Data Lake Gen2

  • Azure SQL 数据库

  • Azure Database for PostgreSQL

  • Databricks 文件系统

  • Azure Database for MySQL

使用此类可以执行管理操作,包括注册、列出、获取和移除数据存储。 每个服务的数据存储都是使用此类的 register* 方法创建的。 使用数据存储访问数据时,必须具有访问数据的权限,这取决于在数据存储中注册的凭据。

有关数据存储以及如何在机器学习中使用数据存储的详细信息,请参阅以下文章:

按名称获取数据存储。 此调用将向数据存储服务发出请求。

继承
builtins.object
Datastore

构造函数

Datastore(workspace, name=None)

参数

名称 说明
workspace
必需

工作区。

name
str, <xref:optional>

数据存储的名称默认为 None,这将获取默认数据存储。

默认值: None

注解

若要与数据存储中的数据进行交互以进行机器学习任务(例如训练),请创建一个 Azure 机器学习数据集。 数据集提供了将表格数据加载到 pandas 或 Spark DataFrame 的函数。 数据集还提供从 Azure Blob 存储、Azure 文件存储、Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2、Azure SQL 数据库和 Azure Database for PostgreSQL 下载或装载任何格式的文件的功能。 详细了解如何使用数据集进行训练

下面的示例演示如何创建连接到 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")

完整示例可从 https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-data-transfer.ipynb 获取

方法

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 提交的作业中使用。提交以进行数据访问身份验证。 在此处了解更多信息

register_azure_data_lake

初始化新的 Azure Data Lake 数据存储。

支持基于 (GA) 和基于标识的 (预览版) 数据访问,可以在服务主体中注册数据存储,进行基于凭据的数据访问。 如果数据存储没有保存凭据,那么如果用户的 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 提交的作业中使用。提交以进行数据访问身份验证。 在此处了解更多信息

请参阅下面的示例,了解如何将 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
register_azure_data_lake_gen2

初始化新的 Azure Data Lake Gen2 数据存储。

支持基于 (GA) 和基于标识的 (预览版) 数据访问,可以在服务主体中注册数据存储,进行基于凭据的数据访问。 如果数据存储没有保存凭据,那么如果用户的 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 提交的作业中使用。提交以进行数据访问身份验证。 在此处了解更多信息

register_azure_file_share

向数据存储注册 Azure 文件共享。

可以选择使用 SAS 令牌或存储帐户密钥

register_azure_my_sql

初始化新的 Azure MySQL 数据存储。

在 Azure 机器学习管道中,MySQL 数据存储只能用于创建 DataReference 作为 DataTransferStep 的输入和输出。 此处提供了更多详细信息。

请参阅下面的示例,了解如何将 Azure MySQL 数据库注册为数据存储。

register_azure_postgre_sql

初始化新的 Azure PostgreSQL 数据存储。

请参阅下面的示例,了解如何将 Azure PostgreSQL 数据库注册为数据存储。

register_azure_sql_database

初始化新的 Azure SQL 数据库数据存储。

支持基于凭据 (GA) 和基于标识 (预览版) 的数据访问,可以选择使用服务主体或用户名 + 密码。 如果数据存储没有保存凭据,那么如果用户的 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 提交的作业中使用。提交以进行数据访问身份验证。 在此处了解更多信息

请参阅下面的示例,了解如何将 Azure SQL 数据库注册为数据存储。

register_dbfs

初始化新的 Databricks 文件系统 (DBFS) 数据存储。

在 Azure 机器学习管道中,DBFS 数据存储只能用于创建 DataReference 作为 DatabricksStep 的输入和 PipelineData 作为其输出。 此处提供了更多详细信息

register_hdfs

注意

这是一个实验性的方法,可能会在任何时候更改。 有关详细信息,请参阅 https://aka.ms/azuremlexperimental

初始化新的 HDFS 数据存储。

set_as_default

设置默认数据存储。

unregister

取消注册数据存储。 不会删除基础存储服务。

get

按名称获取数据存储。 这与调用构造函数相同。

static get(workspace, datastore_name)

参数

名称 说明
workspace
必需

工作区。

datastore_name
必需
str, <xref:optional>

数据存储的名称默认为 None,这将获取默认数据存储。

返回

类型 说明

该名称的相应数据存储。

get_default

获取工作区的默认数据存储。

static get_default(workspace)

参数

名称 说明
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 提交的作业中使用。提交以进行数据访问身份验证。 在此处了解更多信息

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)

参数

名称 说明
workspace
必需

工作区。

datastore_name
必需
str

数据存储的名称(不区分大小写)只能包含字母数字字符和 _。

container_name
必需
str

Azure blob 容器的名称。

account_name
必需
str

存储帐户名称。

sas_token
str, <xref:optional>

帐户 SAS 令牌默认为 None。 对于数据读取,我们至少需要容器 & 对象的“列表 & 读取”权限;对于数据写入,还需要“写入 & 添加”权限。

默认值: None
account_key
str, <xref:optional>

存储帐户的访问密钥默认为 None。

默认值: None
protocol
str, <xref:optional>

用于连接到 blob 容器的协议。 如果为 None,则默认为 https。

默认值: None
endpoint
str, <xref:optional>

存储帐户的终结点。 如果为 None,则默认为 core.windows.net。

默认值: None
overwrite
bool, <xref:optional>

覆盖现有数据存储。 如果数据存储不存在,它将创建一个,默认为 False

默认值: False
create_if_not_exists
bool, <xref:optional>

如果不存在 blob 容器,则创建该容器,默认为 False

默认值: False
skip_validation
bool, <xref:optional>

跳过存储密钥的验证,默认为 False

默认值: False
blob_cache_timeout
int, <xref:optional>

装载此 Blob 时,将缓存超时设置为此秒数。 如果为 None,则默认为无超时(即,读取时 blob 将在作业持续时间期间被缓存)。

默认值: None
grant_workspace_access
bool, <xref:optional>

默认为 False。 将其设置为 True 以从机器学习工作室访问虚拟网络后面的数据。这使机器学习工作室的数据访问使用工作区托管标识进行身份验证,并将工作区托管标识添加为存储的读者。 你必须是存储的所有者或用户访问管理员才能选择加入。 如果没有所需的权限,请要求管理员进行配置。 了解详细信息:https://docs.microsoft.com/azure/machine-learning/how-to-enable-studio-virtual-network

默认值: False
subscription_id
str, <xref:optional>

存储帐户的订阅 ID 默认为 None。

默认值: None
resource_group
str, <xref:optional>

存储帐户的资源组默认为 None。

默认值: None

返回

类型 说明

Blob 数据存储。

注解

若要从不同于工作区区域的区域附加存储,可能会导致更高的延迟和额外的网络使用成本。

register_azure_data_lake

初始化新的 Azure Data Lake 数据存储。

支持基于 (GA) 和基于标识的 (预览版) 数据访问,可以在服务主体中注册数据存储,进行基于凭据的数据访问。 如果数据存储没有保存凭据,那么如果用户的 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 提交的作业中使用。提交以进行数据访问身份验证。 在此处了解更多信息

请参阅下面的示例,了解如何将 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)

参数

名称 说明
workspace
必需

此数据存储所属的工作区。

datastore_name
必需
str

数据存储名称。

store_name
必需
str

ADLS 存储名称。

tenant_id
str, <xref:optional>

用于访问数据的服务主体的目录 ID/租户 ID。

默认值: None
client_id
str, <xref:optional>

用于访问数据的服务主体的客户端 ID/应用程序 ID。

默认值: None
client_secret
str, <xref:optional>

用于访问数据的服务主体的客户端密码。

默认值: None
resource_url
str, <xref:optional>

确定将在 Data Lake Store 上执行哪些操作的资源 URL,如果为 None,则默认为 https://datalake.azure.net/,这允许我们执行文件系统操作。

默认值: None
authority_url
str, <xref:optional>

用于对用户进行身份验证的颁发机构 URL,默认为 https://login.microsoftonline.com

默认值: None
subscription_id
str, <xref:optional>

ADLS 存储所属的订阅 ID。

默认值: None
resource_group
str, <xref:optional>

ADLS 存储所属的资源组。

默认值: None
overwrite
bool, <xref:optional>

是否覆盖现有数据存储。 如果数据存储不存在,它将创建一个。 默认值为 False。

默认值: False
grant_workspace_access
bool, <xref:optional>

默认为 False。 将其设置为 True 以从机器学习工作室访问虚拟网络后面的数据。这使机器学习工作室的数据访问使用工作区托管标识进行身份验证,并将工作区托管标识添加为存储的读者。 你必须是存储的所有者或用户访问管理员才能选择加入。 如果没有所需的权限,请要求管理员进行配置。 了解详细信息:https://docs.microsoft.com/azure/machine-learning/how-to-enable-studio-virtual-network

默认值: False

返回

类型 说明

返回 Azure Data Lake 数据存储。

注解

若要从不同于工作区区域的区域附加存储,可能会导致更高的延迟和额外的网络使用成本。

注意

Azure Data Lake 数据存储支持使用 Azure 机器学习管道进行数据传输和运行 U-Sql 作业。

还可以将它用作 Azure 机器学习数据集的数据源,可以在任何受支持的计算上下载或装载。

register_azure_data_lake_gen2

初始化新的 Azure Data Lake Gen2 数据存储。

支持基于 (GA) 和基于标识的 (预览版) 数据访问,可以在服务主体中注册数据存储,进行基于凭据的数据访问。 如果数据存储没有保存凭据,那么如果用户的 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 提交的作业中使用。提交以进行数据访问身份验证。 在此处了解更多信息

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)

参数

名称 说明
workspace
必需

此数据存储所属的工作区。

datastore_name
必需
str

数据存储名称。

filesystem
必需
str

Data Lake Gen2 文件系统的名称。

account_name
必需
str

存储帐户名称。

tenant_id
str, <xref:optional>

服务主体的目录 ID/租户 ID。

默认值: None
client_id
str, <xref:optional>

服务主体的客户端 ID/应用程序 ID。

默认值: None
client_secret
str, <xref:optional>

服务主体的机密。

默认值: None
resource_url
str, <xref:optional>

确定将在 Data Lake Store 上执行哪些操作的资源 URL,默认为 https://storage.azure.com/,这允许我们执行文件系统操作。

默认值: None
authority_url
str, <xref:optional>

用于对用户进行身份验证的颁发机构 URL,默认为 https://login.microsoftonline.com

默认值: None
protocol
str, <xref:optional>

用于连接到 blob 容器的协议。 如果为 None,则默认为 https。

默认值: None
endpoint
str, <xref:optional>

存储帐户的终结点。 如果为 None,则默认为 core.windows.net。

默认值: None
overwrite
bool, <xref:optional>

是否覆盖现有数据存储。 如果数据存储不存在,它将创建一个。 默认值为 False。

默认值: False
subscription_id
str, <xref:optional>

ADLS 存储所属的订阅 ID。

默认值: None
resource_group
str, <xref:optional>

ADLS 存储所属的资源组。

默认值: None
grant_workspace_access
bool, <xref:optional>

默认为 False。 将其设置为 True 以从机器学习工作室访问虚拟网络后面的数据。这使机器学习工作室的数据访问使用工作区托管标识进行身份验证,并将工作区托管标识添加为存储的读者。 你必须是存储的所有者或用户访问管理员才能选择加入。 如果没有所需的权限,请要求管理员进行配置。 了解详细信息:https://docs.microsoft.com/azure/machine-learning/how-to-enable-studio-virtual-network

默认值: False

返回

类型 说明

返回 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)

参数

名称 说明
workspace
必需

此数据存储所属的工作区。

datastore_name
必需
str

数据存储的名称(不区分大小写)只能包含字母数字字符和 _。

file_share_name
必需
str

Azure 文件容器的名称。

account_name
必需
str

存储帐户名称。

sas_token
str, <xref:optional>

帐户 SAS 令牌默认为 None。 对于数据读取,我们需要对容器 & 对象的最低列表 & 读取权限,对于数据写入,还需要写入 & 添加权限。

默认值: None
account_key
str, <xref:optional>

存储帐户的访问密钥默认为 None。

默认值: None
protocol
str, <xref:optional>

用于连接到文件共享的协议。 如果为 None,则默认为 https。

默认值: None
endpoint
str, <xref:optional>

文件共享的终结点。 如果为 None,则默认为 core.windows.net。

默认值: None
overwrite
bool, <xref:optional>

是否覆盖现有数据存储。 如果数据存储不存在,它将创建一个。 默认值为 False。

默认值: False
create_if_not_exists
bool, <xref:optional>

如果文件共享不存在,是否创建该文件共享。 默认值为 False。

默认值: False
skip_validation
bool, <xref:optional>

是否跳过存储密钥验证。 默认值为 False。

默认值: False

返回

类型 说明

文件数据存储。

注解

若要从不同于工作区区域的区域附加存储,可能会导致更高的延迟和额外的网络使用成本。

register_azure_my_sql

初始化新的 Azure MySQL 数据存储。

在 Azure 机器学习管道中,MySQL 数据存储只能用于创建 DataReference 作为 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)

参数

名称 说明
workspace
必需

此数据存储所属的工作区。

datastore_name
必需
str

数据存储名称。

server_name
必需
str

MySQL 服务器名称。

database_name
必需
str

MySQL 数据库的名称。

user_id
必需
str

MySQL 服务器的用户 ID。

user_password
必需
str

MySQL 服务器的用户密码。

port_number
str

MySQL 服务器的端口号。

默认值: None
endpoint
str, <xref:optional>

MySQL 服务器的终结点。 如果为 None,则默认为 mysql.database.azure.com。

默认值: None
overwrite
bool, <xref:optional>

是否覆盖现有数据存储。 如果数据存储不存在,它将创建一个。 默认值为 False。

默认值: False

返回

类型 说明

返回 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)

参数

名称 说明
workspace
必需

此数据存储所属的工作区。

datastore_name
必需
str

数据存储名称。

server_name
必需
str

PostgreSQL 服务器名称。

database_name
必需
str

PostgreSQL 数据库名称。

user_id
必需
str

PostgreSQL 服务器的用户 ID。

user_password
必需
str

PostgreSQL 服务器的用户密码。

port_number
str

PostgreSQL 服务器的端口号

默认值: None
endpoint
str, <xref:optional>

PostgreSQL 服务器的终结点。 如果为 None,则默认为 postgres.database.azure.com。

默认值: None
overwrite
bool, <xref:optional>

是否覆盖现有数据存储。 如果数据存储不存在,它将创建一个。 默认值为 False。

默认值: False
enforce_ssl

指示 PostgreSQL 服务器的 SSL 要求。 默认为 True。

默认值: True

返回

类型 说明

返回 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) 和基于标识 (预览版) 的数据访问,可以选择使用服务主体或用户名 + 密码。 如果数据存储没有保存凭据,那么如果用户的 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 提交的作业中使用。提交以进行数据访问身份验证。 在此处了解更多信息

请参阅下面的示例,了解如何将 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)

参数

名称 说明
workspace
必需

此数据存储所属的工作区。

datastore_name
必需
str

数据存储名称。

server_name
必需
str

SQL 服务器名称。 对于完全限定的域名(如“sample.database.windows.net”),server_name 值应为“sample”,终结点值应为“database.windows.net”。

database_name
必需
str

SQL 数据库名称。

tenant_id
str

服务主体的目录 ID/租户 ID。

默认值: None
client_id
str

服务主体的客户端 ID/应用程序 ID。

默认值: None
client_secret
str

服务主体的机密。

默认值: None
resource_url
str, <xref:optional>

确定将在 SQL 数据库存储上执行哪些操作的资源 URL,如果是 None,则默认为 https://database.windows.net/

默认值: None
authority_url
str, <xref:optional>

用于对用户进行身份验证的颁发机构 URL,默认为 https://login.microsoftonline.com

默认值: None
endpoint
str, <xref:optional>

SQL 服务器的终结点。 如果没有,则默认为 database.windows.net。

默认值: None
overwrite
bool, <xref:optional>

是否覆盖现有数据存储。 如果数据存储不存在,它将创建一个。 默认值为 False。

默认值: False
username
str

数据库用户用于访问数据库的用户名。

默认值: None
password
str

数据库用户用于访问数据库的密码。

默认值: None
skip_validation
必需
bool, <xref:optional>

是否跳过连接到 SQL 数据库的验证。 默认为 False。

subscription_id
str, <xref:optional>

ADLS 存储所属的订阅 ID。

默认值: None
resource_group
str, <xref:optional>

ADLS 存储所属的资源组。

默认值: None
grant_workspace_access
bool, <xref:optional>

默认为 False。 将其设置为 True 以从机器学习工作室访问虚拟网络后面的数据。这使机器学习工作室的数据访问使用工作区托管标识进行身份验证,并将工作区托管标识添加为存储的读者。 你必须是存储的所有者或用户访问管理员才能选择加入。 如果没有所需的权限,请要求管理员进行配置。 了解详细信息:https://docs.microsoft.com/azure/machine-learning/how-to-enable-studio-virtual-network

默认值: False

返回

类型 说明

返回 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

初始化新的 Databricks 文件系统 (DBFS) 数据存储。

在 Azure 机器学习管道中,DBFS 数据存储只能用于创建 DataReference 作为 DatabricksStep 的输入和 PipelineData 作为其输出。 此处提供了更多详细信息

static register_dbfs(workspace, datastore_name)

参数

名称 说明
workspace
必需

此数据存储所属的工作区。

datastore_name
必需
str

数据存储名称。

返回

类型 说明

返回 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)

参数

名称 说明
workspace
必需

此数据存储所属的工作区

datastore_name
必需
str

数据存储名称

protocol
必需
str 或 <xref:_restclient.models.enum>

与 HDFS 群集通信时要使用的协议。 http 或 https。 可能的值包括:“http”、“https”

namenode_address
必需
str

HDFS namenode 的 IP 地址或 DNS 主机名。 选择性地包含端口。

hdfs_server_certificate
必需
str, <xref:optional>

HDFS namenode 的 TLS 签名证书路径(如果将 TLS 与自签名证书配合使用)。

kerberos_realm
必需
str

Kerberos 领域。

kerberos_kdc_address
必需
str

Kerberos KDC 的 IP 地址或 DNS 主机名。

kerberos_principal
必需
str

用于身份验证和授权的 Kerberos 主体。

kerberos_keytab
必需
str, <xref:optional>

密钥表文件的路径(该文件包含与 Kerberos 主体对应的密钥) 提供此路径或密码。

kerberos_password
必需
str, <xref:optional>

与 Kerberos 主体对应的密码。 提供此密码或密钥表文件的路径。

overwrite
必需
bool, <xref:optional>

覆盖现有数据存储。 如果数据存储不存在,它将创建一个。 默认为 False。

set_as_default

设置默认数据存储。

set_as_default()

参数

名称 说明
datastore_name
必需
str

数据存储的名称。

unregister

取消注册数据存储。 不会删除基础存储服务。

unregister()