Методы копирования

Метод get_connectors

Данный метод возвращает коннекторы, относящиеся к воркспейсу, в котором осуществляется работа.

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 (для бакетов Cloud и 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-хранилища, привязанного к воркспейсу.

Копирование из S3-хранилища воркспейса в 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-хранилища, связанного с воркспейсом) на 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-хранилища, привязанного к воркспейсу.

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,
)