Upgrade to Pro — share decks privately, control downloads, hide ads and more …

自動と手動の両輪で開発するデータクレンジング

 自動と手動の両輪で開発するデータクレンジング

2025-02-04に Ryosuke Lin がDataOps Night #6でお話した内容です。
https://finatext.connpass.com/event/341105/

estie | エスティ

February 04, 2025
Tweet

More Decks by estie | エスティ

Other Decks in Technology

Transcript

  1. © 2025 estie Inc. • Ryosuke Lin Yamamoto / 山本亮介

    • 社内で unique でなかったので妻の姓を名乗っています • https://github.com/Ryosuke839 • 株式会社estie データマネジメント部 スタッフエンジニア • データパイプラインの設計・実装 • 共通データ API の開発 • プロダクトチームでのデータ活用の enabling など • 2024 年 4 月入社 • 以前は音声認識バックエンドを C++ で書いていたもののレイオフに遭いました 自己紹介 2
  2. © 2025 estie Inc. 会社概要 3 会社名 株式会社estie(エスティ) 所在地 東京都港区赤坂9丁目7-2

    東京ミッドタウン・イースト 4F 設立 2018年12月 代表取締役 平井 瑛 主要株主 経営陣 東京大学エッジキャピタルパートナーズ(UTEC) グロービス・キャピタル・パートナーズ(GCP) グローバルブレイン 日本政策投資銀行 Vertex Growth 技術顧問 渡辺 努(東京大学大学院経済学研究科教授)
  3. © 2025 estie Inc. 自社ビル等 estieの事業領域 経済的な価値創造の場である「商業用不動産」領域でデジタルインフラを展開 資産 タイプ Office

    オフィス Retail 商業施設・アウトレット等 Industrial 物流施設・データセンター等 Hotel ホテル Residential 住宅 投資 目的資産 自己使用 目的資産 商業用不動産市場(資産: 約275兆円 / 収益: 約16兆円) 賃貸住宅市場 分譲住宅市場 分譲オフィスビジネス等も存在はするが、業としてではなく単純に古くからある自社ビルや工場の所有と言った形態が一般的 4
  4. © 2025 estie Inc. estieのプロダクト展開 5 DaaS (データ) SaaS (業務支援)

    アセット オフィス レジ 物流 ホテル 商業 土地(その他) マーケットリサーチツール 開発予定 開発予定 開発予定 アセットごと のデータを 調査 ソリューション支援ツール 非公開 Data Platform 領域横断 で業務を 支援 領域深く 業務を 支援 Middleware(分析・API・認証・権限等)+独自のデータ基盤 開発予定 非公開 バーティカルSaaSとして業界に深く入り込む複数プロダクトを開発・提供を加速 非公開 非公開
  5. © 2025 estie Inc. 複数のデータパートナーからデータ提供を受けており、データの仕様は様々 • 持っているカラム • カラムの仕様(坪・平米単位、自由記述など) •

    更新頻度(毎日〜毎月、不定期など様々) • カバーエリア(全国、都内のみなど) さらに、データの仕様は変更されることもある → 組み合わせることでより新鮮でより多くをカバーしたデータを作る estieのデータパートナー 10
  6. © 2025 estie Inc. 住友不動産九段ビル(本日の会場)についてデータパートナーはどのような情報を持っているか estieで扱うデータ オフィス編 11 { "name":

    "住友不動産九段ビル", "address": "九段北一丁目", "completed": "2006-06", "ground_floor": null, "basement": null, "standard_floor_area": null, "gross_floor_area": 5381.2 } { "name": "住友不動産九段ビル", "address": "九段北1-8-10", "completed": "2006-06", "ground_floor": 15, "basement": 1, "standard_floor_area": 311.8, "gross_floor_area": null } { "name": "住友不動産九段ビル", "address": "九段北1丁目8-10", "completed": "2006-06", "ground_floor": 15, "basement": null, "standard_floor_area": 311.6, "gross_floor_area": 5381.2 } • 複数のデータパートナーから同じビルの情報が来ている • 名前は一致している(小規模なビルだとよくかぶる) • 住所の表現には揺れがある • 地階の情報を持っていないパートナーもある • 面積には揺れがある
  7. © 2025 estie Inc. 住宅は 1 棟ごとの規模が小さい分、多彩なデータが出現 estieで扱うデータ 住宅編 12

    • ほとんど同じ建物に見えるが微妙に違う • Google Maps で見てみると… { "name": "コーポ古川", "address": "是政1丁目23-8", "completed": "1977-05", "ground_floor": 2, "unit_count": 4 } { "name": "コーポ古川", "address": "是政1丁目23-5", "completed": "1977-05", "ground_floor": 2, "unit_count": 6 }
  8. © 2025 estie Inc. 住宅は 1 棟ごとの規模が小さい分、多彩なデータが出現 estieで扱うデータ 住宅編 13

    { "name": "コーポ古川", "address": "是政1丁目23-8", "completed": "1977-05", "ground_floor": 2, "unit_count": 4 } { "name": "コーポ古川", "address": "是政1丁目23-5", "completed": "1977-05", "ground_floor": 2, "unit_count": 6 } • ほとんど同じ建物に見えるが微妙に違う • Google Maps で見てみると… • 同名の建物が 2 棟存在する! • なお微妙に違っても同じ建物のこともある
  9. © 2025 estie Inc. ここまでのデータの特徴から、パイプラインには以下が求められる • データパートナーの追加・削減に対応できる • パートナーの追加・カバレッジ(地域・期間)の追加に対応できる •

    パイプラインを回し直すことでデータの削除もできる • 揺れのある重複のあるデータを名寄せすることができる • ある程度は自動で名寄せすることができる • 必要に応じて手動で名寄せすることもできる • あとから変更することもできる パイプラインの要件 16
  10. © 2025 estie Inc. • データ加工パイプラインのデータは全て Snowflake 上で管理 • パイプライン内の移送処理は

    dbt で記述 • DB は全社の Terraform リポジトリで、dbt はデータチームのリポジトリで管理 • データチームはデータパイプライン内の権限しか持たない まずは弊社の技術スタック 17
  11. © 2025 estie Inc. • 加工パイプラインではパフォーマンス上の問題を回避するため incremental model が多い •

    毎日のデータ受領に対しては incremental model で対応可能 • 過去データ追加やデータ削除に対応するには full refresh が必要 → 手動入力・名寄せ結果を保存するテーブルを dbt full-refresh 対象モデルから分離しておく 回し直せるパイプライン 18
  12. © 2025 estie Inc. 自動名寄せには社内の名寄せサービスを利用 • dbt Python model から呼び出し

    • データパイプラインのほか、 プロダクトからも利用 • 社内でオープンに開発 • 精度改善コンペなども開催 自動名寄せ API 19
  13. © 2025 estie Inc. 手動名寄せ用の各種リソースもリポジトリ上で管理 • Streamlit in Snowflake •

    Snowflake CLI に含まれる Streamlit デプロイコマンドを利用 • CI でデプロイ • Snowflake 上の非 dbt 管理テーブル • schemachange(Snowflake 用マイグレーションツール)を利用 • CI でマイグレーションを適用 手動名寄せ用のリソース管理 21
  14. © 2025 estie Inc. パイプラインの特徴 • 複数データパートナーからの大量のデータをマージ • 再現性を保てない部分が分離されており回し直しが容易 •

    多くは名寄せサービスを用いて自動名寄せ • 一部は手動名寄せを適用 • 手動名寄せに必要なツールもリポジトリ内で管理 まとめ / パイプライン全体像 22