LoginSignup
0
3

More than 5 years have passed since last update.

いまさらビッグデータ勉強中

Last updated at Posted at 2018-02-18

はじめに

  • IAサーバ、アプライアンスのストレージ製品を中心にやってた。
  • ビックデータ関連の仕事が増えたが基礎がない。。。
    • 一から勉強中。
  • 定着にはアウトプット必要だよね。→とりあえずかいてみる

基礎知識

  • データパイプライン:データ連携をするシステム全体
  • 処理もろもろ

    • ストリーム処理:受け取ったデータをリアルタイムに処理
    • バッチ処理:ある程度まとまったデータを効率よく加工
    • ETL(ELT):Extract(取り出し) Transforme(加工) Load(読み込み) の略。ELTは順が違う。
  • データの貯め方

    • DWH:長期保存用に整理したテーブル。テーブル設計が必要
    • データレイク:RAWデータをそのまま保存
  • 分析

    • アドホック分析:その場限りの分析→手作業でデータ集計とか
  • 基本的な流れ

    • データ集約 → データマート → 可視化

データのはなし

  • データ格納

    • 列志向がいいらしい:データ集計で考えると扱うデータは数列に絞れる→効率的
  • テーブルの呼び方

    • ファクトテーブル:トランザクションのように事実が記録
    • ディメンジョンテーブルファクトテーブルが参照するマスタ

集計のコツ

  • ビックデータの集計 -> 早い段階でファクトテーブルを小さくする
  • 分散システムの性能を活用するためにデータの偏りをなくす ->例えばWebページであれば特定のページがアクセスが多いとかある。
  • クエリエンジンには「ベストプラクティス」や「クエリ最適化」といったドキュメントがあるので参考にすると良い。

分散処理

コンポーネント

  • 分散ファイルシステム:HDFS
  • リソースマネージャ:YARN,Mesos
  • 分散データ処理:MapReduce,Spark
    • クエリエンジン:Hive,Impara,Presto

hadoop

spark

presto

  • (Hiveとちがって)クエリ実行過程でディスク書き込みが発生しない。
  • 同じキーを持つデータは同じノードに集められる(分散結合)
  • 片方のテーブルが小さい場合は全データを各ノードにコピーすることもできる(ブロードキャスト結合)

データマートの作り方

  • ファクトテーブルが重要
  • ファクトテーブルの作成方法は2種類
    • 追記
    • 置換
    • サマリーテーブル
    • スナップショットテーブル
    • 履歴テーブル
  • ディメンジョンで使うデータは定期的にスナップショットを取っておくと良いらしい(復元が楽〜)
  • ディメンジョンを追加して非正規化テーブル完成!

ビックデータの蓄積

メッセージ配送のトレードオフ

  • 性能と信頼性はトレードオフ
  • 大量のデータを安定して受け入れる仕組みが必要↓

メッセージブローカ

  • データを一時的に蓄える中間層のこと
    • オープンソース:Apache Kafka
    • クラウド:Amazon Kinesis
  • プッシュ型:プロデューサがメッセージを送る
  • プル型:コンシューマがメッセージをもってくる

ビッグデータのパイプライン

ワークフロー管理ツール

  • 役割
    • 定期的なタスク実行
    • 異常を検知してその解決を手助けする
  • タイプ
    • 宣言型:最低限の記述でタスクを定義
    • スクリプト型:柔軟性
0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3