Slide 1

Slide 1 text

© 2025 estie Inc. DataOps Night#6 自動と手動の両輪で開発する データクレンジング 0 Ryosuke Lin Yamamoto

Slide 2

Slide 2 text

© 2025 estie Inc. 自己紹介・会社紹介 1

Slide 3

Slide 3 text

© 2025 estie Inc. • Ryosuke Lin Yamamoto / 山本亮介 • 社内で unique でなかったので妻の姓を名乗っています • https://github.com/Ryosuke839 • 株式会社estie データマネジメント部 スタッフエンジニア • データパイプラインの設計・実装 • 共通データ API の開発 • プロダクトチームでのデータ活用の enabling など • 2024 年 4 月入社 • 以前は音声認識バックエンドを C++ で書いていたもののレイオフに遭いました 自己紹介 2

Slide 4

Slide 4 text

© 2025 estie Inc. 会社概要 3 会社名 株式会社estie(エスティ) 所在地 東京都港区赤坂9丁目7-2 東京ミッドタウン・イースト 4F 設立 2018年12月 代表取締役 平井 瑛 主要株主 経営陣 東京大学エッジキャピタルパートナーズ(UTEC) グロービス・キャピタル・パートナーズ(GCP) グローバルブレイン 日本政策投資銀行 Vertex Growth 技術顧問 渡辺 努(東京大学大学院経済学研究科教授)

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

© 2025 estie Inc. estieのプロダクト展開 5 DaaS (データ) SaaS (業務支援) アセット オフィス レジ 物流 ホテル 商業 土地(その他) マーケットリサーチツール 開発予定 開発予定 開発予定 アセットごと のデータを 調査 ソリューション支援ツール 非公開 Data Platform 領域横断 で業務を 支援 領域深く 業務を 支援 Middleware(分析・API・認証・権限等)+独自のデータ基盤 開発予定 非公開 バーティカルSaaSとして業界に深く入り込む複数プロダクトを開発・提供を加速 非公開 非公開

Slide 7

Slide 7 text

© 2025 estie Inc. estieのデータ加工基盤 複数のデータパートナーと提携し、様々な形式のデータを取得 それらのデータを組み合わせ正規化することで単一のデータアセットを構築 6 データパートナー 各サービスDB

Slide 8

Slide 8 text

© 2025 estie Inc. estieで扱うデータ 7

Slide 9

Slide 9 text

© 2025 estie Inc. estieのデータ加工基盤 複数のデータパートナーと提携し、様々な形式のデータを取得 それらのデータを組み合わせ正規化することで単一のデータアセットを構築 8 データパートナー 各サービスDB 再掲

Slide 10

Slide 10 text

© 2025 estie Inc. estieのデータ加工基盤 複数のデータパートナーと提携し、様々な形式のデータを取得 それらのデータを組み合わせ正規化することで単一のデータアセットを構築 9 データパートナー 各サービスDB 再掲

Slide 11

Slide 11 text

© 2025 estie Inc. 複数のデータパートナーからデータ提供を受けており、データの仕様は様々 • 持っているカラム • カラムの仕様(坪・平米単位、自由記述など) • 更新頻度(毎日〜毎月、不定期など様々) • カバーエリア(全国、都内のみなど) さらに、データの仕様は変更されることもある → 組み合わせることでより新鮮でより多くをカバーしたデータを作る estieのデータパートナー 10

Slide 12

Slide 12 text

© 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 } • 複数のデータパートナーから同じビルの情報が来ている • 名前は一致している(小規模なビルだとよくかぶる) • 住所の表現には揺れがある • 地階の情報を持っていないパートナーもある • 面積には揺れがある

Slide 13

Slide 13 text

© 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 }

Slide 14

Slide 14 text

© 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 棟存在する! • なお微妙に違っても同じ建物のこともある

Slide 15

Slide 15 text

© 2025 estie Inc. 人手でなんとかできる量ではないので名寄せを自動化したい…が人の目が入らなければどうにもなら ないデータも多数 →ある程度は自動で、信頼性が低いデータや重要なデータについては手動入力によるデータクレンジ ングが可能なデータパイプラインが必要 estieで扱うデータの量 14 名寄せ前棟数 名寄せ後棟数 名寄せ後募集数 更新頻度 オフィス 40 万 9 万 40 万 毎日 住宅 600 万 200 万 900 万 毎日 物流施設 7 万 2 万 2 万 毎日

Slide 16

Slide 16 text

© 2025 estie Inc. estieのデータクレンジング パイプライン 15

Slide 17

Slide 17 text

© 2025 estie Inc. ここまでのデータの特徴から、パイプラインには以下が求められる • データパートナーの追加・削減に対応できる • パートナーの追加・カバレッジ(地域・期間)の追加に対応できる • パイプラインを回し直すことでデータの削除もできる • 揺れのある重複のあるデータを名寄せすることができる • ある程度は自動で名寄せすることができる • 必要に応じて手動で名寄せすることもできる • あとから変更することもできる パイプラインの要件 16

Slide 18

Slide 18 text

© 2025 estie Inc. • データ加工パイプラインのデータは全て Snowflake 上で管理 • パイプライン内の移送処理は dbt で記述 • DB は全社の Terraform リポジトリで、dbt はデータチームのリポジトリで管理 • データチームはデータパイプライン内の権限しか持たない まずは弊社の技術スタック 17

Slide 19

Slide 19 text

© 2025 estie Inc. • 加工パイプラインではパフォーマンス上の問題を回避するため incremental model が多い • 毎日のデータ受領に対しては incremental model で対応可能 • 過去データ追加やデータ削除に対応するには full refresh が必要 → 手動入力・名寄せ結果を保存するテーブルを dbt full-refresh 対象モデルから分離しておく 回し直せるパイプライン 18

Slide 20

Slide 20 text

© 2025 estie Inc. 自動名寄せには社内の名寄せサービスを利用 • dbt Python model から呼び出し • データパイプラインのほか、 プロダクトからも利用 • 社内でオープンに開発 • 精度改善コンペなども開催 自動名寄せ API 19

Slide 21

Slide 21 text

© 2025 estie Inc. 自動名寄せではカバーできない部分を手動名寄せで補完 • 大規模・新築・有名ブランドなどを重点的に確認 • Streamlit in Snowflake を利用し Snowflake 上でデータ確認・手動名寄せが完結 手動名寄せ 20

Slide 22

Slide 22 text

© 2025 estie Inc. 手動名寄せ用の各種リソースもリポジトリ上で管理 • Streamlit in Snowflake • Snowflake CLI に含まれる Streamlit デプロイコマンドを利用 • CI でデプロイ • Snowflake 上の非 dbt 管理テーブル • schemachange(Snowflake 用マイグレーションツール)を利用 • CI でマイグレーションを適用 手動名寄せ用のリソース管理 21

Slide 23

Slide 23 text

© 2025 estie Inc. パイプラインの特徴 • 複数データパートナーからの大量のデータをマージ • 再現性を保てない部分が分離されており回し直しが容易 • 多くは名寄せサービスを用いて自動名寄せ • 一部は手動名寄せを適用 • 手動名寄せに必要なツールもリポジトリ内で管理 まとめ / パイプライン全体像 22