PostgreSQL

Related Pages

For step-by-step instructions, see the PostgreSQL Installation Instructions.

The PostgreSQL component is the heart of CLAIMS Direct. It contains the XML for the entire data warehouse collection, processes updates from the primary, and functions as data source for the optional Solr index.

Hardware Requirements

Requirement
Recommended
CPU4-cores
System Memory24GB
Storage Capacity6TB (SSD required)

Software Requirements

Requirement
Supported Versions
Notes
Operating SystemRHEL/Rocky 8, Amazon Linux 2We do not support Ubuntu or any operating system not explicitly listed.
PostgreSQL

10 - 14

# RHEL/CentOS 7
sudo yum install -y \
https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# RHEL/Rocky 8
sudo dnf -y install \
 https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
IFI CLAIMS Repository
# Amazon Linux 2
sudo yum -y install \
https://repo.ificlaims.com/ifi-claims-direct/amzn2/x86_64/ifi-claims-direct-1.0-1.amzn2.x86_64.rpm

# RHEL / CentOS 7
sudo yum -y install \
 https://repo.ificlaims.com/ifi-claims-direct/centos/7/x86_64/ifi-claims-direct-1.0-1.el7.x86_64.rpm

# RHEL/Rocky 8
sudo dnf -y install \
https://repo.ificlaims.com/ifi-claims-direct/rocky/8/x86_64/ifi-claims-direct-1.0-1.el8.x86_64.rpm

libxml2

Some CLAIMS Direct loading and maintenance code utilizes the PostgreSQL perl extension (plperl) as well as a heavy reliance on the libxml2 XML parsing library. IFI CLAIMS has produced a patched release of libxml2 as an RPM. It is highly recommended to update libxml2 from the IFI CLAIMS software repository. For additional distributions, please contact support@ificlaims.com.

PostgreSQL, Database Schema and Tools

In an effort to streamline CLAIMS Direct PostgreSQL schema versioning, we offer a schema and tools package via the CLAIMS Direct yum repository which is used to create the CLAIMS Direct database and initializes the XML schema.

Amazon Linux 2

sudo amazon-linux-extras install epel
sudo amazon-linux-extras enable postgresql14
sudo yum clean all
sudo yum -y install \
  postgresql postgresql-contrib postgresql-plperl postgresql-server \
  alexandria-schema-tools \
  libxml2

RHEL / CentOS 7

sudo yum -y install epel-release

sudo yum clean all
# Note: this installs the default version 10. If you would like a higher version,
#       please see: https://www.postgresql.org/download/linux/redhat/
sudo dnf -y install \
  postgresql postgresql-contrib postgresql-plperl postgresql-server \
  alexandria-schema-tools \
  libxml2

RHEL / Rocky 8

sudo dnf -y install epel-release
# Rocky
sudo dnf config-manager --set-enabled powertools
# RHEL
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms

sudo dnf clean all
# Note: this installs the default version 10. If you would like a higher version,
#       please see: https://www.postgresql.org/download/linux/redhat/
sudo dnf -y install \
  postgresql postgresql-contrib postgresql-plperl postgresql-server \
  alexandria-schema-tools \
  libxml2

The package contains the SQL needed to create the database supporting PostgreSQL versions 10 - 14, as well as tools to check installation, populate the tables, and perform extracts. To create the databases, simply load the SQL via psql into the instance.

echo "create role alexandria with superuser login;" \
  | psql -Upostgres postgres  

cat /usr/share/alexandria/alexandria-schema-xml/alexandria-schema-xml.sql \
  | psql -Ualexandria postgres


In addition to the schema, there is a collection of tools to help determine instance loading feasibility, populating, bulk extracting, counts and sizes of tables, and more. All tools accept the same parameters with reasonable defaults for a Type-1 CLAIMS Direct installation.

Usage: CD-TOOL OPTIONS

  Option        Description                     Default
  --------------------------------------------------------
  -H|--host     specify host                    localhost
  -P|--port     specify port                    5432
  -d|--database specify database                alexandria
  -u|--user     specify database user name      alexandria
  -h|--help     print this usage and exit
ToolDescription
cd-pre-flight-check.sh 

Use this tool to test the viability of populating the newly created database. It runs a few simple checks.

cd-pre-flight-check.sh
Testing localhost/alexandria ...
  OK    : procedual language sql
  OK    : procedual language plpgsql
  OK    : procedual language plperl
  OK    : procedual language plperlu
  OK    : XML capability (test 1/libxml): 
  OK    : XML capability (test 2/libxml): 
cd-load.sh 

You can use this tool to populate the initial data delivery. After unpacking or otherwise making the initial data available, cd into the top level directory and simply run:

cd-load.sh

Note: This tool expects there to be a ./data directory in the current working directory.

cd-count.sh 

This tool counts the rows in all tables in the main schema (cdws, xml).

cd-count.sh
683	cdws.t_applications
0	cdws.t_cited_documents
0	cdws.t_class_hierarchies
813	cdws.t_priority_documents
366	xml.t_abstract
0	xml.t_amended_claims
366	xml.t_application_reference
# etc.
cd-analyze-tables.sh Analyze all tables in the main schema.
cd-table-size.sh 

Calculate the on-disk size of each table in the main schema.

cd-table-size.sh
192 kB	cdws.t_applications
48 kB	cdws.t_cited_documents
40 kB	cdws.t_class_hierarchies
272 kB	cdws.t_priority_documents
416 kB	xml.t_abstract
32 kB	xml.t_amended_claims
232 kB	xml.t_application_reference
# etc ...
cd-extract.sh 

Extract all relevant table data to ./data directory.

Next Steps

Once the data has been loaded, proceed to: