の設定 Openflow Connector for Jira Cloud¶
注釈
コネクタには、 コネクタ利用規約 が適用されます。
このトピックでは、 Openflow Connector for Jira Cloud を設定する手順について説明します。
前提条件¶
Openflow Connector for Jira Cloud について を確認してください。
Openflowの設定 - BYOC または Openflowの設定 - Snowflakeデプロイメント - タスク概要 があることを確認してください。
認証情報を取得する¶
Jira Cloud管理者として、Atlassianアカウントで以下のタスクを実行します。
API トークンページ に移動します。
Create API token with scopes を選択します。
Create an API token ダイアログボックスで、 API トークンに説明的な名前を指定し、 API トークンの有効期限を選択します。1日から365日までの範囲になります。
Api token app Jira を選択します。
jiraスコープの
read:jira-workおよびread:jira-userを選択します。Create token を選択します。
Copy your API token ダイアログボックスで、 Copy を選択して、生成した API トークンをコピーし、そのトークンをコネクタパラメーターに貼り付けるか、安全に保存します。
Close を選択してダイアログボックスを閉じます。
Snowflakeアカウントを設定する¶
Snowflakeアカウント管理者として、以下のタスクを実行します。
新しいロールを作成するか、既存のロールを使用します。
タイプを SERVICE として、新しいSnowflakeサービスユーザーを作成します。
Snowflakeサービスユーザーに、前の手順で作成したロールを付与します。
ステップ2のSnowflake SERVICE ユーザーを key-pair auth で構成します。
Snowflakeではこの手順を強く推奨します。Openflowがサポートするシークレットマネージャ(AWS、Azure、Hashicorpなど)を構成し、公開キーと秘密キーを秘密ストアに格納します。
注釈
何らかの理由でシークレットマネージャを使用したくない場合は、組織のセキュリティポリシーに従って、キーペア認証に使用する公開キーと秘密キーファイルを保護する責任があります。
シークレットマネージャを構成したら、その認証方法を決定します。AWS 上では、Openflowに関連付けられた EC2 インスタンスロールが推奨されます。こうすることで、他の秘密を永続化する必要がなくなるからです。
Openflowで、右上のハンバーガーメニューから、このシークレットマネージャーに関連付けられたパラメータープロバイダーを構成します。Controller Settings » Parameter Provider に移動してから、パラメーター値を取得します。
この時点で、すべての認証情報を関連するパラメーターパスで参照することができるため、機密性の高い値をOpenflow内で永続化する必要はありません。
他のSnowflakeユーザーが、コネクタによって取り込まれた生の取り込みドキュメントやとテーブルへのアクセスを必要とする場合は(Snowflakeでのカスタム処理のためなど)、それらのユーザーにステップ1で作成したロールを付与します。
取り込んだデータを格納するコネクタ用に、Snowflakeでデータベースとスキーマを作成します。最初のステップで作成したロールに以下の データベース権限 を付与します。
CREATE DATABASE jira_destination_db; CREATE SCHEMA jira_destination_db.jira_destination_schema; GRANT USAGE ON DATABASE jira_destination_db TO ROLE <jira_connector_role>; GRANT USAGE ON SCHEMA jira_destination_db.jira_destination_schema TO ROLE <jira_connector_role>; GRANT CREATE TABLE, CREATE VIEW ON SCHEMA jira_destination_db.jira_destination_schema TO ROLE <jira_connector_role>;
コネクタで使用するウェアハウスを作成するか、既存のウェアハウスを使用します。まずは最小のウェアハウスサイズから始め、複製するテーブルの数や転送するデータ量に応じて異なるサイズを試してみてください。テーブル数が大きい場合は、通常、ウェアハウスのサイズを大きくするよりも、 マルチクラスターウェアハウス を使用した方がスケーリングが向上します。
コネクタで使用するロールを持つユーザーが、ウェアハウスを使用するために必要な権限を持っていることを確認します。権限がない場合は、ロールに必要な権限を付与してください。
CREATE WAREHOUSE jira_connector_warehouse WITH WAREHOUSE_SIZE = 'X-Small'; GRANT USAGE ON WAREHOUSE jira_connector_warehouse TO ROLE <jira_connector_role>;
コネクタを設定する¶
データエンジニアとして、以下のタスクを実行してコネクタをインストールおよび構成します。
コネクタをインストールする¶
Openflowの概要ページに移動します。Featured connectors セクションで、 View more connectors を選択します。
Openflowのコネクタページでコネクタを探し、 Add to runtime を選択します。
Select runtime ダイアログで、 Available runtimes ドロップダウンリストからランタイムを選択します。
Add を選択します。
注釈
コネクタをインストールする前に、コネクタが取り込んだデータを格納するためのデータベースとスキーマをSnowflakeで作成したことを確認します。
Snowflakeアカウント認証情報でデプロイメントを認証し、Snowflakeアカウントへのランタイムアプリケーションのアクセスを許可するよう求められたられたら、 Allow を選択します。コネクタのインストールプロセスは数分で完了します。
Snowflakeアカウント認証情報でランタイムを認証します。
コネクタプロセスグループが追加されたOpenflowキャンバスが表示されます。
コネクタを構成する¶
インポートしたプロセスグループを右クリックし、 Parameters を選択します。
フローパラメーター の説明に従って、必要なパラメーター値を入力します。
フローパラメーター¶
このセクションでは、以下のパラメーターコンテキストに基づいて構成できるフローパラメーターについて説明します。
Jira Cloudソースパラメーター:Jira API との接続を確立するために使用します。
Jira Cloud宛先パラメーター:Snowflakeとの接続を確立するために使用します。
Jira Cloud取り込みパラメーター:Jiraからダウンロードするデータの構成を定義するために使用します。
注釈
インジェスチョン構成に関連するパラメーターの変更(例: 検索タイプ、 JQL クエリ、プロジェクト名、作成後に作成)は、 FetchJiraIssues プロセッサーの状態をリセットし、すべての問題を再び取得できるようにします。これは、発行クエリ基準を変更したり、インジェスチョンを最初から再起動したりする場合に便利です。このリセットアクションは宛先テーブルを切り捨て ません。
Jira Cloudソースパラメーター¶
パラメーター |
説明 |
|---|---|
Jira Eメール |
アトラスアカウントのメールアドレス。 |
Jira API トークン |
API 必要なスコープ( |
環境 URL |
アトラス指定組織の環境へのURL 。例: |
Jira Cloud宛先パラメーター¶
パラメーター |
説明 |
必須 |
|---|---|---|
宛先データベース |
データが永続化されるデータベース。Snowflakeにすでに存在している必要があります。名前は大文字と小文字を区別します。引用符で囲まれていない識別子の場合、名前を大文字で指定します。 |
有り |
宛先スキーマ |
データが永続化されるスキーマ。これはSnowflakeにすでに存在している必要があります。名前は大文字と小文字を区別します。引用符で囲まれていない識別子の場合、名前を大文字で指定します。 次の例をご参照ください。
|
有り |
Snowflakeアカウント識別子 |
以下を使用する場合:
|
有り |
Snowflake認証ストラテジー |
以下を使用する場合:
|
有り |
Snowflake秘密キー |
以下を使用する場合:
|
無し |
Snowflake秘密キーファイル |
以下を使用する場合:
|
無し |
Snowflake秘密キーパスワード |
以下を使用する場合
|
無し |
Snowflakeロール |
以下を使用する場合
|
有り |
Snowflakeのユーザー名 |
以下を使用する場合
|
有り |
Snowflakeウェアハウス |
クエリの実行に使用されるSnowflakeウェアハウス。 |
有り |
Jira Cloud取り込みパラメーター¶
パラメーター |
説明 |
|---|---|
検索タイプ |
実行する検索のタイプ。可能な値の |
宛先テーブル |
データが格納されているSnowflakeテーブル。存在しない場合は作成されます。テーブル名は引用符で囲まず、大文字で提供する必要があります。さらに、宛先テーブルには、宛先テーブルに基づくフラット化されたビューが作成されます。ビュー名は、テーブル名とサフィックス |
JQL クエリ |
Jiraの問題を検索して取得するために使用されるJQL クエリ。検索タイプが の場合にのみ使用してください |
プロジェクト名 |
問題を取得する必要があるプロジェクトのリスト。特定のプロジェクトに属する問題をプロジェクトID 名、プロジェクトキー、プロジェクト で、検索できます。これは、検索タイプが |
ステータスカテゴリ |
ステータスカテゴリフィルターによる簡易検索。検索タイプが の場合にのみ使用してください |
更新後 |
指定した日時以降に更新された課題をフィルターします。検索タイプが の場合にのみ使用してください |
作成後 |
指定した日時以降に作成された課題をフィルターします。検索タイプが の場合にのみ使用してください |
課題フィールド |
各問題に対して返すフィールドのリスト。フィールドのサブセットを取得するために使用されます。IDs カスタムフィールドの は このガイド ガイドに従うことで取得できます。このパラメーターは、コンマ区切りのリストを受け入れます。次のような特別な値を使用できます。 |
最大ページサイズ |
リクエストごとに返す問題の最大数。デフォルト値と最大値は |
フローを実行する¶
プレーンを右クリックし、 Enable all Controller Services を選択します。
インポートしたプロセスグループを右クリックし、 Start を選択します。コネクタがデータの取り込みを開始します。
課題のクエリの条件を変更する必要がある場合、または取り込みを最初からやり直す場合は、以下の手順を実行して宛先テーブルのデータに一貫性があることを確認します。
FetchJiraIssues プロセッサーを右クリックして停止します。
FetchJiraIssues プロセッサーを右クリックし、 View State を選択します。
State ダイアログボックスで、 Clear State を選択します。このアクションはプロセッサーの状態をクリアし、すべての課題を再度フェッチできるようにします。
オプション: 課題のクエリの条件を変更する場合は、インポートしたプロセスグループを右クリックし、 Parameters を選択します。必要に応じてパラメーターを更新します。
オプション: 宛先テーブル名を変更したい場合は、インポートしたプロセスグループを右クリックし、 Parameters を選択します。
宛先テーブルパラメーターを更新します。FetchJiraIssues プロセッサーを右クリックし、 Start を選択します。コネクタがデータの取り込みを開始します。
インジェスチョン後、データはSnowflake宛先テーブルおよび宛先ビューではフラット化された形式で利用できるようになります。ビューには、Jiraインスタンスで使用可能なすべてのフィールドが含まれます。
データへのアクセス¶
Jiraからフェッチされたデータは宛先テーブルで利用できます。Jira問題用に取得されたすべてのフィールドは ISSUE 列で APIから取得された生のオブジェクトとして利用可能です。
データのクエリを支援するために、宛先テーブルに基づいてフラット化されたビューが作成されます。ビュー名は、テーブル名とサフィックス``_VIEW``の連結です。たとえば、宛先テーブルの名前が JIRA_ISSUES``の場合、ビューの名前は ``JIRA_ISSUES_VIEW になります。ビューでは、すべての問題フィールドが抽出され、個別の列として利用できます。列名はフィールドラベルに設定されます。同じラベルに多くの問題がある場合は、フィールド ID を含むサフィックス 一意性を確保するために、列名に が追加されます。たとえば、IDs:code:customfield_1、customfield_2 を持つ2つのフィールドがあり、両方のフィールドに Custom Field というラベルが設定されている場合、ビューの列の名前は Custom Field (customfield_1)、Custom Field (customfield_2) になります。