Skip to main content

ytclone

Copy static tables, files, YSON documents, and directories between YTsaurus and S3, preserving schemas and portable attributes.

Restoring from S3 requires a yt-s3-v2 archive created by ytclone. Earlier archive formats are rejected; re-export the source to a new S3 prefix.

Installation

pip install ytclone

Requires CPython 3.10+ on Linux x86_64 with glibc or macOS ARM64 (Apple Silicon).

Also available as standalone downloads and Docker images.

Quick start

Configure access to YTsaurus and S3:

export YT_PROXY="https://yt.example.com"
export YT_TOKEN="..."
export AWS_ACCESS_KEY_ID="..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_DEFAULT_REGION="us-east-1"

The S3 bucket must already exist. For an S3-compatible service, also set S3_ENDPOINT to its URL. Use AWS_SESSION_TOKEN for temporary credentials.

Copy to S3:

ytclone //home/analytics/events s3://my-bucket/export --log-file export.log

The full YT path is appended to the S3 prefix: this command stores events at s3://my-bucket/export/home/analytics/events/.

Restore to YTsaurus:

ytclone s3://my-bucket/export/home/analytics/events \
  //home/analytics/events_copy --log-file restore.log

The restore destination is used exactly as given: the children of events go directly under //home/analytics/events_copy. With --log-file, progress appears on the console and detailed logs are appended to the file.

Repeated runs

Rerun the command after an interruption or source update. Completed, unchanged nodes are skipped; other nodes are copied again. An unfinished table, file, or document restarts from the beginning.

Source data is never deleted. Destination nodes absent from the source are kept. Use a separate S3 prefix for each source cluster.

Parallel export

Use --max-streams to export large tables through several streams, or ytclone-parallel for multiple copy processes. Both apply to YT → S3; restore with ytclone.

Before you copy

  • Dynamic tables are skipped and reported; links are unsupported.
  • One current archive version. Failed uploads keep the previous copy available. Updates publish first, then try to delete the old copy. No history is kept.
  • Permissions are not copied. ACLs, ownership, and account settings are excluded. Replacing an existing YT table, file, or document recreates the node, so its previous settings are not preserved either.
  • Consistency is per node. A directory tree is not a single point-in-time snapshot.
  • Concurrent exports can fail on conflicts. Updating an archive during restore can also fail the restore; rerun it. Concurrent restores to the same YT nodes are unsupported.
  • S3 must support atomic conditional writes. See update and recovery details for rollback and cleanup behavior.

Documentation

Run ytclone --help or ytclone-parallel --help for all command-line options.

  • User guide: paths, configuration, progress, retries, and parallel export.
  • Architecture: archive format, change detection, and execution diagrams.
  • Contributing: installation from source, development, and tests.

License: MIT.

Metadata

Release files for ytclone 0.1.24

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ytclone 0.1.24
File Size Uploaded Provenance Actions
ytclone-0.1.24.tar.gz 51.4 kB With provenance Details for ytclone-0.1.24.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ytclone 0.1.24
File Interpreter ABI Platform Actions
ytclone-0.1.24-py3-none-any.whl Python 3 none any Details for ytclone-0.1.24-py3-none-any.whl

Total release size: 114.4 kB

Release files / ytclone-0.1.24.tar.gz

Download URL ytclone-0.1.24.tar.gz
Size 51.4 kB
Tags Source
SHA-256 checksum
How to use checksums
451d5e2b620d3f98d1e3b994c9ac91308e3165cee87c3dd47fe6d3c701e0126b
BLAKE2b-256 checksum
How to use checksums
5b4ac0508cce3c883759702e7c017f78d81df225263b6e0684c3db370b482d9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / ytclone-0.1.24-py3-none-any.whl

Download URL ytclone-0.1.24-py3-none-any.whl
Size 62.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
666eb3136dca9dc98ab2f73f545839bfaaf5a9725c56223512581192cde62860
BLAKE2b-256 checksum
How to use checksums
abb9981374228d0c23e67d8bcf0775d561a00e596bbabf9a5b8d1c8f04f596c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Security for ytclone 0.1.24

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ytclone-0.1.24.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page