Python でLinear のデータを変換・出力するETL 処理を作る方法

加藤龍彦
加藤龍彦
デジタルマーケティング
CData Python Connector とpetl モジュールを使って、Linear のデータを変換後にCSV ファイルに吐き出すETL 処理を実装します。



Pythonエコシステムには多くのモジュールがあり、システム構築を素早く効率的に行うことができます。本記事では、CData Python Connector for Linear とpetl フレームワークを使って、Linear のデータにPython から接続してデータを変換、CSV に出力するETL 変換を実装してみます。

CData Python Connector は効率的なデータ処理によりLinear のデータ にPython から接続し、高いパフォーマンスを発揮します。Linear にデータをクエリする際、ドライバーはフィルタリング、集計などがサポートされている場合SQL 処理を直接Linear 側に行わせ、サポートされていないSQL 処理については、組み込みのSQL エンジンによりクライアント側で処理を行います(JOIN やSQL 関数など)。

必要なモジュールのインストール

pip で必要なモジュールおよびフレームワークをインストールします:

pip install petl
pip install pandas

Python でLinear のデータをETL 処理するアプリを構築

モジュールとフレームワークをインストールしたら、ETL アプリケーションを組んでいきます。コードのスニペットは以下の通りです。フルコードは記事の末尾に付いています。

CData Connector を含むモジュールをインポートします。

import petl as etl
import pandas as pd
import cdata.linear as mod

接続文字列で接続を確立します。connect 関数を使って、CData Linear Connector からLinear への接続を行います

cnxn = mod.connect("AuthScheme=APIKey;APIKey=myAPIKey;")

Linear への認証には、個人用 API キーまたは OAuth 2.0 を使用できます。ご自身の Linear アカウントで接続する場合は、API キーを使うのが最も手軽です。

API キーによる認証

以下の接続プロパティを設定します。

  • AuthScheme:APIKey に設定します。
  • APIKey:Linear の個人用 API キー。

個人用 API キーを作成するには、Linear にログインして Settings > Security & access > Personal API keys を開き、New API key を選択して作成します。キーは一度しか表示されないため、すぐにコピーしておきましょう。

OAuth による認証

OAuth を使用するには、Linear にカスタム OAuth アプリケーションを登録する必要があります(Settings > API > OAuth applications)。登録すると OAuthClientId と OAuthClientSecret が発行されます。対応しているフローは以下の 2 つです。

  • Authorization code:AuthScheme を OAuth、InitiateOAuth を GETANDREFRESH に設定し、OAuthClientId、OAuthClientSecret、およびアプリケーションで定義した CallbackURL(例:http://localhost:33333)を指定します。ドライバーがブラウザで Linear を開くので、アクセスを許可してください。
  • Client credentials:AuthScheme を OAuthClient に設定し、OAuthClientId と OAuthClientSecret を指定します。アプリケーション自体を認証するためブラウザ操作は不要で、マシン間(M2M)連携に適しています。

デフォルトでは、ドライバーは read,write スコープをリクエストします。アクセストークンは有効期限が切れると自動で更新されます。

Linear をクエリするSQL 文の作成

Linear にはSQL でデータアクセスが可能です。Team エンティティからのデータを読み出します。

sql = "SELECT id, name FROM Team WHERE key = 'ENG'"

Linear データのETL 処理

DataFrame に格納されたクエリ結果を使って、petl でETL(抽出・変換・ロード)パイプラインを組みます。この例では、Linear のデータ を取得して、name カラムでデータをソートして、CSV ファイルにデータをロードします。

table1 = etl.fromdb(cnxn,sql)

table2 = etl.sort(table1,'name')

etl.tocsv(table2,'team_data.csv')

CData Python Connector for Linear を使えば、データベースを扱う場合と同感覚で、Linear のデータ を扱うことができ、petl のようなETL パッケージから直接データにアクセスが可能になります。

おわりに

Linear Python Connector の30日の無償トライアル をぜひダウンロードして、Linear のデータ への接続をPython アプリやスクリプトから簡単に作成しましょう。



フルソースコード

import petl as etl
import pandas as pd
import cdata.linear as mod

cnxn = mod.connect("AuthScheme=APIKey;APIKey=myAPIKey;")

sql = "SELECT id, name FROM Team WHERE key = 'ENG'"

table1 = etl.fromdb(cnxn,sql)

table2 = etl.sort(table1,'name')

etl.tocsv(table2,'team_data.csv')

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

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

 ダウンロード

詳細:

Linear Icon Linear Python Connector

Linear へのデータ連携用のPython Connector ライブラリ。 pandas、SQLAlchemy、Dash、petl などの主要なPython ツールにLinear をシームレスに統合。