Bragi Docs Help

Archive

Archives enable you to maintain a long-term history with change tracking of your incoming data within Bragi.

They are designed to retain data indefinitely and support any data type, whether transactional or otherwise.

Archive Helpers

When using Archives, Bragi generates helpful supporting components in your data warehouse to simplify querying and analysis of historical data:

  • getChanges_<ArchiveName> Stored Procedure (Tracker only):
    Retrieves changes between two points in time for the archive.

  • getPointInTime_<ArchiveName> Stored Procedure (Tracker only):
    Returns the full contents of the archive as of a specific point in time.

  • update_<ArchiveName> Stored Procedure:
    Contains the core logic to update the archive. Typically, this is invoked automatically in Bragi’s orchestration pipeline, but can be reviewed or executed manually for troubleshooting.

  • <ArchiveName>Latest View (Tracker only):
    Displays the most recent version of each record.

Archive Options

Field

Description

Schema

Warehouse schema where the archive is stored. You can create one using the plus arrow.

Name

Name of the archive; this will be the identifier used in the warehouse.

Refer to best practices for naming configs for guidance on consistent and clear naming conventions.

Types of Archives

There are two main types:

Tracker Archive

A Tracker Archive maintains a full change history of each record. Upon detecting any change against a business key, it inserts a new version of the record.

The Archive Configuration screen with a Tracker Archive selected

Tracker Archives offer these options:

Field

Description

Update Non-Changed Tracked Columns

If enabled, non-'Track Changes' columns are kept current without creating a new record.

Inc. Expiry Logic

When enabled, detects records missing from the source and sets their arc_departed_date accordingly, marking expiry.

Intra-Day

Allows multiple runs per day. Beware: enabling this can cause very large archive tables.

Tracker Archives also add the following columns beyond your source data:

Column

Description

arc_arrival_date

The date the record arrived in the archive.

arc_departed_date

When the record version was superseded or left the dataset (if applicable).

arc_start_date

When this record version became valid.

arc_end_date

When this record version ended (superseded by a newer version).

arc_current_flag

'Y' if this is the latest version of the record, otherwise 'N'.

arc_version

Incrementing version number starting at 1 for the first record version.

arc_update_time

Timestamp of when this version was last updated.

Tracker Archive Example

Source dataset (Id is the business key):

Id

Name

Address

1

Marc

Marcs House

2

Matt

Matts House

Initial archive output:

Id

Name

Address

arc_arrival_date

arc_departed_date

arc_start_date

arc_end_date

arc_current_flag

arc_version

arc_update_time

1

Marc

Marcs House

2024-01-01

2024-01-01

2999-12-31

Y

1

2024-01-01 09:00:00

2

Matt

Matts House

2024-01-01

2024-01-01

2999-12-31

Y

1

2024-01-01 09:00:00

If Marc’s address is updated:

Id

Name

Address

1

Marc

Marcs New House

2

Matt

Matts House

Archive after change:

Id

Name

Address

arc_arrival_date

arc_departed_date

arc_start_date

arc_end_date

arc_current_flag

arc_version

arc_update_time

1

Marc

Marcs House

2024-01-01

2024-01-02

2024-01-01

2024-01-02

N

1

2024-01-02 09:00:00

1

Marc

Marcs New House

2024-01-01

2024-01-02

2999-12-31

Y

2

2024-01-02 09:00:00

2

Matt

Matts House

2024-01-01

2024-01-01

2999-12-31

Y

1

2024-01-01 09:00:00

Adding a new record:

Id

Name

Address

1

Marc

Marcs New House

2

Matt

Matts House

3

Jase

Jasons House

Leads to:

Id

Name

Address

arc_arrival_date

arc_departed_date

arc_start_date

arc_end_date

arc_current_flag

arc_version

arc_update_time

1

Marc

Marcs House

2024-01-01

2024-01-02

2024-01-01

2024-01-02

N

1

2024-01-02 09:00:00

1

Marc

Marcs New House

2024-01-01

2024-01-02

2999-12-31

Y

2

2024-01-02 09:00:00

2

Matt

Matts House

2024-01-01

2024-01-01

2999-12-31

Y

1

2024-01-01 09:00:00

3

Jase

Jasons House

2024-01-03

2024-01-03

2999-12-31

Y

1

2024-01-03 09:00:00

Traditional Archive

A Traditional Archive stores only one row per record in the archive table.

New records are added only if the business key has not been seen before.

If enabled, the Update Changed Column option allows rows to be updated with new values when changes occur in the source dataset.

The Archive Configuration screen with a Traditional Archive selected

Traditional Archives add the following columns beyond source data:

Column

Description

arc_arrival_date

When the record first arrived in the archive.

arc_update_time

The most recent update timestamp.

Traditional Archive Example

Source dataset:

Id

Name

Address

1

Marc

Marcs House

2

Matt

Matts House

Initial archive:

Id

Name

Address

arc_arrival_date

arc_update_time

1

Marc

Marcs House

2024-01-01

2024-01-01 09:00:00

2

Matt

Matts House

2024-01-01

2024-01-01 09:00:00

Next day source update:

Id

Name

Address

1

Marc

Marcs New House

2

Matt

Matts House

3

Jase

Jasons House

Archive after rerun (without "Update Changed Column" enabled):

Id

Name

Address

arc_arrival_date

arc_update_time

1

Marc

Marcs House

2024-01-01

2024-01-01 09:00:00

2

Matt

Matts House

2024-01-01

2024-01-01 09:00:00

3

Jase

Jasons House

2024-01-02

2024-01-02 09:00:00

If Update Changed Columns is enabled, the archive updates as follows:

Id

Name

Address

arc_arrival_date

arc_update_time

1

Marc

Marcs New House

2024-01-01

2024-01-02 09:00:00

2

Matt

Matts House

2024-01-01

2024-01-01 09:00:00

3

Jase

Jasons House

2024-01-02

2024-01-02 09:00:00

09 March 2026