PostgreSQL Ingestion

Infoworks DataFoundry now supports ingesting data from PostgreSQL database in a scalable and parallelized way. PostgreSQL is an open source object-relational database system that uses and extends the SQL language.

Creating PostgreSQL Source

For creating a PostgreSQL source, see Creating Source. Ensure that the Source Type selected is PostgreSQL.

Configuring PostgreSQL Source

For configuring a PostgreSQL source, see Configuring Source.

PostgreSQL Configurations

FieldDescription
Fetch Data UsingThe mechanism for Infoworks DataFoundry to fetch data from the database.
Connection URLThe JDBC URL for Infoworks to connect to the database. The URL must be in the following format: jdbc:postgresql://<hostname>:<port>/<databasename>
UsernameThe username for database connection.
PasswordThe password for the username provided.
Source SchemaThe database schema to be crawled.

Once the setting is saved, you can test the connection or navigate to the Source Configuration page to crawl the metadata.

Crawling PostgreSQL Metadata

For crawling a PostgreSQL source, see Crawling Metadata.

Configuring PostgreSQL for Ingestion

For configuring a PostgreSQL source for ingestion, see Configuring Source for Ingestion.

FieldDescription
Ingest Type

The types of synchronization that can be performed on the table.

The options include Full Load, Timestamp-Based Incremental Ingestion, Query Based Incremental Ingestion, Batch ID Based Incremental Ingestion.

Segmented Load Status

The option to crawl large tables by breaking into smaller chunks. The smaller chunks can be crawled in parallel. Select the column to Perform Segmented Load On. To derive a column, check the Use substring from field option and select the Extract function. After completing the Segmented Load, ensure to set this value to Completed to submit Incremental Load or Full Load jobs.

NOTE: In case of date, datetime, timestamp column types you can extract new columns. The possible extraction options are year, month, year-month, month-day and day-num-in-month.

Source Configuration
Natural Keys

The key to identify the row uniquely. This key is used to identify and merge incremental data with the existing data on target. Distribution of data into secondary partitions for a table on target will be computed based on the hashcode value of the natural key.

This field is mandatory for incremental ingestion tables.

NOTE: The value of the natural key column cannot be updated when updating a row on source; all the components of the natural key are immutable.

Split by

The option to crawl the table in parallel with multiple connections to the database.

Split-by column can be an existing column in the data or derived from an existing column. The numbers, date, datetime and timestamp columns are allowed to be selected as split-by key. In general, any column for which min and max can be computed can be a split-by key.

NOTE: Keys which increase or decrease gradually can be used as split-by.

To derive a column, check the Use substring from field option and select the Extract function.

Synchronization Configuration

CDC Start DateThe option to fetch a specific portion of the delta, based on the time window. The start date of the time window.
CDC End DateThe option to fetch a specific portion of the delta, based on the time window. The end date of the time window.
Enable Schema SynchronizationThe option to synchronize the Hive table schema, if the source table is modified after the table ingestion is complete.
Timestamp-Based Incremental Load
Timestamp Column for InsertThe source column to be used as insert watermark.
Timestamp Column for Update

The source column to be used as update watermark.

NOTE: It can also be the source column to be used as insert watermark.

Query-Based Incremental Load
Slowly Changing Dimension TypeThe type of the query based ingestion. The options include SCD Type 1 and SCD Type 2. SCD Type 1 always overwrites the existing record in case of updates.
Configure Insert QueryThe option to input the query which identifies and fetches the incremental insert records from the source table, using the record insertion row from the audit table.
Join Column for InsertThe column used to identify the inserts. This column will be joined with audit table column. This field uses source datatype.
Configure Update QueryThe option to input the query which identifies and fetches the incremental update records from the source table, using the record update row from the audit table.
Join Column for UpdateThe column used to identify the updates. This column will be joined with audit table column.
External Audit Schema NameThe schema name of the audit table where the timestamps are being stored.
External Audit Table NameThe name of the audit table where the timestamps are being stored.
External Audit Join ColumnThe column by which the data table and the audit table will be joined.
External Audit Timestamp ColumnThe timestamp column in the audit table, which maintains record audit.
BatchID-Based Incremental Load
Batch-ID ColumnThis column is used for fetching of delta. This column must be a numeric column. Source datatype and target datatype must be equal.
Start Batch IdThe numeric value of Batch ID column (configured by the user during table configurations) starting which the delta is fetched.
End Batch IdNumeric value of Batch ID column (configured by the user during table configurations) till which the delta is fetched.
Target Configuration
Hive Table NameThe name of the table in Hive which will be used to access the ingested data.
Partition Hive table

The option to partition the data in target. The partition column also can be derived for date, datetime and timestamp column. This will further partition the data. A hierarchy of partitions are supported with both normal partitions and derived partitions.

NOTES: Ensure that the partition columns data is immutable.__You can also provide a combination of normal and derived partitions in the hierarchy.

Number of Secondary PartitionsThe number of secondary partitions to run the MR jobs in parallel. The target data can be distributed among various partitions and each partitions in turn can have various secondary partitions. A table with no primary partition can also have secondary partitions. Secondary partition helps in parallelising the ingestion process.
Number of Reducers

The number of reducers for the ingestion map reduce job. Increasing the number of reducers helps reduce the ingestion duration.

This will help in processing the MR jobs faster. This will be effective with the combination of partition key and number of secondary partitions. In any data processing using MR jobs, this will help in bringing the parallelism based on the data distribution across a number of primary partitions and secondary partitions on Hadoop.

Generate History ViewThe option to create the history view table (along with the current view table) in Hive, which contains the versions of incremental updates and deletes.
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard