ODBC 経由で PowerBuilder から Apache Airflow のデータ に接続

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
CData ODBC Driver for Apache Airflow を使用して PowerBuilder からApache Airflow のデータに接続し、クエリを実行する方法を説明します。



CData ODBC Driver for Apache Airflow は、ODBC をサポートするあらゆるプラットフォームや開発技術から使用できます。PowerBuilder もその一つです。この記事では、Apache Airflow のデータ に接続し、Database Painter や DataWindow などのコントロールからクエリを実行する方法を説明します。

Apache Airflow にODBC データソースとして接続

まだ設定していない場合は、ODBC DSN(データソース名)で接続プロパティを指定します。これはドライバーインストールの最後のステップです。Microsoft ODBC データソースアドミニストレーターを使用して、ODBC DSN を作成・設定できます。

まず、Profile 接続プロパティをディスク上の ApacheAirflow プロファイルの場所に設定します(例:C:\profiles\ApacheAirflow.apip)。次に、ProfileSettings 接続プロパティを ApacheAirflow の接続文字列に設定します(以下を参照)。

ApacheAirflow API プロファイル設定

Apache Airflow 3 では、API 認証に JWT Bearer トークンを使用します。トークンは、Airflow Web UI の「Settings」から生成するか、Airflow CLI の airflow users create と /api/v2/auth/token エンドポイントを使って生成できます。なお、このプロファイルは /api/v2 REST API を使用する Apache Airflow 3.x を対象としています。Airflow 2.x で使われていた従来の /api/v1 エンドポイントには対応していません。

以下の接続プロパティを設定すると、接続できるようになります。

  • AuthScheme:APIKey に設定します。
  • APIKey:Apache Airflow の JWT Bearer トークンに設定します。
  • Server:Airflow インスタンスのベース URL に設定します(例:http://localhost:8080)。

Apache Airflow 用 ODBC ドライバ のプロファイルを作成

以下の手順に従って、Database Painter ツールを使用し、Apache Airflow の ODBC DSN(データソース名)に基づいてデータベースプロファイルを作成します。Database Painter では、ウィザードや UI を使用してApache Airflow のデータを操作できます。

  1. PowerBuilder で、[ツール] -> [Database Painter]をクリックします。
  2. Database Painter の [オブジェクト] ウィンドウで、ODBC ノードを右クリックし、[新しいプロファイル] をクリックします。
  3. [接続] タブで、プロファイル名を入力し、[データソース] メニューで Apache Airflow DSN を選択します。 データベースプロファイル作成に必要な ODBC DSN(Salesforce の例)
  4. テーブルを表示・編集するには、テーブルを右クリックして [データの編集] -> [グリッド] をクリックします。
編集可能なグリッドからアクセスできるライブデータ(Salesforce の例)

PowerBuilder コントロールで Apache Airflow のデータ を使用

標準の PowerBuilder オブジェクトを使用して ODBC データソースに接続し、クエリを実行できます。以下の例では、Apache Airflow のデータ を DataWindow に取得する方法を示します。次のコードを open メソッドに追加してください。


SQLCA.DBMS = "ODBC"
SQLCA.DBParm = "ConnectString='DSN=CData API Source'"
CONNECT USING SQLCA;
dw_dagruns.SetTransObject(SQLCA);
dw_dagruns.Retrieve();

はじめる準備はできましたか?

API Driver で Apache Airflow のライブデータに接続

Apache Airflow に接続