英特尔云数据连接器
项目描述
云数据连接器
概述
云数据连接器 是一个连接到 AzureML、Azure Blob、GCP 存储和 AWS 存储S3的工具。目标是提供一个集中式云管理器,并提供易于集成的文档。
有关更多详细信息,请访问 云数据连接器 GitHub存储库。
硬件要求
硬件应符合云服务的要求。
如何使用
该软件包包含以下模块
软件包组件 |
---|
cloud_data_connector.aws |
cloud_data_connector.gcp |
cloud_data_connector.azure |
每个模块都能与其对应的云服务进行连接、下载和上传操作。
开始使用 云数据连接器
强烈建议使用虚拟环境以确保正确操作,例如
conda create -n venv python=3.10 -c conda-forge
conda activate venv
您可以使用以下方式安装软件包
python -m pip install cloud-data-connector
请遵循特定模块的文档进行用例、示例。
- cloud_data_connector/azure/README.md
- cloud_data_connector/azure/AzureML.md
- cloud_data_connector/aws/README.md
- cloud_data_connector/gcp/README.md
开始使用 云数据连接器 Azure
摘要
英特尔(Intel)的云数据连接器 AzureML工具允许用户遵循简单的流程在本地进行模型训练,并将上传任务上传到AzureML,配置作业、工作流、上传模型或训练脚本。Azure的数据连接器是一个连接到Azure Blob和Azure机器学习工具的工具。
要求
此工具需要Azure云账户和一个活跃的Azure ML工作空间。
- Azure账户
- 访问AzureML
- 创建Azure ML工作空间
- 获取配置文件
身份验证
使用Azure进行身份验证需要安装Azure CLI
>az login
此命令加载证书以使用简单身份验证方法登录。
存储
所有Azure ML工作空间都有一个存储blob,使用此工具可以连接到Azure Blob或Azure ML存储。
Azure ML
Azure ML是一种连接数据源并使用Azure基础设施在生产中部署模型以进行模型训练的服务。
数据连接器提供了一种连接到Azure ML工作空间并上传配置文件的工具。
示例
blob连接器
from cloud_data_connector.azure import connect
connection_string_sample = """
DefaultEndpointsProtocol=http;
AccountName=<YOUR_ACCOUNT_NAME>;
AccountKey=<YOUR_ACCOUNT_KEY>;
BlobEndpoint=http://127.0.0.1:10000/
devstoreaccount1;
QueueEndpoint=http://127.0.0.1:10001/
devstoreaccount1;
TableEndpoint=http://127.0.0.1:10002/
devstoreaccount1;
"""
connector = connect(connection_string=connection_string_sample)
如何获取连接字符串?
您也可以使用Azure CLI获取连接字符串
>az storage account show-connection-string --name <storageAccount> --resource-group <resourceGroup> --subscription <subscription>
或者
>az storage account show-connection-string --name <storageAccount>
- 此过程在WSL中不适用
blob上传
from cloud_data_connector.azure import Uploader
uploader = Uploader(connector= connector)
uploader.upload(
'sample.txt',
blob_container_name='sample_container'
)
blob下载器
from cloud_data_connector.azure import Downloader
downloader = Downloader(connector=connector)
downloader.download()
开始使用云数据连接器 AWS
云数据连接器 AWS S3
云数据连接器AWS S3允许您连接到S3存储桶并列出内容,下载和上传文件。
访问S3存储桶
要访问S3存储桶,您需要注册AWS账户并创建访问密钥。
访问密钥由访问密钥ID和秘密访问密钥组成,用于签名您对AWS发出的程序性请求。
如何获取您的访问密钥ID和秘密访问密钥
- 在https://console.aws.amazon.com/iam/上打开IAM控制台。
- 在导航菜单中,选择“用户”。
- 选择您的IAM用户名。
- 打开“安全凭证”选项卡,然后选择“创建访问密钥”。
- 要查看新的访问密钥,请选择“显示”。您的凭证如下
- 访问密钥ID:my_access_key
- 秘密访问密钥:my_secret_key
使用环境变量为AWS账户配置设置
您必须使用环境变量配置您的AWS凭证。
默认情况下,您需要以下环境变量。
- AWS_ACCESS_KEY_ID:您的AWS账户的访问密钥。
- AWS_SECRET_ACCESS_KEY:您的AWS账户的秘密密钥。
您可以在此处添加更多配置设置。例如,您可以设置AWS_SESSION_TOKEN
,仅在您使用临时凭证时需要。
用法
您需要导入DataConnector类。
from cloud_data_connector.aws.connector import Connector
连接器类有一个connect()方法,它创建一个AWS S3对象,默认情况下,此函数将使用您环境中保存的凭证创建S3连接器。
connector = Connector()
调用connect()方法,这将返回一个S3的连接对象。
conection_object = connector.connect()
导入Downloader类并使用connect()函数返回的连接对象。
from cloud_data_connector.aws.downloader import Downloader
downloader = Downloader(conection_object)
Downloader类有两个方法
- list_blobs(container_obj):获取存储桶中对象列表的函数。
- download(container_obj, data_file, destiny):从S3存储桶中下载文件的函数。
使用list_blobs(container_obj)
方法列出存储桶的内容是第一步。指定以下参数。
- container_obj:要列出的存储桶名称。
from cloud_data_connector.aws.downloader import Downloader
downloader = Downloader(conection_object)
list_blobs = downloader.list_blobs('MY_BUCKET_NAME')
print(list_blobs)
要下载文件,请使用download(container_obj, data_file, destiny)
方法,并指定以下参数。
- container_obj:要从中下载的存储桶名称。
- data_file:要从中下载的文件名称。
- destiny:要下载到的文件路径。
from cloud_data_connector.aws.downloader import Downloader
downloader = Downloader(conection_object)
file_name = "path/to_file.csv"
downloader.download(bucket_name, file_name, 'path/to_destiny.csv')
您可以通过导入 Uploader 类并使用 upload 方法将文件从本地机器发送到存储桶。您需要将连接器对象添加到 Uploader 构造函数中。
from cloud_data_connector.aws.uploader import Uploader
from cloud_data_connector.aws.connector import Connector
connector = Connector()
conection_object = connector.connect()
uploader = Uploader(conection_object)
指定 upload 函数中的下一个参数。
- container_obj:上传到的存储桶名称。
- data_file:要上传的文件路径。
- object_name:要上传的文件名称。
from cloud_data_connector.aws.uploader import Uploader
uploader = Uploader(conection_object)
uploader.upload(bucket_name, 'path/to_local_file.csv', 'path/to_object_name.csv')
列出存储桶中的对象
# import the dataconnector package
from cloud_data_connector.aws.connector import Connector
from cloud_data_connector.aws.downloader import Downloader
# specify a S3 bucket name
bucket_name = 'MY_BUCKET_NAME'
# create a connector
connector = Connector()
# connect to aws using default AWS access keys
# connect() method uses the configurations settings for AWS account
conection_object = connector.connect()
# list files from bucket
# create a downloader to list files
downloader = Downloader(conection_object)
# use the list_blobs function
list_blobs = downloader.list_blobs(bucket_name)
# list_blobs functions returns all objects in bucket
print(list_blobs)
下载文件
# import the dataconnector package
from cloud_data_connector.aws.connector import Connector
from cloud_data_connector.aws.downloader import Downloader
# specify a S3 bucket name
bucket_name = 'MY_BUCKET_NAME'
# create a connector
connector = Connector()
# connect to aws using default aws access keys
conection_object = connector.connect()
# download a file from bucket
# create a Downloader object using a connector object
downloader = Downloader(conection_object)
# specify the object name to download
file_name = "path/to_file.csv"
# download the object
downloader.download(bucket_name, file_name, 'path/to_destiny.csv')
上传文件
# import dataconnector package
from cloud_data_connector.aws.connector import Connector
from cloud_data_connector.aws.uploader import Uploader
# specify a S3 bucket name
bucket_name = 'MY_BUCKET_NAME'
# create a connector
connector = Connector()
# connect to aws using default aws access keys
conection_object = connector.connect()
# Upload a file
# create a uploader object using a connection object
uploader = Uploader(conection_object)
# upload a file
uploader.upload(bucket_name, 'path/to_local_file.csv', 'path/to_object_name.csv')
开始使用 Cloud Data Connector GCP
GCP 权限
要启用 GCP 中的权限以使用存储和 BigQuery,从左侧导航菜单中,在 Google Cloud 内,转到 "APIs & Services > Library" 并搜索并启用
- 云存储
- Google Cloud Storage JSON API
- BigQuery API
您需要一个认证工具:OAuth 或服务帐户之一
OAuth
要启用 OAuth2,从左侧导航菜单转到 "APIs & Services > Credentials" 并选择 "+ CREATE CREDENTIALS"。从三个可用选项中选择 "OAuth client ID"。在创建 ID 时,必须提供 "Application type" 和名称,在此情况下选择 "Application type" 中的 "Desktop app" 并输入您喜欢的名称。一旦创建 ID,将弹出一个窗口显示 Client ID 和 Secret;选择 "DOWNLOAD JSON" 并将 JSON 文件存储在安全的地方。
服务帐户
要启用服务帐户,从左侧导航菜单转到 "APIs & Services > Credentials" 并选择 "+ CREATE CREDENTIALS"。从三个可用选项中选择 "Service account"。在 "Service account details" 中提供服务帐户名称和 ID,并选择 "CREATE AND CONTINUE"。在 "Grant this service account access to project" 中选择角色:"Cloud Storage > Storage Admin" 和 "BigQuery > BigQuery Admin"。定义角色后,按 "Done"。通过选择 "Service Accounts" 中的服务电子邮件选择创建的服务帐户,转到 "KEYS",从那里您可以为此帐户创建一个新密钥(它将提供 JSON 文件)。
安装到 Docker 容器中
要在 Docker 容器中运行数据连接器,请执行以下命令,并根据需要更改选项
docker run -it --name <container_name> --net=host -v <path to frameworks.ai.models.intel-mode.data-connector>:/workspace/model-zoo --env HTTPS_PROXY=$HTTPS_PROXY --env no_proxy=$no_proxy --env HTTP_PROXY=$HTTP_PROXY --env http_proxy=$http_proxy --entrypoint bash conda/miniconda3:latest
在 Docker 容器内部设置源以激活 conda
source /usr/local/bin/activate
要安装 requirements.txt 文件,首先必须创建 conda 环境
conda create -n cloud_data_connector python=3.9 -y && \
conda activate cloud_data_connector
要运行连接器的 GCP 部分,必须安装 GCP CLI。在容器内部运行以下命令是安装 CLI 存储库的简单方法
apt-get update && \
apt-get install apt-transport-https ca-certificates gnupg curl gpg -y && \
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - && apt-get update -y && apt-get install google-cloud-cli -y
如果不支持 apt-key 命令,请使用以下命令代替
apt-get update && \
apt-get install apt-transport-https ca-certificates gnupg curl gpg -y && \
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | tee /usr/share/keyrings/cloud.google.gpg && apt-get update -y && apt-get install google-cloud-sdk -y
要初始化 CLI,您必须有一个 GCP 帐户。运行以下命令,接受登录请求,在网页浏览器中打开提供的链接
gcloud init
一旦进入浏览器,GCP 将要求访问帐户的权限;允许权限并将提供的验证码复制到 gcloud CLI 中。在提供验证码时,选择所需的云项目。
要为库提供对 OAuth 的访问权限,请运行
gcloud auth application-default login
在网页浏览器中打开提供的链接。GCP 将要求访问帐户的权限;允许权限并将提供的验证码复制到 gcloud CLI 中。
转到 cloud_data_connector 目录,升级 pip 包并安装 requirements.txt
cd /workspace/model-zoo/cloud_data_connector
pip install --upgrade pip wheel setuptools
pip install -r cloud_data_connector/gcp/requirements.txt
运行代码示例
要在容器和 VS code 中运行代码片段,必须将 OAuth 要使用的端口添加到已转发端口列表中。打开 OUTPUT 终端(Ctrl + Shift + U),转到 PORTS 并选择 "Add Port"。
为了提供在Google Cloud中获得的OAuth JSON密钥,必须将文件内容分配给“CLIENT_SECRETS”环境变量。它还可以从包含变量的“.env”文件中获取。要从“.env”文件中使用,需要安装“python-dotenv”,并且文件必须位于“load_dotenv()”可以找到的位置。dotenv可以在执行脚本的目录中找到“.env”文件,例如,对于下面提供的示例,可以将“.env”文件添加到<base_path_to_model_zoo>/cloud_data_connector/cloud_data_connector/samples/gcp/
目录中。
pip install python-dotenv
为了提供为服务帐户获得的JSON密钥,如果要通过服务帐户访问存储或BigCloud,必须提供样本脚本的文件路径。
为了测试GCP存储,必须创建一个存储桶。转到“云存储 > 存储桶”,然后选择“创建”。在那里,您需要提供创建存储桶的几个选项(例如,存储桶的名称将命名为“dataconnector_data_bucket”),对于下面的示例,可以使用默认值。
要测试GCP存储,有一个位于<base_path_to_model_zoo>/cloud_data_connector/cloud_data_connector/samples/gcp/storage.py
的脚本。要从OAuth数据连接器的基路径运行它。
python -m samples.gcp.storage -o
对于服务帐户
python -m samples.gcp.storage -p <project_name> -c <credentials_path>
用户必须使用标志(-p)提供项目名称,并使用标志(-c)提供凭据的JSON文件的本地路径。
要测试GCP BigQuery,有一个位于<base_path_to_model_zoo>/cloud_data_connector/cloud_data_connector/samples/gcp/bigquery.py
的脚本。要从OAuth数据连接器的基路径运行它。
python -m samples.gcp.bigquery -o
对于服务帐户
python -m samples.gcp.bigquery -p <project_name> -c <credentials_path>
用户必须使用标志(-p)提供项目名称,并使用标志(-c)提供凭据的JSON文件的本地路径。
支持
如果您对此包有任何问题或问题,请联系支持团队。Cloud Data Connector拥有Apache许可证,如LICENSE文件所示。高于当前实施版本的依赖项处于beta测试阶段,应谨慎使用。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
cloud_data_connector-1.0.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d077bc4cc034cb0ff19eab7968de19cbbbdb62eea6387b41664645a6c05fc156 |
|
MD5 | b0ec6d1f915333856aadb06aa57c52bb |
|
BLAKE2b-256 | 4705fa84e2300f5aec94fb166f3efebfa62cbb754970b311a23dd076df57cba4 |
cloud_data_connector-1.0.3-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 60245d3651b5ef83428bb1fcff36ed5fc68c71192ab831bc1878a76a1198335a |
|
MD5 | 6ffe09ea1b76b4ade4440bb72a02fb0d |
|
BLAKE2b-256 | 7a4757553306bbf8ccdb1ccdeba24625731e7446417dc01880a9bac2efce8867 |