Matillion ETL — Upgrading to version 1.60 and above
    • Dark
      Light

    Matillion ETL — Upgrading to version 1.60 and above

    • Dark
      Light

    Article Summary

    Overview

    This page covers the technical details of how to upgrade and rollback between the Matillion ETL non-universal and universal packages along with an overview of the reasoning behind the project.



    Background: Consolidation of .rpm packages

    Prior to v1.60, Matillion ETL was published as three yum packages:

    matillion-emerald
    matillion-emerald-byol
    matillion-emerald-cdata
    

    Each installation of Matillion ETL would then have one combination of:

    matillion-emerald AND matillion-emerald-cdata
    

    Or:

    matillion-emerald-byol AND matillion-emerald-cdata
    

    Both of the matillion-emerald and matillion-emerald-byol packages then had both cloud platform and cloud data warehouse specific builds. For example:

    emerald-1.46.10-centos7-aws-snowflake-platform.rpm   (matillion-emerald package)
    emerald-1.59.9-centos7-azure-snowflake-platform.rpm  (matillion-emerald package)
    emerald-1.51.9-centos7-aws-redshift-byol.rpm (matillion-emerald-byol package)
    

    However, matillion-emerald-cdata was always published as a single universal build. For example:

    emerald-cdata-1.50.12.rpm (matillion-emerald-cdata package)
    emerald-cdata-1.56.10.rpm (matillion-emerald-cdata package)
    

    As will be obvious, this large amount of builds/variation resulted in quite a complicated installation and complicated the tasks of building, validating, distributing, and providing support.



    What's new: matillion-universal package

    Therefore, as part of the v1.60 build, there have been two important changes:

    1. The matillion-emerald and matillion-emerald-byol packages have been consolidated to form the matillion-universal package.
    2. There are no longer cloud platform and cloud data warehouse specific builds for the matillion-universal package. Instead, there is one universally compatible build per Matillion Version.

    For example:

    emerald-metl-1.60.2-<unique id>.rpm   (matillion-universal package)
    emerald-metl-1.60.2-<unique id>.rpm   (matillion-universal package)
    

    From v1.60 onwards, each Matillion ETL installation will require:

    matillion-universal *AND* matillion-emerald-cdata
    


    Finding the matillion-universal packages

    Two new yum repositories have been created, which can be found at the following URLs:

    1. matillion-universal ——— https://artifacts.matillion.com/rpm/matillion-metl/stable/
    2. matillion-emerald-cdata ——— https://artifacts.matillion.com/rpm/matillion-cdata/stable/

    An example yum repo config for each is shown below:

    Usually found at /etc/yum.repos.d/matillion-cdata.repo:

    [matillion-cdata]
    name=matillion-cdata
    baseurl=https://artifacts.matillion.com/rpm/matillion-cdata/stable/
    gpgkey=https://artifacts.matillion.com/rpm/matillion-cdata/stable/matillion.key
    gpgcheck=1
    enabled=1
    


    Usually found at /etc/yum.repos.d/matillion-universal.repo:

    [matillion-universal]
    name=matillion-universal
    baseurl=https://artifacts.matillion.com/rpm/matillion-metl/stable/
    gpgkey=https://artifacts.matillion.com/rpm/matillion-metl/stable/matillion.key
    gpgcheck=1
    enabled=1
    


    Please Note

    If the machine is running in an egress-restricted environment, please ensure artifacts.matillion.com is allow-listed within the domain/network.


    Upgrading to the universal packages

    Users have two available methods to upgrade to the universal packages (Matillion ETL v1.60 and beyond).

    Please Note

    Before performing any of these upgrades, please ensure relevant backups of root disks and managed databases are taken in case of the need to roll back. Read our documentation for more information on how to do this: Updating Matillion ETL.

    Method 1: Updating/Upgrading via migration

    To upgrade via migration, please launch a machine image of version 1.60 or higher and follow the steps here: Updating: Machine Images & Migration .

    Method 2: Updating/Upgrading in-place (non-clustered environments)

    Updating via the GUI is possible for non-clustered environments. This will transfer the existing installation from matillion-emerald or matillion-emerald-byol onto the matillion-universal package.

    To do this, please follow the steps here: Updating: In-place updates.

    Please Note

    It is only possible to upgrade between the final version of the old packages (1.59.12) to the universal packages (>1.60.2).

    In practice, if the installation is on a version below 1.59.12, the machine must be updated to 1.59.12 first, then the universal packages will be available (i.e. two upgrade hops).

    Both these upgrades will be possible to do in the UI in series.

    In the UI, the upgrade between 1.59.12 and >1.60 will only note the matillion-emerald-cdata package being available on the destination version. This is expected, and is due to the nature of the yum transaction.

    Updating/Upgrading in-place (clustered environments)

    Updating via the console is possible for clustered environments. This will transfer the existing installation from matillion-emerald or matillion-emerald-byol onto the matillion-universal package in place.

    1. Ensure Tomcat is not running on all nodes before proceeding. To do this, SSH onto all nodes and as root run:

    service tomcat stop
    

    2. To identify whether matillion-emerald or matillion-emerald-byol are installed, the following can be run:

    yum list installed | grep matillion-emerald
    

    3. This will return either:

    matillion-emerald-byol-<some version>
    

    Or:

    matillion-emerald-<some version>
    

    4. To "swap" to the universal packages, the following command can be run:

    yum swap <package from above> matillion-universal
    

    5. For example, if swapping matillion-emerald-byol:

    yum swap matillion-emerald-byol matillion-universal
    

    Loaded plugins: fastestmirror, matillion-ensure-yumhook
    Loading mirror speeds from cached hostfile

    • base: download.cf.centos.org
    • epel: d2lzkl7pfhq30w.cloudfront.net
    • extras: download.cf.centos.org
    • updates: download.cf.centos.org
      Resolving Dependencies
      --> Running transaction check
      ---> Package matillion-emerald-byol.noarch 0:1.59.12-1 will be erased
      ---> Package matillion-universal.noarch 0:1.60.2-1 will be installed
      --> Processing Dependency: matillion-emerald-cdata = 1.60.2 for package: matillion-universal-1.60.2-1.noarch
      --> Running transaction check
      ---> Package matillion-emerald-cdata.noarch 0:1.59.12-2 will be updated
      ---> Package matillion-emerald-cdata.noarch 0:1.60.2-1 will be an update
      --> Finished Dependency Resolution

    Dependencies Resolved

    ==================================================================================================================================
    PackageArch VersionRepository Size

    Installing:
    matillion-universalnoarch1.60.2-1 matillion-universal351 M
    Removing:
    matillion-emerald-byol noarch1.59.12-1 @matillion 431 M
    Updating for dependencies:
    matillion-emerald-cdatanoarch1.60.2-1 matillion-cdata457 M

    Transaction Summary

    Install 1 Package
    Upgrade ( 1 Dependent package)
    Remove 1 Package

    Total download size: 808 M
    Is this ok [y/d/N]: y
    Downloading packages:
    ...
    Excluded for brevity
    ... 4/4

    Removed:
    matillion-emerald-byol.noarch 0:1.59.11-1

    Installed:
    matillion-universal.noarch 0:1.60.2-1

    Dependency Updated:
    matillion-emerald-cdata.noarch 0:1.60.2-1

    Complete!

    6. Finally, restart the service once both nodes have been upgraded:

    service tomcat start
    

    Once the upgrade is confirmed to be successful, to prevent the old packages being installed alongside matillion-universal please run the command:

    mv /etc/yum.repos.d/matillion.repo /etc/yum.repos.d/matillion.repo.bkp
    

    This will de-index the repository file mirror for the old packages.



    Ongoing updates on matillion-universal

    Updates on 1.60 and beyond are then consumed by running the following command:

    yum update matillion-universal
    

    Not by running yum update matillion-*



    Rollback

    Rolling back via the console is possible for all environments. This will transfer the existing installation from matillion-universal back onto either the matillion-emerald or matillion-emerald-byol.

    1. First, ensure Tomcat is not running on all nodes before proceeding. To do this, SSH onto all nodes and as root run:

    service tomcat stop
    

    2. If previously the matillion.repo repository file was de-indexed, please re-index by running:

    mv /etc/yum.repos.d/matillion.repo.bkp /etc/yum.repos.d/matillion.repo
    

    This will re-index the repository file mirror for the old packages.

    3. Now, to identify whether matillion-emerald or matillion-emerald-byol are installed, the following can be run:

    yum list available | grep matillion-emerald
    

    This will return either:

    matillion-emerald-byol-<some version>
    

    Or:

    matillion-emerald-<some version>
    

    4. To "swap" back off the universal packages, the following command can be run:

    yum swap matillion-universal <package from above>
    

    5. For example, if swapping for matillion-emerald-byol:

    yum swap matillion-universal matillion-emerald-byol
    

    Transaction output:

        yum swap matillion-universal matillion-emerald-byol
    Resolving Dependencies
        --> Running transaction check
        ---> Package matillion-emerald-byol.noarch 0:1.59.12-1 will be installed
        ---> Package matillion-universal.noarch 0:1.60.2-1 will be erased
        --> Finished Dependency Resolution
    Dependencies Resolved
    ==================================================================================================================================
    Package   Arch  VersionRepository   Size
    ==================================================================================================================================
    Installing:
    matillion-emerald-byolnoarch1.59.12-1  matillion   351 M
    Removing:
    matillion-universal   noarch1.60.2-1   @matillion-universal 431 M
    Transaction Summary ==================================================================================================================================
    Install  1 Package
    Remove   1 Package
    

    Total download size: 351 M
    Is this ok [y/d/N]: y

    ...
    excluded for brevity
    ...
    Removed:
    matillion-universal.noarch 0:1.60.2-1

    Installed:
    matillion-emerald-byol.noarch 0:1.59.12-1

    Complete!

    6. In the above transaction, the matillion-emerald-cdata package was not pushed down, so that needs to be downgraded to match the version of either the matillion-emerald or matillion-emerald-byol package. Therefore, run the command:

    yum downgrade matillion-emerald-cdata-1.59.12
    

    Example output:

    yum downgrade matillion-emerald-cdata-1.59.12
    

    Resolving Dependencies
    --> Running transaction check
    ---> Package matillion-emerald-cdata.noarch 0:1.59.12-2 will be a downgrade
    ---> Package matillion-emerald-cdata.noarch 0:1.60.2-1 will be erased
    --> Finished Dependency Resolution

    Dependencies Resolved

    ==================================================================================================================================
    Package Arch Version Repository Size

    Downgrading:
    matillion-emerald-cdata noarch 1.59.12-2 matillion 458 M

    Transaction Summary

    Downgrade 1 Package

    Total download size: 458 M
    Is this ok [y/d/N]: y
    Downloading packages:
    emerald-cdata-1.59.11.rpm | 458 MB 00:00:18
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
    Installing : matillion-emerald-cdata-1.59.12-2.noarch 1/2
    Cleanup: matillion-emerald-cdata-1.60.2-1.noarch2/2
    Verifying : matillion-emerald-cdata-1.59.12-2.noarch 1/2
    Verifying : matillion-emerald-cdata-1.60.2-1.noarch2/2

    Removed:
    matillion-emerald-cdata.noarch 0:1.60.2-1

    Installed:
    matillion-emerald-cdata.noarch 0:1.59.12-2

    Complete!

    7. Finally, restart the service once both nodes have been downgraded:

    service tomcat start
    

    Upgrading to a specific release

    To list available versions:

    yum list matillion-universal --showduplicates

    To upgrade to a specific version (don't include < and >):

    yum update matillion-universal-<your-chosen-version>

    To downgrade to a specific version (don't include < and >):

    yum downgrade matillion-universal-<your-chosen-version> matillion-emerald-cdata-<your-chosen-version>