Chapter 4. Setting up the environment
Before we can install the Data Virtualization Operator and create a virtual database, we must set up our environment. In this section we’ll complete the following tasks:
- Download or clone resources from the Teiid OpenShift examples GitHub repository. This tutorial requires local copies of some resources that are available in the examples repository.
- Create the postgreSQL database that will serve as one of the data sources for our virtual database.
4.1. Cloning the tutorial resources
To complete the steps in this tutorial we’ll need local copies of some resources that are available in the Teiid OpenShift examples GitHub repository. Teiid is the open source community project that serves as the basis for data virtualization.
We could complete the tutorial by creating all of the necessary files from scratch. But we’ll simplify our lives by downloading or cloning existing resources from the repository.
So let’s grab the files that we need.
Procedure
- From a terminal window, change to the directory where you want to save the repository content.
Type the following command to clone the repository:
$ git clone https://github.com/teiid/teiid-openshift-examples.git
The next step is to create the postgreSQL database that will function as the source database for our virtual database.
4.2. Creating the source database
After you install the Operator and it is running, you can create the postgreSQL database and populate it with sample data.
-
From a terminal window, change to the
01-base-example
folder of the Teiid repository that you cloned, for example/home/username/git/teiid-openshift-examples/examples/01-base-example
Type the following command to create a sample postgreSQL database from the template in the
01-base-example folder
.oc new-app -f postgresql-ephemeral-template.json \ -p DATABASE_SERVICE_NAME=accounts \ -p POSTGRESQL_USER=user \ -p POSTGRESQL_PASSWORD=changeit \ -p POSTGRESQL_DATABASE=accounts
A database with the name accounts is created.
Type the following command to retrieve the list of pods from OpenShift:
oc get pods | grep accounts
The command returns the status of the database deployment process and of the created accounts database, for example:
accounts-1-deploy 0/1 Completed 0 10m accounts-1-fcd92 1/1 Running 0 10m
You can also click Workloads > Pods from the OpenShift console to check the status of the accounts database pod.
Using the name that OpenShift assigns to the accounts postgreSQL database, type the following command to copy contents of the local folder, including the schema file
accounts-schema.sql
, to the remote pod directory:oc rsync . __accounts-x-xxxxx__:/tmp
For example,
oc rsync . accounts-1-fcd92:/tmp
NoteThe command might return the following error:
rsync: failed to set permissions on "/tmp/.": Operation not permitted (1) rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1179) [sender=3.1.2] error: exit status 23
You can ignore the error and continue with the next step.
From a terminal window, establish a remote shell connection to the postgreSQL database and then use psql to populate the database with the tables of sample data. Type the following command:
oc rsh accounts-x-xxxxx psql -U user -d accounts -f /tmp/accounts-schema.sql
The command returns the following output:
psql:/tmp/accounts-schema.sql:1: NOTICE: table "customer" does not exist, skipping DROP TABLE psql:/tmp/accounts-schema.sql:2: NOTICE: table "account" does not exist, skipping DROP TABLE psql:/tmp/accounts-schema.sql:3: NOTICE: table "product" does not exist, skipping DROP TABLE psql:/tmp/accounts-schema.sql:4: NOTICE: table "holdings" does not exist, skipping DROP TABLE CREATE TABLE CREATE TABLE CREATE TABLE CREATE TABLE INSERT 0 1 . . . INSERT 0 1
Your accounts
postgreSQL database is now populated with sample data and is ready for you to configure it as a data source.
The next step is to add the Data Virtualization Operator to our project.