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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Shasha Shasha
August 21, 2024
82

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

Avatar for Shasha

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の機能で作成 
 本番へ
 デプロイ