Building pipelines with Jira Reader
You can read from Jira using the Jira Reader and write to any target supported by Striim. Typically, you will set up pipelines in two phases—initial load, followed by continuous incremental replication—as explained in Pipelines.
For initial load, use Jira Reader in Initial load mode to create a point-in-time copy of selected objects at the target.
After initial load has completed, start continuous replication by reading new or changed records created after the initial load began, then writing those changes to the target. For near-real-time continuous replication, use Jira Reader in Incremental load mode.
You can use automated pipeline wizards to build Jira pipelines that Striim manages end-to-end, or you can manually create separate applications for initial load and continuous incremental replication and manage the lifecycle yourself. Since the Jira Reader supports initial load and incremental replication (and Automated mode), you can handle both with a single application.
Using an automated pipeline wizard: if you want to build near-real-time pipelines from Jira and write to a supported target, we recommend using an automated pipeline wizard with a Jira Reader source. These wizards perform the following steps automatically:
Create two applications: one for initial load and the other for continuous incremental replication (polling).
Create a schema and tables in the target that match the Jira objects to be synced.
Run the initial-load application to copy existing data from Jira to the target.
When initial load completes, run the incremental application to replicate new or changed records using the configured incremental load marker and polling interval.
Not using an automated pipeline wizard: if your use case or policies do not allow using an automated pipeline, create separate applications for initial load and continuous replication:
Before performing initial load, identify a stable, monotonically increasing incremental load marker for each object (for example, a last-modified timestamp). When possible, prefer a timestamp-based marker over
IDto avoid gaps during high-volume ingestion.Create a schema and tables in the target and perform initial load: use a wizard with a Jira Reader source. (Alternatively, you may pre-create target tables using native or third-party utilities.)
Perform an initial load when the schema and tables already exist in the target: use a wizard with a Jira Reader source configured for full export.
Switch from initial load to continuous replication: provide the last successful incremental marker value from the initial load as the starting offset.
Replicate new data: use a wizard with a Jira Reader source configured for incremental polling (set the incremental load marker and polling interval). Configure the target for upsert/merge semantics using appropriate key columns.
Alternatively, instead of using wizards, you can create applications using Flow Designer, TQL, or Striim’s REST API.
Pre-requisite - The initial setup and configuration you do for Jira are described in the Initial setup section.
Create a Jira Reader application using the Flow Designer
This procedure outlines how to use Striim’s Flow Designer to build and configure data pipelines. Flow Designer enables you to visually create applications with minimal or no coding.
Go to the Apps page in the Striim UI and click Start from scratch.
Provide the Name and Namespace for your app. The namespace helps organize related apps.
In the component section, expand Sources, and search for Jira Reader.
Select the source (Jira).
In the properties panel, provide the reader properties (for example: authentication mode and credentials,
Tables,Incremental load marker,Start position, andPolling interval).Click Save to complete the properties configuration.
Drag and drop processors, enrichers, and targets to complete your pipeline logic.
Deploy and start the application to begin data flow.
Create a Jira Reader application using TQL
The following sample TQL uses Striim’s Jira Reader to read from the issues object and write to the system output. Adjust properties for your environment.
CREATE OR REPLACE APPLICATION jiraTest RECOVERY 10 SECOND INTERVAL;
CREATE OR REPLACE SOURCE jiraReaderTest USING JiraReader(
adapterName: 'JiraReader',
AuthMode: 'OAuth',
EndpointUrl: 'https://your-domain.atlassian.net/',
IncrementalLoadMarker: 'Id',
MigrateSchema: true,
Mode: 'InitialLoad',
PollingInterval: '10s',
ClientId: '<client_id>',
ClientSecret: '<client_secret>',
RefreshToken: '<refresh_token>',
startPosition: '%=-1',
Tables: 'issues'
) OUTPUT TO jiraoutStream;
CREATE TARGET jirasys USING Global.SysOut (
name: 'jirasys'
) INPUT FROM jiraoutStream;
END APPLICATION;