Apache Airflow で JDBC-ODBC Bridge データを連携

Jerod Johnson
Jerod Johnson
Senior Technology Evangelist
CData JDBC Driver を使用して、Apache Airflow で JDBC-ODBC Bridge のデータ にアクセスして処理。

Apache Airflow は、データエンジニアリングワークフローの作成、スケジューリング、モニタリングをサポートするツールです。 CData JDBC-ODBC Bridge Driver と組み合わせることで、Airflow からリアルタイムの JDBC-ODBC Bridge のデータ を扱うことができます。 この記事では、Apache Airflow インスタンスから JDBC-ODBC Bridge のデータ に接続してクエリを実行し、結果を CSV ファイルに保存する方法を説明します。

CData JDBC ドライバーは、最適化されたデータ処理機能を組み込んでおり、 リアルタイムの JDBC-ODBC Bridge のデータ を扱う際に比類のないパフォーマンスを発揮します。複雑な SQL クエリを JDBC-ODBC Bridge に発行すると、 ドライバーはフィルタや集計などのサポートされている SQL 操作を直接 JDBC-ODBC Bridge にプッシュし、 サポートされていない操作(主に SQL 関数や JOIN 操作)は組み込みの SQL エンジンを使用してクライアント側で処理します。 また、組み込みの動的メタデータクエリ機能により、ネイティブのデータ型を使用して JDBC-ODBC Bridge のデータ の操作・分析が可能です。

JDBC-ODBC Bridge への接続を設定

組み込みの接続文字列デザイナー

JDBC URL の構築には、JDBC-ODBC Bridge JDBC Driver に組み込まれている接続文字列デザイナーを使用できます。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行してください。

java -jar cdata.jdbc.jdbcodbc.jar

接続プロパティを入力し、接続文字列をクリップボードにコピーします。

To connect to an ODBC data source, specify either the DSN (data source name) or specify an ODBC connection string: Set Driver and the connection properties for your ODBC driver.

クラスター環境やクラウドで JDBC ドライバーをホストする場合は、ライセンス(製品版またはトライアル版)とランタイムキー(RTK)が必要です。ライセンス(またはトライアル)の取得については、弊社営業チームにお問い合わせください

以下は、JDBC 接続に必要な主なプロパティです。

プロパティ
データベース接続 URLjdbc:jdbcodbc:RTK=5246...;Driver={ODBC_Driver_Name};Driver_Property1=Driver_Value1;Driver_Property2=Driver_Value2;...
データベースドライバークラス名cdata.jdbc.jdbcodbc.JDBCODBCDriver

Airflow で JDBC 接続を設定

  1. Apache Airflow インスタンスにログインします。
  2. Airflow インスタンスのナビゲーションバーで、Admin にカーソルを合わせ、Connections をクリックします。
  3. 次の画面で + ボタンをクリックして、新しい接続を作成します。
  4. Add Connection フォームで、必要な接続プロパティを入力します:
    • Connection Id:接続の名前を入力します(例:jdbcodbc_jdbc)
    • Connection Type:JDBC Connection
    • Connection URL:上記の JDBC 接続 URL(例:jdbc:jdbcodbc:RTK=5246...;Driver={ODBC_Driver_Name};Driver_Property1=Driver_Value1;Driver_Property2=Driver_Value2;...)
    • Driver Class:cdata.jdbc.jdbcodbc.JDBCODBCDriver
    • Driver Path:PATH/TO/cdata.jdbc.jdbcodbc.jar
  5. フォーム下部の Test ボタンをクリックして、新しい接続をテストします。
  6. 新しい接続を保存すると、次の画面で接続リストに新しい行が追加されたことを示す緑色のバナーが表示されます。

DAG の作成

Airflow の DAG は、ワークフローのプロセスを保存し、トリガーすることでワークフローを実行できるエンティティです。 ここでのワークフローは、JDBC-ODBC Bridge のデータ に対して SQL クエリを実行し、結果を CSV ファイルに保存するというシンプルなものです。

  1. まず、ホームディレクトリに「airflow」フォルダがあるはずです。その中に「dags」という新しいディレクトリを作成します。 ここに Python ファイルを保存すると、UI 上で Airflow DAG として表示されます。
  2. 次に、新しい Python ファイルを作成し、jdbc-odbc bridge_hook.py という名前を付けます。このファイルに以下のコードを挿入してください:
    	import time
    	from datetime import datetime
    	from airflow.decorators import dag, task
    	from airflow.providers.jdbc.hooks.jdbc import JdbcHook
    	import pandas as pd
    
    	# DAG を宣言
    	@dag(dag_id="jdbc-odbc bridge_hook", schedule_interval="0 10 * * *", start_date=datetime(2022,2,15), catchup=False, tags=['load_csv'])
    
    	# DAG 関数を定義
    	def extract_and_load():
    	# タスクを定義
    		@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()
    
  3. このファイルを保存し、Airflow インスタンスを更新します。DAG のリストに「jdbc-odbc bridge_hook」という新しい DAG が表示されるはずです。
  4. この DAG をクリックし、次の画面で一時停止スイッチをクリックして青色にオンにします。次に、トリガー(再生)ボタンをクリックして DAG を実行します。これにより、jdbc-odbc bridge_hook.py ファイル内の SQL クエリが実行され、コード内で指定したファイルパスに CSV として結果がエクスポートされます。
  5. 新しい DAG をトリガーした後、Downloads フォルダ(または Python スクリプト内で指定した場所)を確認すると、CSV ファイルが作成されていることがわかります。この例では account.csv です。
  6. CSV ファイルを開くと、Apache Airflow によって JDBC-ODBC Bridge のデータ が CSV 形式で利用可能になっていることを確認できます。

詳細情報と無料トライアル

CData JDBC-ODBC Bridge Driver の30日間無料トライアルをダウンロードして、Apache Airflow でリアルタイムの JDBC-ODBC Bridge のデータ を活用してみてください。ご質問があれば、サポートチームまでお気軽にお問い合わせください。

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

JDBC-ODBC Bridge の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

ODBC Connectivity from Java Icon JDBC-ODBC Bridge Driver お問い合わせ

JDBC-ODBC Bridge は、あらゆるJava アプリからWindows、Linux、Mac 上のODBC データソースへのJDBC アクセスを提供します。CData JDBC-ODBC Bridge は、レポートや分析にJava ベースのツールを使用する場合でも、カスタムJava ソリューションを構築する場合でも、あらゆるODBC データソースに簡単に接続できます。