![]() |
VOOZH | about |
Apache Airflow supports the creation, scheduling, and monitoring of data engineering workflows. When paired with the CData JDBC Driver for Jira Service Management, Airflow can work with live Jira Service Management data. This article describes how to connect to and query Jira Service Management data from an Apache Airflow instance and store the results in a CSV file.
With built-in optimized data processing, the CData JDBC driver offers unmatched performance for interacting with live Jira Service Management data. When you issue complex SQL queries to Jira Service Management, the driver pushes supported SQL operations, like filters and aggregations, directly to Jira Service Management and utilizes the embedded SQL engine to process unsupported operations client-side (often SQL functions and JOIN operations). Its built-in dynamic metadata querying allows you to work with and analyze Jira Service Management data using native data types.
For assistance in constructing the JDBC URL, use the connection string designer built into the Jira Service Management JDBC Driver. Either double-click the JAR file or execute the jar file from the command-line.
java -jar cdata.jdbc.jiraservicedesk.jar
Fill in the connection properties and copy the connection string to the clipboard.
You can establish a connection to any Jira Service Desk Cloud account or Server instance.
To connect to a Cloud account, you'll first need to retrieve an APIToken. To generate one, log in to your Atlassian account and navigate to API tokens > Create API token. The generated token will be displayed.
Supply the following to connect to data:
To authenticate with a service account, supply the following connection properties:
Note: Password has been deprecated for connecting to a Cloud Account and is now used only to connect to a Server Instance.
By default, the connector only surfaces system fields. To access the custom fields for Issues, set IncludeCustomFields.
π Using the built-in connection string designer to generate a JDBC URL (jira service management is shown.)To host the JDBC driver in clustered environments or in the cloud, you will need a license (full or trial) and a Runtime Key (RTK). For more information on obtaining this license (or a trial), contact our sales team.
The following are essential properties needed for our JDBC connection.
| Property | Value |
|---|---|
| Database Connection URL | jdbc:jiraservicedesk:RTK=5246...;ApiKey=myApiKey;User=MyUser;InitiateOAuth=GETANDREFRESH; |
| Database Driver Class Name | cdata.jdbc.jiraservicedesk.JiraServiceDeskDriver |
A DAG in Airflow is an entity that stores the processes for a workflow and can be triggered to run this workflow. Our workflow is to simply run a SQL query against Jira Service Management data and store the results in a CSV file.
import time
from datetime import datetime
from airflow.decorators import dag, task
from airflow.providers.jdbc.hooks.jdbc import JdbcHook
import pandas as pd
# Declare Dag
@dag(dag_id="jira service management_hook", schedule_interval="0 10 * * *", start_date=datetime(2022,2,15), catchup=False, tags=['load_csv'])
# Define Dag Function
def extract_and_load():
# Define tasks
@task()
def jdbc_extract():
try:
hook = JdbcHook(jdbc_conn_id="jdbc")
sql = """ select * from Account """
df = hook.get_pandas_df(sql)
df.to_csv("/{some_file_path}/{name_of_csv}.csv",header=False, index=False, quoting=1)
# print(df.head())
print(df)
tbl_dict = df.to_dict('dict')
return tbl_dict
except Exception as e:
print("Data extract error: " + str(e))
jdbc_extract()
sf_extract_and_load = extract_and_load()
Download a free trial of the Jira Service Management Driver to get started:
Download NowLearn more:
π Jira Service Management IconRapidly create and deploy powerful Java applications that integrate with Jira Service Management.