Методы копирования
Методы копирования, приведенные в этом разделе, предназначены для копирования файлов на Christofari.A100 и кластере SR.01 (CPU, V100).
Метод get_connectors
Данный метод возвращает коннекторы, относящиеся к workspace, в котором осуществляется работа.
get_connectors()
Метод create_connector
Данный метод позволяет создать коннекторы к источникам (s3custom/s3mlspace/s3amazon/s3google). Подробнее про коннекторы см. Data transfer service.
create_connector(name: str, source_type: ConnectorSourceTypeEnum, parameters: dict)
Для создания коннектора к Amazon S3, Google Cloud Storage S3, Custom S3 (для бакетов SberCloud и S3-хранилищ пользователей) нужны следующие параметры:
source_type:
s3custom/s3mlspace/s3amazon/s3google
parameters:
{
"endpoint": string | required
"bucket": string | required
"access_key_id": string | required
"security_key": string | required
}
Для создания коннектора к базам данных PostgreSQL, MySQL, MS SQL, Oracle DB нужны следующие параметры:
source_type:
mssql/mysql/oracledb/postgresql
parameters:
{
"host": string | required
"port": integer | minimum: 1 | exclusiveMaximum: 65536 | required
"user": string | required
"password": string | required
"database": string | required
"schema": string
"query": string
}
Для создания коннектора к HDFS (Hadoop Distributed File System) нужны следующие параметры
source_type:
hdfs
parameters:
{
"host": string | required
"port": integer | minimum: 1 | exclusiveMaximum: 65536 | required
"user": string
"password": string
"namenode_principal": string
"kdc_domain": string
}
Пример создания коннектора к хранилищу s3:
client_lib.create_connector(
"my_s3_connector",
source_type=client_lib.ConnectorSourceTypeEnum.s3custom,
parameters={
"endpoint": "https://mys3endpoint",
"bucket": "b-usr-mybacket",
"access_key_id": "u-usr-mybacket-key",
"security_key": "security key",
}
)
Метод copy_to_nfs
Предназначен для копирования из S3-хранилища на NFS-хранилище кластеров.
copy_to_nfs(
source_path: str,
destination_path: str,
to_region: RegionEnum,
source_connector_id=None,
strategy: TransferStrategyEnum = TransferStrategyEnum.write_all
) -> "TransferData":
"""Copy data to NFS from connector (S3 for example).
В случае если source_connector_id
не указан, то копирование будет осуществлено из публичного бакета S3-хранилища, привязанного к workspace.
Копирование из S3-хранилища workspace в NFS-хранилище:
# will be copied from workspace s3 storage to nfs
client_lib.copy_to_nfs(
source_path="/my_test_folder",
destination_path="/",
to_region=client_lib.RegionEnum.V100,
)
Если параметр destination_path="/"
оставить без изменений, копирование будет осуществлено в каталог /home/jovyan/
.
Если копирование требуется в другой каталог, то нужно указать путь к ней /destination/directory/
.
Путь строится относительно каталога /home/jovyan/
.
Копирование из другого источника (не из S3-хранилища, связанного с workspace) на NFS:
connectors = client_lib.get_connectors()
client_lib.copy_to_nfs(
source_path="/my_test_folder",
destination_path="/",
to_region=client_lib.RegionEnum.V100,
source_connector_id=connectors[0]["id"]
)
Метод copy_from_nfs
Предназначен для копирования из NFS-хранилищ.
copy_from_nfs(
source_path: str,
destination_path: str,
from_region: RegionEnum,
destination_connector_id=None,
strategy: TransferStrategyEnum = TransferStrategyEnum.write_all,
) -> "TransferData":
"""Copy data from NFS to connector (S3 for example).
В случае если source_connector_id
не указан, то копирование будет осуществлено из NFS в публичный бакет S3-хранилища, привязанного к workspace.
Examples:
# will be copied from workspace s3 storage to nfs
client_lib.copy_from_nfs(
source_path="/my_test_folder",
destination_path="/",
from_region=client_lib.RegionEnum.V100,
)
or
connectors = client_lib.get_connectors()
client_lib.copy_from_nfs(
source_path="/my_test_folder",
destination_path="/",
from_region=client_lib.RegionEnum.V100,
destination_connector_id=connectors[0]["id"]
)