Datastore 类

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

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

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

  • Azure Blob 容器

  • Azure 文件共享

  • Azure Data Lake

  • Azure Data Lake Gen2

  • Azure SQL 数据库

  • 适用于 PostgreSQL 的 Azure 数据库

  • Databricks 文件系统

  • 适用于 MySQL 的 Azure 数据库

使用此类执行管理作,包括注册、列出、获取和删除数据存储。 使用此类的方法创建 register* 每个服务的数据存储。 使用数据存储访问数据时,必须有权访问该数据,具体取决于向数据存储注册的凭据。

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

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

构造函数

Datastore(workspace, name=None)

参数

名称 说明
workspace
必需

工作区。

name
str, <xref:optional>

数据存储的名称默认为 None,后者获取默认数据存储。

默认值: None

注解

若要与数据存储中的数据进行交互以执行机器学习任务(例如训练), 请创建 Azure 机器学习数据集。 数据集提供将表格数据加载到 pandas 或 Spark 数据帧中的函数。 数据集还可以从 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 令牌直接调用以下函数之一,则用户 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)和基于标识(预览版)的数据访问,可以将数据存储注册到服务主体,以便进行基于凭据的数据访问。 如果数据存储中未保存任何凭据,则如果用户的 AAD 令牌直接调用以下函数之一,则用户 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
register_azure_data_lake_gen2

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

支持基于凭据(GA)和基于标识(预览版)的数据访问,可以将数据存储注册到服务主体,以便进行基于凭据的数据访问。 如果数据存储中未保存任何凭据,则如果用户的 AAD 令牌直接调用以下函数之一,则用户 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 数据存储只能用于在 Azure 机器学习管道中创建 DataReference 作为 DataTransferStep 的输入和输出。 可在此处找到更多详细信息

有关如何将 Azure MySQL 数据库注册为数据存储的示例,请参阅下文。

register_azure_postgre_sql

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

有关如何将 Azure PostgreSQL 数据库注册为数据存储的示例,请参阅下文。

register_azure_sql_database

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

支持基于凭据(GA)和基于标识(预览版)的数据访问,可以选择使用服务主体或用户名 + 密码。 如果数据存储中未保存任何凭据,则如果用户的 AAD 令牌直接调用以下函数之一,则用户 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

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

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

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 令牌直接调用以下函数之一,则用户 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)

参数

名称 说明
workspace
必需

工作区。

datastore_name
必需
str

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

container_name
必需
str

Azure Blob 容器的名称。

account_name
必需
str

存储帐户名称。

sas_token
str, <xref:optional>

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

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

存储帐户的访问密钥默认为“无”。

默认值: 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 容器不存在,则创建 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

返回

类型 说明

Blob 数据存储。

注解

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

register_azure_data_lake

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

支持基于凭据(GA)和基于标识(预览版)的数据访问,可以将数据存储注册到服务主体,以便进行基于凭据的数据访问。 如果数据存储中未保存任何凭据,则如果用户的 AAD 令牌直接调用以下函数之一,则用户 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)

参数

名称 说明
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>

资源 URL(确定将在 Data Lake Store 上执行哪些作(如果 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 令牌直接调用以下函数之一,则用户 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)

参数

名称 说明
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>

资源 URL(确定将在 Data Lake Store 上执行哪些作),默认 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
account_key
str, <xref:optional>

存储帐户的访问密钥默认为“无”。

默认值: 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 数据存储。

MySQL 数据存储只能用于在 Azure 机器学习管道中创建 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 令牌直接调用以下函数之一,则用户 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)

参数

名称 说明
workspace
必需

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

datastore_name
必需
str

数据存储名称。

server_name
必需
str

SQL Server 名称。 对于“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>

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

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

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

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

SQL Server 的终结点。 如果为 None,则默认为 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)数据存储。

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

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 名称节点的 IP 地址或 DNS 主机名。 (可选)包括端口。

hdfs_server_certificate
必需
str, <xref:optional>

HDFS 名称节点的 TLS 签名证书的路径(如果对自签名证书使用 TLS)。

kerberos_realm
必需
str

Kerberos 领域。

kerberos_kdc_address
必需
str

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

kerberos_principal
必需
str

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

kerberos_keytab
必需
str, <xref:optional>

keytab 文件的路径,其中包含对应于 Kerberos 主体的键(s)。 提供此密码或密码。

kerberos_password
必需
str, <xref:optional>

对应于 Kerberos 主体的密码。 提供此项或 keytab 文件的路径。

overwrite
必需
bool, <xref:optional>

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

set_as_default

设置默认数据存储。

set_as_default()

参数

名称 说明
datastore_name
必需
str

数据存储的名称。

unregister

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

unregister()