Managing transfer process
You have the following options:
- Get a list of transfers.
- Get detailed information about a transfer.
- Create a transfer.
- Update a transfer.
- Activate a transfer.
- Deactivate a transfer.
- Delete a transfer.
For more information about transfer states, possible operations on transfers, and existing limits, see Transfer types and lifecycles.
To move a transfer and endpoints to a different availability zone, follow this guide.
Getting a list of transfers
- Navigate to the folder dashboard
and select Yandex Data Transfer. - In the left-hand panel, select
Transfers.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
To get a list of transfers in a folder, run the following command:
yc datatransfer transfer list
Use the list API method.
Getting detailed information about a transfer
- Navigate to the folder dashboard
and select Yandex Data Transfer. - In the left-hand panel, select
Transfers. - Click the required transfer name.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
To get information about a transfer, run the following command:
yc datatransfer transfer get <transfer_ID>
You can get the transfer ID with the list of transfers in the folder.
Use the get API method and provide the transfer ID value in the transferId request parameter.
To find out the transfer ID, get a list of transfers in the folder.
Creating a transfer
-
Navigate to the folder dashboard
and select Yandex Data Transfer. -
In the left-hand panel, select
Transfers. -
Click Create transfer.
-
Select the source endpoint or create a new one.
-
Select the target endpoint or create a new one. Make sure the subnet specified for the target endpoint belongs to the same availability zone as the subnet for the source endpoint.
-
Specify the transfer parameters:
-
Name.
-
Description. This is an optional setting.
-
Transfer type:
- Snapshot: Creates a full copy of data without receiving further updates from the source.
-
Periodic snapshot: Enable to create a full copy of your data at certain time intervals.
- Period: Select a copy interval from the list. The transfer will be run regularly at the specified interval. The first run will take place as soon as the settings are saved. If you run the transfer manually, it will be run after the specified interval next time.
- Cron expression: Specify the copying schedule in cron format. All times are UTC±00:00
. - Wait for transaction completion time, in seconds: Specify the delay for completing current transactions.
-
Incremental tables: Specify the tables whose data is copied incrementally, i.e., from where the copy process stopped previously; set values for the Schema, Table, Key column, and Initial value (optional) fields. For more information, see Regular incremental copy.
Note
This is more efficient than copying entire tables but less efficient than using transfers of the Snapshot and increment type. This setting is available for PostgreSQL, ClickHouse®, and Airbyte® sources.
-
Snapshot settings → Parallel snapshot settings: Specify the number of workers and threads per worker required for parallel copy processes.
For more information on setting up workers and threads, see the recommendations for parallel copying.
- Replication: Allows you to receive data updates from the source and apply them to the target (without creating a full copy of the source data).
- Snapshot and increment: Creates a full copy of the source data and keeps it up-to-date.
-
Snapshot settings → Parallel snapshot settings: Specify the number of workers and threads per worker required for parallel copy processes.
For more information on setting up workers and threads, see the recommendations for parallel copying.
-
-
- Snapshot: Creates a full copy of data without receiving further updates from the source.
-
For billable source-target pairs at the GA stage, you can configure the amount of computing resources per VM in the Runtime environment settings section.
For the Snapshot and increment transfer type, runtime computing resources are selected separately for copying and for replication:
The following computing resource configurations are available:
- 2 vCPUs and 4 GB RAM. This is the default configuration.
- 4 vCPUs and 8 GB RAM.
- 8 vCPUs and 16 GB RAM.
The VM resource configuration determines the performance of the data transfer workers. A separate VM is allocated for each worker. For vCPU and RAM pricing policy, calculation examples, and cost optimization recommendations, see Pricing policy.
-
List of objects for transfer (optional): Specify the full path to each object to transfer. Only objects from this list will be transferred. If you have listed included tables or collections in the source endpoint settings, only objects that are on both these lists will be transfered. If you specify objects not listed among included tables or collections in the source endpoint settings, transfer activation will end with the
$table not found in sourceerror. This setting is not available for such sources as Apache Kafka®, and YDS.Enter the full name of the object. Depending on the source type, use the appropriate naming convention:
- ClickHouse®:
<database_name>.<table_path> - Greenplum®:
<schema_name>.<table_path> - MongoDB:
<database_name>.<collection_path> - MySQL®:
<database_name>.<table_path> - PostgreSQL:
<schema_name>.<table_path> - YDB: table path
- Oracle:
<schema_name>.<table_path>
If the specified object is on the excluded table or collection list in the source endpoint settings, or the object name was entered incorrectly, the transfer will end with an error. A running Replication or Snapshot and increment transfer will terminate immediately; an inactive one will terminate as soon as activated.
- ClickHouse®:
-
Data transformation (optional): Data transformation rules. This setting only appears when the source and target are of different types.
-
-
Click Create.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
To create a transfer:
-
View a description of the CLI create transfer command:
yc datatransfer transfer create --help -
Specify the transfer parameters in the create command:
yc datatransfer transfer create <transfer_name> \ --source-id=<source_endpoint_ID> \ --target-id=<target_endpoint_ID> \ --type=<transfer_type>Where:
--source-id: Source endpoint ID.--target-id: Target endpoint ID.--type: Transfer type:snapshot-only: Copy.increment-only: Replicate.snapshot-and-increment: Copy and replicate.
Note
The transfer name must be unique within the folder. It may contain Latin letters, numbers, and hyphens. The name may be up to 63 characters long.
With Terraform
Terraform is distributed under the Business Source License
For more information about the provider resources, see the relevant documentation on the Terraform
If you do not have Terraform yet, install it and configure the Yandex Cloud provider.
To create a transfer:
-
Create a configuration file with a description of your transfer.
Here is an example of the configuration file structure:
resource "yandex_datatransfer_transfer" "<transer_name_in_Terraform>" { folder_id = "<folder_ID>" name = "<transfer_name>" description = "<transfer_description>" source_id = "<source_endpoint_ID>" target_id = "<target_endpoint_ID>" type = "<transfer_type>" }Where:
-
type: Transfer type. The possible values are:SNAPSHOT_ONLY: Copying.INCREMENT_ONLY: Replication.SNAPSHOT_AND_INCREMENT: Copying and replication.
The
INCREMENT_ONLYandSNAPSHOT_AND_INCREMENTtransfers will activate and run automatically upon creation. -
To activate a
SNAPSHOT_ONLYtransfer once it is created:-
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the
yc config set folder-id <folder_ID>command. You can also set a different folder for any specific command using the--folder-nameor--folder-idparameter. -
Add the
provisioner "local-exec"section with the following transfer activation command to the configuration file:provisioner "local-exec" { command = "yc --profile <profile> datatransfer transfer activate ${yandex_datatransfer_transfer.<transfer_Terraform_resource_name>.id}" }In this case, copying will only take place once at the time of transfer creation.
-
-
To specify runtime environment settings for a
SNAPSHOT_ONLYtransfer, add theruntimesection to the resource description:resource "yandex_datatransfer_transfer" "<transer_name_in_Terraform>" { ... runtime { yc_runtime { job_count = <number_of_workers> upload_shard_params { job_count = <number_of_workers> process_count = <number_of_streams> } } } ... }Where:
-
job_count: Number of workers running in parallel. -
upload_shard_params: Parallel copying settings.job_count: Number of workers.process_count: Number of threads within each worker.
-
-
To specify runtime environment settings for an
INCREMENT_ONLYtransfer, add thereplication_runtimesection to the resource description:resource "yandex_datatransfer_transfer" "<transer_name_in_Terraform>" { ... replication_runtime { yc_runtime { job_count = <number_of_workers> upload_shard_params { job_count = <number_of_workers> process_count = <number_of_streams> } } } ... } -
To specify runtime environment settings for a
SNAPSHOT_AND_INCREMENTtransfer, add theruntimeandreplication_runtimesections to the resource description:resource "yandex_datatransfer_transfer" "<transer_name_in_Terraform>" { ... runtime { yc_runtime { job_count = <number_of_workers> upload_shard_params { job_count = <number_of_workers> process_count = <number_of_streams> } } } replication_runtime { yc_runtime { job_count = <number_of_workers> upload_shard_params { job_count = <number_of_workers> process_count = <number_of_streams> } } } ... }Where:
runtime: Runtime environment settings for a copyng transfer.replication_runtime: Runtime environment settings for a replication transfer.
-
-
Make sure the settings are correct.
-
In the command line, navigate to the directory that contains the current Terraform configuration files defining the infrastructure.
-
Run this command:
terraform validateTerraform will show any errors found in your configuration files.
-
-
Confirm updating the resources.
-
Run this command to view the planned changes:
terraform planIf you described the configuration correctly, the terminal will display a list of the resources to update and their parameters. This is a verification step that does not apply changes to your resources.
-
If everything looks correct, apply the changes:
-
Run this command:
terraform apply -
Confirm updating the resources.
-
Wait for the operation to complete.
-
-
For more information, see this Terraform provider guide.
Use the Transfer.Create REST API method and provide the following in the request:
-
ID of the folder where the transfer should be placed, in the
folderIdparameter. -
Transfer name in the
nameparameter. -
Source endpoint ID in the
sourceIdparameter. -
Target endpoint ID in the
targetIdparameter. -
Transfer type in the
typeparameter. The possible values are:SNAPSHOT_ONLY: Copying.INCREMENT_ONLY: Replication.SNAPSHOT_AND_INCREMENT: Copying and replication.
-
Runtime environment settings:
-
For the
SNAPSHOT_ONLYtransfer type, in theruntimeobject. -
For the
INCREMENT_ONLYtransfer type, in thereplicationRuntimeobject. -
For the
SNAPSHOT_AND_INCREMENTtransfer type:- In the
runtimeobject for copying. - In the
replicationRuntimeobject for replication.
- In the
-
Use the TransferService.Create gRPC API method and provide the following in the request:
-
ID of the folder where the transfer should be placed, in the
folder_idparameter. -
Transfer name in the
nameparameter. -
Source endpoint ID in the
source_idparameter. -
Target endpoint ID in the
target_idparameter. -
Transfer type in the
typeparameter. The possible values are:SNAPSHOT_ONLY: Copying.INCREMENT_ONLY: Replication.SNAPSHOT_AND_INCREMENT: Copying and replication.
-
Runtime environment settings:
-
For the
SNAPSHOT_ONLYtransfer type, in theruntimeobject. -
For the
INCREMENT_ONLYtransfer type, in thereplication_runtimeobject. -
For the
SNAPSHOT_AND_INCREMENTtransfer type:- In the
runtimeobject for copying. - In the
replication_runtimeobject for replication.
- In the
-
Updating a transfer
-
Navigate to the folder dashboard
and select Yandex Data Transfer. -
In the left-hand panel, select
Transfers. -
Select a transfer and click
Edit in the top panel. -
Edit the transfer parameters:
-
Name.
-
Description.
-
For the Snapshot transfer type:
-
Periodic snapshot: Enable to create a full copy of your data at certain time intervals.
- Period: Select a copy interval from the list. The transfer will be run regularly at the specified interval. The first run will take place as soon as the settings are saved. If you run the transfer manually, it will be run after the specified interval next time.
- Cron expression: Specify the copying schedule in cron format. All times are UTC±00:00
. - Wait for transaction completion time, in seconds: Specify the delay for completing current transactions.
-
Incremental tables: Specify the tables whose data is copied incrementally, i.e., from where the copy process stopped previously; set values for the Schema, Table, Key column, and Initial value (optional) fields. For more information, see Regular incremental copy.
Note
This is more efficient than copying entire tables but less efficient than using transfers of the Snapshot and increment type. This setting is available for PostgreSQL, ClickHouse®, and Airbyte® sources.
-
Snapshot settings → Parallel snapshot settings: Specify the number of workers and threads per worker required for parallel copy processes.
For more information on setting up workers and threads, see the recommendations for parallel copying.
-
-
For the Snapshot and increment transfer type:
-
Snapshot settings → Parallel snapshot settings: Specify the number of workers and threads per worker required for parallel copy processes.
For more information on setting up workers and threads, see the recommendations for parallel copying.
-
-
For billable source-target pairs at the GA stage, you can edit the amount of computing resources per VM in the Runtime environment settings section.
For the Snapshot and increment transfer type, runtime computing resources are selected separately for copying and for replication:
The following computing resource configurations are available:
- 2 vCPUs and 4 GB RAM. This is the default configuration.
- 4 vCPUs and 8 GB RAM.
- 8 vCPUs and 16 GB RAM.
The VM resource configuration determines the performance of the data transfer workers. A separate VM is allocated for each worker. For vCPU and RAM pricing policy, calculation examples, and cost optimization recommendations, see Pricing policy.
-
List of objects for transfer: Specify the full path to each object to transfer. Only objects from this list will be transferred. If you have listed included tables or collections in the source endpoint settings, only objects that are on both these lists will be transfered. If you specify objects not listed among included tables or collections in the source endpoint settings, transfer activation will end with the
$table not found in sourceerror. This setting is not available for such sources as Apache Kafka®, and YDS.Adding new objects to Snapshot and increment or Replication transfers in the Replicating status will result in uploading data history for these objects or tables. If a table is large, uploading the history may take a long time. You cannot edit the list of objects for transfers in the Copying status.
Enter the full name of the object. Depending on the source type, use the appropriate naming convention:
- ClickHouse®:
<database_name>.<table_path> - Greenplum®:
<schema_name>.<table_path> - MongoDB:
<database_name>.<collection_path> - MySQL®:
<database_name>.<table_path> - PostgreSQL:
<schema_name>.<table_path> - YDB: table path
- Oracle:
<schema_name>.<table_path>
If the specified object is on the excluded table or collection list in the source endpoint settings, or the object name was entered incorrectly, the transfer will end with an error. A running Replication or Snapshot and increment transfer will terminate immediately; an inactive one will terminate as soon as activated.
- ClickHouse®:
-
Data transformation (optional): Data transformation rules. This setting only appears when the source and target are of different types.
-
-
Click Save.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
To update the transfer settings:
-
View a description of the update transfer CLI command:
yc datatransfer transfer update --help -
Run the following command with the list of settings to update:
yc datatransfer transfer update <transfer_ID> \ --name=<transfer_name> \ --description=<transfer_description>You can get the transfer ID with the list of transfers in the folder.
-
Open the current Terraform configuration file with the transfer description.
For information on creating a transfer like this, please review Create transfer.
-
Edit the values in the
nameand thedescriptionfields (transfer name and description). -
Update the runtime environment settings:
-
For the
SNAPSHOT_ONLYtransfer type, in theruntimesection. -
For the
INCREMENT_ONLYtransfer type, in thereplication_runtimesection.If you have already specified the runtime environment settings under
runtime, there is no need to add thereplication_runtimesection. -
For the
SNAPSHOT_AND_INCREMENTtransfer type:- In the
runtimesection for copying. - In the
replication_runtimesection for replication.
If only the
runtimesection is provided, the runtime environment settings for copying and replication will be identical. - In the
-
-
Make sure the settings are correct.
-
In the command line, navigate to the directory that contains the current Terraform configuration files defining the infrastructure.
-
Run this command:
terraform validateTerraform will show any errors found in your configuration files.
-
-
Confirm updating the resources.
-
Run this command to view the planned changes:
terraform planIf you described the configuration correctly, the terminal will display a list of the resources to update and their parameters. This is a verification step that does not apply changes to your resources.
-
If everything looks correct, apply the changes:
-
Run this command:
terraform apply -
Confirm updating the resources.
-
Wait for the operation to complete.
-
-
For more information, see this Terraform provider guide.
Use the Transfer.Update REST API method and provide the following in the request:
-
Transfer ID in the
transferIdparameter. To find out the ID, get a list of transfers in the folder. -
Transfer name in the
nameparameter. -
Transfer description in the
descriptionparameter. -
Runtime environment settings:
-
For the
SNAPSHOT_ONLYtransfer type, in theruntimeobject. -
For the
INCREMENT_ONLYtransfer type, in thereplicationRuntimeobject.If you have already specified the runtime environment settings in the
runtimeobject, there is no need to providereplicationRuntime. -
For the
SNAPSHOT_AND_INCREMENTtransfer type:- In the
runtimeobject for copying. - In the
replicationRuntimeobject for replication.
If only the
runtimesection is provided, the runtime environment settings for copying and replication will be identical. - In the
-
-
List of transfer configuration fields to update in the
updateMaskparameter.Warning
When you update a transfer, all parameters of the object you are modifying will take their defaults unless explicitly provided in the request. To avoid this, list the settings you want to change in the
updateMaskparameter.
Use the TransferService.Update gRPC API method and provide the following in the request:
-
Transfer ID in the
transfer_idparameter. To find out the ID, get a list of transfers in the folder. -
Transfer name in the
nameparameter. -
Transfer description in the
descriptionparameter. -
Runtime environment settings:
-
For the
SNAPSHOT_ONLYtransfer type, in theruntimeobject. -
For the
INCREMENT_ONLYtransfer type, in thereplication_runtimeobject.If you have already specified the runtime environment settings in the
runtimeobject, there is no need to providereplication_runtime. -
For the
SNAPSHOT_AND_INCREMENTtransfer type:- In the
runtimeobject for copying. - In the
replication_runtimeobject for replication.
If only the
runtimesection is provided, the runtime environment settings for copying and replication will be identical. - In the
-
-
List of transfer configuration fields to update in the
update_maskparameter.Warning
When you update a transfer, all parameters of the object you are modifying will take their defaults unless explicitly provided in the request. To avoid this, list the settings you want to change in the
update_maskparameter.
When updating a transfer, its settings are applied immediately. Editing Snapshot and increment or Replication transfer settings with the Replicating status will result in restarting the transfer.
Activating a transfer
- Navigate to the folder dashboard
and select Yandex Data Transfer. - In the left-hand panel, select
Transfers. - Click
next to the transfer name and select Activate.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
To activate a transfer, run this command:
yc datatransfer transfer activate <transfer_ID>
You can get the transfer ID with the list of transfers in the folder.
Use the activate API method and provide the transfer ID in the transferId request parameter.
To find out the transfer ID, get a list of transfers in the folder.
Note
The operation is available in the Yandex Cloud mobile app.
Deactivating a transfer
During transfer deactivation:
- The replication slot on the source is disabled.
- Temporary data transfer logs are deleted.
- The target is brought into the aligned state:
- The data schema objects of the source are transferred for the final stage.
- Indexes are created.
- Switch the source to
read-only
. - Navigate to the folder dashboard
and select Yandex Data Transfer. - In the left-hand panel, select
Transfers. - Click
next to the transfer name and select Deactivate. - Wait for the transfer status to change to Stopped.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
To deactivate a transfer, run this command:
yc datatransfer transfer deactivate <transfer_ID>
You can get the transfer ID with the list of transfers in the folder.
Use the deactivate API method and provide the transfer ID in the transferId request parameter.
To find out the transfer ID, get a list of transfers in the folder.
Warning
Do not interrupt the deactivation of the transfer! If the process fails, the performance of the source and target is not guaranteed.
Learn more in Transfer types and lifecycles.
Note
The operation is available in the Yandex Cloud mobile app.
Deleting a transfer
- Navigate to the folder dashboard
and select Yandex Data Transfer. - In the left-hand panel, select
Transfers. - If the transfer you need is active, deactivate it.
- Click
next to the transfer name and select Delete. - Click
Delete.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.
To delete a transfer, run this command:
yc datatransfer transfer delete <transfer_ID>
You can get the transfer ID with the list of transfers in the folder.
To delete a transfer created using Terraform:
-
Open the current Terraform configuration file with an infrastructure plan.
For more information about creating this file, see Creating a transfer.
-
Delete the transfer description.
-
Make sure the settings are correct.
-
In the command line, navigate to the directory that contains the current Terraform configuration files defining the infrastructure.
-
Run this command:
terraform validateTerraform will show any errors found in your configuration files.
-
-
Type the word
yes, then press Enter.-
Run this command to view the planned changes:
terraform planIf you described the configuration correctly, the terminal will display a list of the resources to update and their parameters. This is a verification step that does not apply changes to your resources.
-
If everything looks correct, apply the changes:
-
Run this command:
terraform apply -
Confirm updating the resources.
-
Wait for the operation to complete.
-
-
For more information, see the Terraform provider documentation.
Use the delete API method and provide the transfer ID in the transferId request parameter.
To find out the transfer ID, get a list of transfers in the folder.
Greenplum® and Greenplum Database® are registered trademarks or trademarks of Broadcom Inc. in the United States and/or other countries.
ClickHouse® is a registered trademark of ClickHouse, Inc