[増補改訂]ビッグデータを支える技術 ——ラップトップ1台で学ぶデータ基盤のしくみ (WEB+DB PRESS plus)

著者 :
  • 技術評論社
4.50
  • (6)
  • (3)
  • (1)
  • (0)
  • (0)
本棚登録 : 118
感想 : 8
本ページはアフィリエイトプログラムによる収益を得ています
  • Amazon.co.jp ・本 (368ページ)
  • / ISBN・EAN: 9784297119522

作品紹介・あらすじ

「ビッグデータ」をテーマに、データ分析基盤技術をまとめた解説書。
 AIの発展、コンテナ技術の進歩をはじめ、ビッグデータを取り巻く技術が大きく変わり始めました。ビッグデータの技術には、元々大きく分けて2つのバックグラウンドがありました。一つは業務系システムで、RDB(Relational Database)から取り出したデータをバッチ処理して役立つ情報を提供する。もう一つはWeb/IoT系システムで、RDBでは扱いきれない大量のログを分散システムを使い、データ処理をする。この2つの流れが融合し、膨大なデータを収集/変換し、分析/可視化するための一連の基盤システムの重要度は格段に上がりました。さらに昨今のAI/機械学習の台頭で、新たな潮流が生まれています。
本書では、ビッグデータを支える基盤技術の「今」に焦点を当て、前半ではデータ量や分散処理など基本概念の整理と、代表的なテクノロジーを徹底解説。合わせて、各技術登場の歴史的な背景も丁寧に追います。後半は実践編としてオープンソースや無償版が利用できるソフトウェアを中心にラップトップ1台でビッグデータを体験しながら学べるよう解説を進めます。今回の改訂では、ビッグデータの技術を活用した応用分野のうち注目度の高い機械学習や特徴量ストア、MLOpsの話題も新たに盛り込み、充実の内容でお届けします。

感想・レビュー・書評

