各製品の資料を入手。
詳細はこちら →Azure DevOps のデータ のPostgreSQL インターフェースを作成
Azure DevOps JDBC Driver のリモート機能を使用し、データアクセス用のPostgreSQL エントリポイントを作成します。
最終更新日:2022-12-02
この記事で実現できるAzure DevOps 連携のシナリオ
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
PostgreSQL には多くの対応クライアントがあります。標準のドライバーからBI、アナリティクスツールまで、PostgreSQL はデータ接続の人気のインターフェースです。JDBC ドライバーを使用することで、簡単に任意の標準クライアントから接続できるPostgreSQL エントリポイントを作成できます。
Azure DevOps にPostgreSQL データベースとしてアクセスするには、CData JDBC Driver for AzureDevOps とJDBC foreign data wrapper (FDW) を使用します。この記事ではFDW をコンパイルしてインストールし、PostgreSQL サーバーからAzure DevOps にクエリを実行します。
JDBC データソースとしてAzure DevOps のデータに接続する
JDBC データソースとしてAzure DevOps に接続するには、以下が必要です。
- Driver のJAR パス:JAR ファイルは、インストールディレクトリのlib サブフォルダにあります。
Driver クラス
cdata.jdbc.azuredevops.AzureDevOpsDriver
- JDBC URL:
URL は、"jdbc:azuredevops:" で始まり、セミコロンで区切られた名前と値の組み合わせで任意の接続プロパティを含めることができます。
AzureDevOps 接続プロパティの取得・設定方法
Azure DevOps アカウントに接続するには、Profile -> Organizations に移動し、アカウントの組織名を取得します。Organization プロパティをこの値に設定します。
Note: 複数のカタログやスキーマに存在するテーブル名もあります。テーブルをクエリする際は、Catalog およびSchema 接続プロパティ、または完全修飾テーブル名のいずれかでカタログとスキーマを指定する必要があります。
Azure DevOps への認証
Azure DevOps は、Basic 認証とAzure AD(OAuth ベース)認証の両方をサポートします。
Basic
Basic 認証でAzure DevOps に接続する場合、Organization とPersonalAccessToken の両方を指定します。 パーソナルアクセストークンを生成するには、Azure DevOps 組織アカウントにログインし、Profile -> Personal Access Tokens -> New Token に移動します。生成されたトークンが表示されます。
Azure AD
Azure AD は、Microsoft のマルチテナント、クラウドベースのディレクトリおよびID 管理サービスです。 これはユーザーベースの認証で、AuthScheme をAzureAD に設定し、Organization をAzure DevOps Organization の名前に設定する必要があります。 Web アプリケーションを介したAzure AD への認証には、必ずカスタムOAuth アプリケーションの作成が必要です。 詳しい認証方法は、ヘルプドキュメント の「Azure DevOps への認証」セクションを参照してください。
ビルトイン接続文字列デザイナ
JDBC URL の構成については、Azure DevOps JDBC Driver に組み込まれている接続文字列デザイナを使用できます。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.azuredevops.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
以下は一般的なJDBC URL です。
jdbc:azuredevops:AuthScheme=Basic;Organization=MyAzureDevOpsOrganization;ProjectId=MyProjectId;PersonalAccessToken=MyPAT;InitiateOAuth=GETANDREFRESH
JDBC FDW を構築する
FDW は、PostgreSQL を再コンパイルせずに、PostgreSQL の拡張機能としてインストールできます。例としてjdbc2_fdw 拡張子を使用します。
- ご使用のバージョンのJRE 共有オブジェクトから、/usr/lib/libjvm.so にシンボリックリンクを追加します。コマンド例:
ln -s /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libjvm.so /usr/lib/libjvm.so
- ビルドするには、以下のコマンドを実行してください。
make install USE_PGXS=1
Azure DevOps のデータをPostgreSQL データベースとしてクエリする
拡張機能をインストールした後、以下のステップに従ってAzure DevOps へのクエリの実行を開始します。
- データベースにログイン
-
データベースの拡張機能をロード
CREATE EXTENSION jdbc2_fdw;
-
Azure DevOps のオブジェクトを作成
CREATE SERVER AzureDevOps FOREIGN DATA WRAPPER jdbc2_fdw OPTIONS ( drivername 'cdata.jdbc.azuredevops.AzureDevOpsDriver', url 'jdbc:azuredevops:AuthScheme=Basic;Organization=MyAzureDevOpsOrganization;ProjectId=MyProjectId;PersonalAccessToken=MyPAT;InitiateOAuth=GETANDREFRESH', querytimeout '15', jarfile '/home/MyUser/CData/CData\ JDBC\ Driver\ for\ Salesforce MyDriverEdition/lib/cdata.jdbc.azuredevops.jar');
-
PostgreSQL デーモンに認識されているユーザーのユーザー名とパスワードのユーザーマッピングを作成
CREATE USER MAPPING for postgres SERVER AzureDevOps OPTIONS ( username 'admin', password 'test');
-
ローカルデータベースに外部テーブルを作成
postgres=# CREATE FOREIGN TABLE builds ( builds_id text, builds_Id text, builds_BuildNumber numeric) SERVER AzureDevOps OPTIONS ( table_name 'builds');
postgres=# SELECT * FROM builds;
おわりに
このようにCData JDBC Driver for AzureDevOps を使って簡単にAzure DevOps のデータを取得して検索対象にすることができました。ぜひ、30日の無償評価版 をお試しください。