cake

現実の CSV ファイルのデータを BigQuery に load する仕組みを作るという泥臭い作業を dlt でやってみる

このポストについて 前回の記事 dlt 入門 - ELT の Extract と Load を担う data load tool では dlt の概要を説明した。 この記事ではそれを踏まえ、dlt を使って CSV ファイルを BigQuery に load するという一連の開発作業をやってみる。 現実の CSV はそのまま使えなかったりするので、BigQuery に入れるまでに泥臭い前処理のような作業があることが多い。 そのへんもまとめて dlt でやってみるとこんな感じ、というのが示せるとよい。 やりたいこと 個人で管理しているお金の情報を個人用の BigQuery に置きたい、という要件を想定。 データ概要 具体的には MoneyForward のデータを load していく。 個人では API を利用できないので、web UI から export できる CSV のデータで収入・支出詳細と資産推移月次を対象とする。 CSV の export 方法は以下を参照。 入出金履歴はダウンロードできますか – マネーフォワード MEサポートサイト データの内容は次のようになっている。 収入・支出詳細_2023-11-01_2023-11-30.csv "計算対象","日付","内容","金額(円)","保有金融機関","大項目","中項目","メモ","振替","ID" "1","2023/11/30","AMAZON.CO.JP","-2830","楽天カード","食費","食料品","","0","EPv92ZjQcOxgWQx_cLbhD1" "1","2023/11/24","東京ガス","-4321","楽天カード","水道・光熱費","ガス・灯油代","","0","r6wuQPfrIRS6aFpNYZE5Eh" "1","2023/11/24","給与 カ) フロッグログ","700000","みずほ銀行","収入","給与","","0","doettKpYyNp0Tml9KQQXm1" ヘッダーがあり、各列に名前が付いている。 encoding が CP932 であることに注意。 ID の列があるので、行の識別に使えそう。 ...

12月 20, 2023 · soonraah
tools

dlt 入門 - ELT の Extract と Load を担う data load tool

このポストについて このポストは datatech-jp Advent Calendar 2023 の18日目の投稿です。 web の記事で見かけた dlt というツールが気になったので調べてみた。 dlt の概要について書いていく。 What is dlt? https://dlthub.com/ dlt とは “data load tool” の略。 雑に言うとデータパイプラインにおける ELT の Extract と Load を行う ものとなっている。 主にベルリンとニューヨークに拠点を持つ dltHub 社によって開発されており、OSS の Python ライブラリとして提供されている。 次のような特徴を持つ。 プラットフォームではなくあくまでライブラリであることが強調されている つまり Airflow, GitHub Actions, Google Cloud Functions, ローカル環境などどこでも動かすことができる スケールアウト可能な分散処理ではない extract と load にまつわる反復的で平凡な作業をなくすことを目指している schema 推論や schema evolution をサポート 宣言的なコードでメンテナンスを楽にする incremental loading をサポート 豊富な source GA, Salesforce, Kinesis などいろいろ例が挙げられている 要は API からの取得も含めて JSON-like な形式で Python で読めるものなら何でも 豊富な destination BigQuery, Snowflake など主要なクラウド DWH DuckDB はローカルでの動作確認に便利 Airflow, dbt などとの連携がある CLI の提供もある その他、Glossary を見ておくとドキュメントが読みやすくなる。 ...

12月 18, 2023 · soonraah