並び替え
表示形式
表示件数
絞り込み
  • 職場同僚の参考書として購入

  • 仕事で触るうちのデータはなんでこんなに使いにくいのか、どういうテーブルにしてもらったらいいのか、勉強するために買って、一部参考にして放置してたのをようやく読了。

    非正規化するのは間違ってなかったんだな、と書いてあることの10分の1くらいはせめて理解できたと言いたいが、プログラムやアプリケーション(?)の呼び出しみたいな記述箇所はやはり門外漢過ぎた。
    今時間がかかってる処理もでかいまま扱ってるからかなあ。

    コンピュータで写真や図形の処理やデザインをするのに、適切な解像度や色調整、フィルタやチャンネルの知識や、手法とその順番を考慮できると生産性は全然違うよね、というのと似た感じかな。

  • ビッグデータに関わる歴史から現時点での全体像が把握できたので非常に満足でした。データの分析基盤構築を個人の環境で実践してみて、より理解を深めたい。

  • 請求記号 007.6/N 81

  • 【書誌情報+概要】
    『[増補改訂]ビッグデータを支える技術――ラップトップ1台で学ぶデータ基盤のしくみ』
    シリーズ:WEB+DB PRESS plusシリーズ
    発売日:2021年2月13日(旧版は2017年刊行)
    著者:西田圭介
    版型:A5判/368ページ
    定価:本体3,200円+税)
    ISBN: 978-4-297-11952-2

    [概要]
     「ビッグデータ」をテーマに,データ分析基盤技術をまとめた解説書。
     AIの発展,コンテナ技術の進歩をはじめ,ビッグデータを取り巻く技術が大きく変わり始めました。ビッグデータの技術には,元々大きく分けて2つのバックグラウンドがありました。一つは業務系システムで,RDB(Relational Database)から取り出したデータをバッチ処理して役立つ情報を提供する。もう一つはWeb/IoT系システムで,RDBでは扱いきれない大量のログを分散システムを使い,データ処理をする。この2つの流れが融合し,膨大なデータを収集/変換し,分析/可視化するための一連の基盤システムの重要度は格段に上がりました。さらに昨今のAI/機械学習の台頭で,新たな潮流が生まれています。
     本書では,ビッグデータを支える基盤技術の「今」に焦点を当て,前半ではデータ量や分散処理など基本概念の整理と,代表的なテクノロジーを徹底解説。合わせて,各技術登場の歴史的な背景も丁寧に追います。後半は実践編としてオープンソースや無償版が利用できるソフトウェアを中心にラップトップ1台でビッグデータを体験しながら学べるよう解説を進めます。今回の改訂では,ビッグデータの技術を活用した応用分野のうち注目度の高い機械学習や特徴量ストア,MLOpsの話題も新たに盛り込み,充実の内容でお届けします。

    [こんな方におすすめ]
    ・データインフラに携わるエンジニアの方々
    ・データ処理の効率化/自動化に関心をお持ちの方々
    ・データを扱う一線の業務システムについて知りたい学生の方々

    [本書のサポートページ]
    本書のサンプルコードなどの補足情報は,以下から辿れます。
    URL:https://github.com/wdpressplus-bigdata

    [著者プロフィール]
      西田圭介(にしだけいすけ)
    フリーランスのソフトウェアエンジニア。複数のスタートアップで開発やデータ分析などを担当した。現在は趣味の開発にも勤しみつつ,執筆活動を続けている。著書に『Googleを支える技術 ……巨大システムの内側の世界』(技術評論社,2008)がある。
    https://gihyo.jp/book/2021/978-4-297-11952-2

    【目次】
    第1章 ビッグデータの基礎知識
    1.1 [背景]ビッグデータの定着
    分散システムによるデータ処理の高速化 ……ビッグデータの扱いづらさを乗り越える二大技術
    分散システムのビジネス利用の開拓 ……データウェアハウスとの共存
    自分でできる! データ分析の間口の広がり ……クラウドサービスとデータディスカバリで加速したビッグデータ活用
    新しい分散データ処理システムの台頭 ……Hadoopからの脱却
    ビッグデータを活用した応用分野の広がり ……レポーティング,デジタルマーケティング,人工知能
    1.2 ビッグデータ時代のデータ分析基盤
    [再入門]ビッグデータの技術 ……分散システムを活用してデータを加工していくしくみ
    データウェアハウスとデータマート ……データパイプラインの基本形
    データレイク ……あらゆるデータをそのまま貯蔵
    データ分析基盤を段階的に発展させる ……チームと役割分担,スモールスタートと拡張
    データを集める目的 ……「検索」「加工」「可視化」の3つの例
    確証的データ解析と探索的データ解析
    1.3 [速習]スクリプト言語によるアドホック分析とデータフレーム
    データ処理とスクリプト言語 ……人気のPythonと,データフレーム
    データフレーム,基礎の基礎 ……「配列の配列」から作成
    Webサーバーのアクセスログの例 ……pandasのデータフレームで簡単処理
    時系列データを対話的に集計する ……データフレームをそのまま用いてデータ集計
    SQLの結果をデータフレームとして活用する
    1.4 BIツールとモニタリング
    スプレッドシートによるモニタリング ……プロジェクトの現状を把握する
    データに基づく意思決定 ……KPIモニタリング
    変化を捉えて詳細を理解する ……BIツールの活用
    手作業と自動化すべきこととの境界を見極める
    1.5 まとめ 

    第2章 ビッグデータの探索
    2.1 基本のクロス集計
    トランザクションテーブル,クロステーブル,ピボットテーブル ……クロス集計の考え方
    ルックアップテーブル ……テーブルを結合して属性を増やす
    SQLによるテーブルの集約 ……大量データのクロス集計の事前準備
    データ集約➡「データマート」➡可視化 ……システム構成はデータマートの大きさで決まる
    2.2 列指向ストレージによる高速化
    データベースの遅延を小さくする
    列指向データベースのアプローチ ……カラムを圧縮してディスクI/Oを減らす
    MPPデータベースのアプローチ ……並列化によってマルチコアを活用する
    2.3 アドホック分析と可視化ツール
    Jupyter Notebookによるアドホック分析 ……ノートブックに分析過程を記録する
    ダッシュボードツール ……定期的に集計結果を可視化する
    BIツール ……対話的なダッシュボード
    2.4 データマートの基本構造
    可視化に適したデータマートを作る ……OLAP
    テーブルを非正規化する
    多次元モデル ……可視化に備えてテーブルを抽象化する
    2.5 まとめ 

    第3章 ビッグデータの分散処理
    3.1 大規模分散処理のフレームワーク
    構造化データと非構造化データ
    Hadoop ……分散データ処理の共通プラットフォーム
    Spark ……インメモリ型の高速なデータ処理
    3.2 クエリエンジン
    データマート構築のパイプライン
    Hiveによる構造化データの作成
    対話型クエリエンジンPrestoのしくみ ……Prestoで構造化データを集計する
    データ分析のフレームワークを選択する ……MPPデータベース,Hive,Presto,Spark
    3.3 データマートの構築
    ファクトテーブル ……時系列データを蓄積する
    サマリーテーブル ……レコード数を削減する
    スナップショットテーブル ……マスタの状態を記録する
    履歴テーブル ……マスタの変化を記録する
    [最終ステップ]ディメンションを追加して非正規化テーブルを完成させる
    3.4 まとめ 

    第4章 ビッグデータの蓄積
    4.1 バルク型とストリーミング型のデータ収集
    オブジェクトストレージとデータインジェスション ……分散ストレージにデータを取り込む
    バルク型のデータ転送 ……ETLサーバー設置の必要性
    ストリーミング型のメッセージ配送 ……次々と送られてくる小さなデータを扱うために
    4.2 [性能×信頼性]メッセージ配送のトレードオフ
    メッセージブローカ ……ストレージの性能問題を解決する中間層の設置
    メッセージ配送を確実に行うのは難しい ……信頼性の問題と3つの設計方式
    重複排除は高コストなオペレーション
    データインジェスションのパイプライン ……長期的なデータ分析に適したストレージ
    4.3 時系列データの最適化
    プロセス時間とイベント時間 ……データ分析の対象はおもにイベント時間
    プロセス時間による分割と問題点 ……極力避けたいフルスキャン
    時系列インデックス ……イベント時間による集計の効率化❶
    述語プッシュダウン ……イベント時間による集計の効率化❷
    イベント時間による分割 ……テーブルパーティショニング,時系列テーブル
    4.4 非構造化データの分散ストレージ
    [基本戦略]NoSQLデータベースによるデータ活用
    分散KVS ……ディスクへの書き込み性能を高める
    ワイドカラムストア ……構造化データを分散して格納する
    ドキュメントストア ……スキーマレスデータを管理する
    検索エンジン ……キーワード検索でデータを絞り込む
    4.5 まとめ 

    第5章 ビッグデータのパイプライン 
    5.1 ワークフロー管理
    [基礎知識]ワークフロー管理 ……データの流れを一元管理する
    エラーからのリカバリー方法を先に考える
    冪等な操作としてタスクを記述する ……同じタスクを何度実行しても同じ結果になる
    ワークフロー全体を冪等にする
    タスクキュー ……リソースの消費量をコントロールする
    5.2 バッチ型のデータフロー
    MapReduceの時代は終わった ……データフローとワークフロー
    MapReduceに代わる新しいフレームワーク ……DAGによる内部表現
    データフローとワークフローとを組み合わせる
    データを取り込むフロー
    データを書き出すフロー
    データフローとSQLとを使い分ける ……データウェアハウスのパイプラインとデータマートのパイプラン
    5.3 ストリーミング型のデータフロー
    バッチ処理とストリーム処理とで経路を分ける
    ストリーム処理とバッチ処理とを統合する
    ストリーム処理の結果をバッチ処理で置き換える ……ストリーム処理の二つの問題への対処
    アウトオブオーダーなデータ処理
    5.4 まとめ 

    第6章 ビッグデータと機械学習
    6.1 特徴量ストア
      機械学習のための特徴量ストア
      特徴量ストアによるデータ管理
      特徴量ストアの実装例
    6.2 MLOps
    機械学習のためにデータパイプラインを構築する
    MLOpsの全体構成 ……三段階の発展
    MLOpsと特徴量ストア
    Kubeflow ……機械学習のオーケストレーション
    その他の機能 ……Metadata,Katib,Tools for Servingなど
    6.3 まとめ 

    第7章 [実践]ビッグデータ分析基盤の構築
    7.1 ノートブックとアドホック分析
    学習にあたって
    サンプルデータの内容 ……5分ごとの気温
    作業環境の構築 ……MultipassでUbuntu 20.04を起動する
    PythonスクリプトによるCSVファイルの収集
    データの内容を確認する ……pandas
    Sparkによる分散環境を整える
    可視化によるデータ検証 ……Tableau Public
    7.2 バッチ型のデータパイプライン
    Dockerによる環境構築 ……ラップトップ上での開発環境
    オブジェクトストレージ ……MinIO
    構造化データの管理 ……Hiveメタストア
    オブジェクトストレージへのデータ転送
    ETLプロセス ……Spark
    クエリエンジンによるデータ集計 ……Presto
    ダッシュボードツールによる可視化 ……Metabase
    特徴量エンジニアリング ……SQLとSpark
    7.3 ワークフロー管理ツールによる自動化
    Prefect ……スクリプト型のワークフロー管理
    バッチ型のデータパイプラインを定義する
    本番環境におけるワークフロー管理
    ワークフローのオーケストレーション ……ロジックと構成定義とを分離する
    作業環境の削除 ……multipass delete
    7.4 まとめ 

    索引

全8件中 1 - 8件を表示

著者プロフィール

西田 圭介 Keisuke Nishida
フリーランスのソフトウェアエンジニア。著書に『Googleを支える技術 巨大システムの内側の世界』(技術評論社、2008)、『ビッグデータを支える技術 刻々とデータが脈打つ自動化の世界』(技術評論社、2017)などがある。

「2022年 『ゲームから学ぶAI ——環境シミュレータ×深層強化学習で広がる世界』 で使われていた紹介文から引用しています。」

西田圭介の作品

  • 話題の本に出会えて、蔵書管理を手軽にできる!ブクログのアプリ AppStoreからダウンロード GooglePlayで手に入れよう
ツイートする
×