Dagster UniversityのDagster & dbtに取り組んだログ
これを順にやっていく
Lesson2 Step2のSet up the Dagster project
dagster dev
を実行するとDagster UIが見られるもののエラーになる
これの原因はdagster1.6から1.7になるにあたり AssetSelection.keys()
がdeprecatedになったことに起因する
dagster universityで使用しているprojectのsetup.pyでは次のようになっており、dagster-1.6系が使われる。
from setuptools import find_packages, setup
setup(
name="dagster_university",
packages=find_packages(exclude=["dagster_university_tests"]),
install_requires=[
"dagster==1.6.*",
"dagster-cloud",
"dagster-duckdb",
"dagster-dbt",
"dbt-duckdb",
"geopandas",
"kaleido",
"pandas[parquet]",
"plotly",
"shapely",
"smart_open[s3]",
"s3fs",
"smart_open",
"boto3",
],
extras_require={"dev": ["dagster-webserver", "pytest"]},
)
そのため、dagsterを1.7系にするか、エラーの起きた部分を AssetSelection.keys
にする必要がある。1.7の他のbreaking changesまで確認するのが面倒なので、一旦tutorialを進めるために次のように書き換える:
-trips_by_week = AssetSelection.assets("trips_by_week")
-adhoc_request = AssetSelection.assets("adhoc_request")
+trips_by_week = AssetSelection.keys("trips_by_week")
+adhoc_request = AssetSelection.keys("adhoc_request")
この後あらためて dagster dev
を実行したところ、エラーは解消されてスクショのようなlineageが手元の環境でも確認できた
同じく Lession2のStep2
手順に沿ってMaterialize all...
をしようとしたところ、次のようなwarningが表示されたが特にcourseの方に説明はない
最初から挿入されていた期間を手順に従い 2023-01-01
に変更するとwarningは出なくなる
今回はこの件は本題ではないので、大量のjobを実行するときにQueuedRunCoordinatorをあらためて学習する
data/raw/taxi_trips_2023-03.parquetがないと言われる
下記からfileを取得しようとしているらしい
fileの取得自体は成功していたが、取得したfileをおくdirectoryが存在しないためエラーになっていた
mkdir data/raw
すれば良い
ChildProcessCrashExceptionが出て辛かったけど、原因はメモリ不足
devcontainerの中で試していて、Dockerで2GBしかメモリを割り当てておらず、 taxi_trip_filesの処理でメモリが不足した結果死んだらしい
Dockerのメモリ割り当てを2GB->4GBに増やして再実行したら成功した