5.4.0

Release Date: 2021.11.09

NOTE - This release contains a non-upwardly compatible change. Pipeline YAML changes required.

Refinery Core

  • Added ability for tables to be saved as root-splay with intraday persist of none
  • UDFs with a "." in the name are now supported
  • PDB split into EPDB and IPDB to improve rollover performance !!! NOTE !!!: NUC - requires modification of pipeline YAMLs

Pipeline YAML changes

As part of 5.4.0, a split pdb into ipdb and epdb was introduced. This requires the following change in pipeline yamls.

Before

   pdb:
    write-row-limit: 10000000
    write-freq: 60000

After

    ipdb:
      write-row-limit: 10000000
      write-freq: 60000
    epdb:
      timeout: 0

The below script will automate this transition. Without this change the process manager will reject the pipeline yaml and fail to start.

//Script to update Refinery YAML configs to support new split pdb.
//Will output "*.old" with originals as a backup.
//Edit the updateFile function if no backups are wanted, and/or rm *.yaml.old after running the script



//Set path to pipeline directory
//If within Refinery, can use this environment variable
yamldir:getenv[`REFINERY_CONFIG_DIR],"/system-config/pipelines"



updateFile:{[yamldir;file]
    //Read in yaml file
    yaml:read0 fileName:` sv (yamldir;file);

    //Get the indent level and location of "pdb" tag
    indent:sum" "=first yaml pdbLocation:where yaml like "* pdb:";

    //Define replacement block
    replaceWith:("epdb:";
        "  timeout: 0";
        "ipdb:");
    indentedReplace:(indent#" "),/:replaceWith;

    //Ammend Yaml
    newYaml:((first pdbLocation)#yaml),indentedReplace,(1+first pdbLocation)_yaml;

    //Write .old for backup
    (`$string[fileName],".old") 0: yaml;

    //Write new
    fileName 0: newYaml;
    }

yamls:k where (k:key[yamldir]) like "*.yaml"
updateFile[yamldir] each yamls