Transfer DuckDB to Citus Data

    Fast, streaming database-to-database transfer with parallel processing

    FastTransfer
    Terminal
    .\FastTransfer.exe `
      --sourceconnectiontype "duckdbstream" `
      --sourceserver "your-source-server" `
      --sourceuser "your-username" `
      --sourcepassword "your-password" `
      --sourcedatabase "your-source-db" `
      --query "SELECT * FROM your_schema.your_table" `
      --targetconnectiontype "pgcopy" `
      --targetserver "your-target-server" `
      --targetuser "your-username" `
      --targetpassword "your-password" `
      --targetdatabase "your-target-db" `
      --targetschema "your_table" `
      --targettable "your_table" `
      --parallelmethod "Ntile" `
      --distributekeycolumn "id"  `
      --degree 10  `
      --loadmode "Truncate"
    Get FastTransfer

    Source - DuckDB

    DuckDB is a fast and efficient in-process analytical database. FastTransfer uses DuckDBStream to read multiple file formats with exceptional performance.

    Features:

    • Direct reading of multiple formats (CSV, Parquet, JSON, XLSX)
    • Wildcard support to process multiple files
    • No installation required - embedded engine

    Parallel Method - Ntile

    Uses the distributed column and NTILE to build evenly sized chunks. Each thread exports a range from the column values; uniqueness is not required.

    Available parallel methods with DuckDB:

    Destination - Citus Data

    FastTransfer uses PostgreSQL's binary COPY protocol for Citus with a PostgreSQL Compatible Source if you use pgcopy both in source and target connection types.

    Loading method:

    Binary COPY Protocol (Distributed)

    Advantages:

    • Binary COPY for maximum performance (Pg Compatible Source Only + pgcopy/pgcopy)
    • Automatic distribution across shards
    • Optimized for distributed tables