dlt-community-sources を公開した
dlt 用のデータソースを集めたパッケージ dlt-community-sources を PyPI に公開した。
何ができるか
今のところ App Store Connect API に対応している。
pip install dlt-community-sources[app-store-connect]
from dlt_community_sources.app_store_connect import app_store_connect_source
source = app_store_connect_source(
key_id="YOUR_KEY_ID",
issuer_id="YOUR_ISSUER_ID",
private_key=open("AuthKey_XXXXX.p8").read(),
vendor_number="YOUR_VENDOR_NUMBER",
)
pipeline.run(source)
apps、builds、TestFlight、サブスクリプション、Sales/Finance/Analytics Reports など15リソース。デスティネーションは BigQuery、Snowflake、DuckDB など dlt が対応しているものなら何でもいい。
なぜ作ったか
dlt の公式 verified sources があるが、更新頻度が落ちている。App Store Connect のソースもなかった。dlt のソースはただの Python 関数なので、自分で書いて PyPI に公開した方が早い。
extras で管理しているので、今後ソースを増やすときもリポジトリを量産せずに済む。
[project.optional-dependencies]
app-store-connect = ["PyJWT[crypto]>=2.8.0"]
# 今後追加するソースもここに足すだけ
主な機能
- incremental loading(Sales Reports は日次、Finance Reports は月次)
- JWT トークンの自動リフレッシュ
- レート制限のリトライ(429 で指数バックオフ)
- 権限不足のリソースは 403 でスキップ(パイプライン全体は落ちない)
今後
当面は自分が業務で必要になったソースを足していく。ソースの追加は dlt_community_sources/ の下にディレクトリを作って @dlt.resource を書くだけなので、ほしいソースがある人はぜひ PR を送ってほしい。