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

データ収集と整理 〜クラウドデータパイプラインの作成〜

Shasha
August 21, 2024
28

データ収集と整理 〜クラウドデータパイプラインの作成〜

Shasha

August 21, 2024
Tweet

Transcript

  1. 第3回
 データ収集と整理 
 〜クラウドデータパイプラインの作成〜 
 
 
 クラスメソッド株式会社
 2023.11.28
 1

    10電力会社様向け勉強会「クラウドを活用したデータ分析とモダンデータスタックの可能性」
  2. 2 自己紹介
 • 名 前 :ほりもと りさ 
 • 所属部署:アライアンス事業部 
 エンジニアG

    
 • 役 割 :MDS製品のプロフェッショナルサービス 
 • ブ ロ グ:https://dev.classmethod.jp/author/shasha 
 • 著 者 名:紗紗 

  3. 10 人を採用するのって時間かかりますよね
 • データ分析基盤を作ろう 
 ↓
 • 分析基盤を作れるエンジニア/外注先が必要だ 
 ↓


    • 採用にも会社選定にも時間がかかる・・・・・ 
 ↓
 • 人件費/外注コストがかかる 

  4. 17 ETLとELTと...再確認
 • Extract (抽出)
 • Transform (変換)
 • Load(読込)


    • Extract (抽出)
 • Load(読込)
 • Transform (変換)
 データソースからデータウェアハウスにデータを 
 入れるまでのやり方2パターン 

  5. 18 ETLとは...?
 データソースからデータを 抽出(Extract)する 
 • 基幹システム
 • CRMツール
 •

    IoTデータ など
 データを分析できる形に 
 変換(Transform)する 
 • 不要なデータを削除
 ◦ データ量↓
 • 名寄せ
 • テーブル同士を結合
 ◦ コンピュートコスト↓
 データをデータウェアハウ スに入れる(Load) 
 • ストレージ(データを貯 蔵する場所)コストが高 かった
 • コンピュートの馬力が小 さかった

  6. 20 ELTとは...?
 データソースからデータを 抽出(Extract)する 
 • 基幹システム
 • CRMツール
 •

    IoTデータ など
 データを分析できる形に 
 変換(Transform)する 
 • 不要なデータを削除
 • 名寄せ
 • テーブル同士を結合
 データをデータウェアハウ スに入れる(Load) 
 • 生データ〜分析用の データまで一箇所に

  7. 26 @くらにゃん
 データの抽出とロードを自社で開発しようとするとどんな工程が必要なの?
 
 
 データソース 
 の定義
 データ取得方法 


    の設計
 データの変換 
 データのロード 
 エラーハンドリング 
 ロギング 
 スケジューリング 
 監視
 以上の工程は大まかなもので、細かい部分ではさらに多くの手間と時間が必要になるにゃん。 
 自社で開発するには複雑で大変なものになるけど、だからといって手を抜かずにやるのが大切にゃん!某もこ う言うけどにゃん、それぞれの手順でたくさんの知識と技術が要求されるから、 専門的なスキルを持つメン バーがいることも重要にゃん !

  8. 27 ここがすごいよFivetran!
 
 
 データソース 
 の定義
 データ取得方法 
 の設計


    データの変換 
 データのロード 
 エラーハンドリング 
 ロギング 
 スケジューリング 
 監視
 全部Fivetran がやるにゃん

  9. 30 dbtとは?
 • データパイプライン 
 ◦ ELTのTを担う
 • 簡単なSQLでデータパイプラインを構築可能 


    ◦ SELECTやJOINが分かれば開発可能
 • 主要なDWH/DBに対応 
 ◦ Snowflake
 ◦ Redshift
 ◦ BigQuery など
 

  10. 32 2010年代から変化していないデータモデリング
 • その1:独自開発コード 
 ◦ ビジネスロジックを表現するのにエネルギーが要る
 ◦ アクセスに難あり(難しい処理はPython)
 ◦

    新しいデータセットの作成に3〜4週間かかってしまう
 ◦ 社内インフラをホスティングする必要がある
 • その2:GUIでポチポチ 
 ◦ 高額
 ◦ 学習コストが高い
 ◦ アクセスに難あり(Adminなどに限られる)

  11. 35 dbtが提供するこれからのデータモデリング
 ・SELECT文を知っていれば、誰でもデータマート開発を行えるサービス 
 ・特別な知識&スキル不要で、アプリ開発の手法を取り入れた開発が可能 
  (バージョン管理、CI/CD、自動テスト、ドキュメント管理、etc) 
 アプリ開発の手法を取り入れている ・Gitと連携

    ・継続的インテグレーション ドキュメントの自動生成 ・データの定義や依存関係等がわかる ・データカタログの役割も Jinjaで高度な処理を開発できる ・SQLだけでは実現できない処理の実現 ・マクロとして処理をモジュール化、再利用可 データに対してテストを実行できる ・not nullや参照整合性等を自動でテスト可能 ・Jinjaで、オリジナルのテストも作成可能 主要なDWHに対応 ・Amazon Redshift、Snowflake、Google BigQuery SQLで開発できる ・必要なのはSELECT文だけ ・プログラミング言語の学習は不要 1 6 5 3 4 2
  12. 36 dbtを使用しないでデータ変換を行うと...??
 必要な
 データを特定 
 変換処理: タスク 
 (SQL/Python) 


    を作成
 タスクの 
 実行順序を指定 
 テストを作成 
 ・手作業で実行 
 ドキュメントを 
 作成
 本番へ
 デプロイ 
 別ツール
 別ツール
 dbtを 
 使わないと大変 

  13. 37 dbtを使用しないでデータ変換を行うと...??
 • タスクを行う順序を決めて、その通りに実行させる 
 ◦ 数が多くなると管理が煩雑になる
 • SQLだけで処理ができないものもあるとDWH内で処理 が完結できない

    
 • ドキュメントを別のツールで作成・保存しておく 
 • テストを自動化できない 
 • 開発環境と本番環境を分けるのも手作業 
 
 

  14. 38 dbtを使用してデータ変換を行うと...??
 必要な
 データを特定 
 変換処理を作成 
 (SQLのみ) 
 タスクの

    
 実行順序を指定 
 テストを作成 
 ・自動実行 
 ドキュメントを 
 dbtの機能で作成 
 本番へ
 デプロイ