リアルタイムデータの処理と分析 (K-4)

担当教員

TA

  • 山﨑昂輔 (M2)

実施学期・受入人数・教室

  • 春学期ABC 水3・4限 と 金曜5・6限

成績評価

  • 課題1:5%、課題2:10%、課題3:10%、課題4:15%、課題5:15%、課題6:45%

  • 全課題の提出するのは必須になります。一つの課題でも未提出場合は、成績はDになります。

実験概要

SNS、センサー、株式、スマートフォンなどのIoTデバイスから、リアルタイムデータと呼ばれる大量のリアルなデータストリームが溢れています。主な目的は、リアルタイム データを処理および分析する方法を学ぶことです:

  • リアルタイム処理モデルを理解
  • ストリーム処理アーキテクチャ(クライアント・サーバー)を構築
  • リアルタイム データを分割するためのスライディング ウィンドウ操作を実装
  • ウィンドウ内のデータに対する基本的な集計操作をリアルタイムで実装
  • リアルタイムデータの処理結果を可視化
  • 代表的なアルゴリズムを理解
講義は段階的に知識を習得できるように行われます。Java、JavaScript、HTML に関する基本的な知識があれば、実験に問題はありません。他の好みのプログラミング言語を使用しても大丈夫です。ただ、サポートは Java、Scala、Python、JavaScript/HTML に限定されます。
実験概要.

主な学習内容

  • 第1回:ガイダンス・基礎学習

    • データ ストリームと呼ばれるリアルタイム データの基本概念を学びます。具体的には、データストリームの処理モデルと基本的な操作に関する基礎知識です。
    • 資料:ガイダンス
    • 資料:データ ストリームの基本

  • 第2回:課題1

  • Java プログラムや他のプログラミング言語を使用してタイムスタンプ データを生成し、stock_data.txtに保存する。レコード数は10,000です。各値はカンマで区切ります。各レコードは異なる行にする。open,high,low,closeは下部のそれぞれの値段です。基本的に、openとcloseはlowより大きい、highより小さいです。株式は、stockA、stockB、...、stockZ からのものです。例えば:
    •  stock,open,high,low,close,timestamp
    •  株F,493.40,550.50,491.20,499.60,12:00:00
    •  株Q,342.30,402.90,321.00,338.10,12:00:01
    •  株I,464.10,521.40,429.40,445.40,12:00:02

  • 第3-4回:課題2・課題1の締め切りと確認

  • データストリームのClient/Server アーキテクチャを構築してデータ ストリームをシミュレートします。
    Client/Server アーキテクチャ.
    • Client/Server ArchitectureをJavaで使って実装:
      • Server (Server.java): データストリームのシミュレーション
        • Javaプログラムを作成し、stock_data.txtファイルからデータを読み取り、Clientに送る。500 ミリ秒ごとに 1 レコードの送信速度を設定してください。
      • Client (Client.java):
        • Serverに接続して、データ ストリームにアクセスして受け入れるJava プログラムを作成します。
        • 受け取ったデータに新しいtimestamp(システム時間と呼ばれる)を付けてからconsoleにリアルタイムでprint outします。
      結果を見せれば、他のプログラミング言語でも大丈夫です。
    参考資料

  • 第5-7回:課題3・課題2の締め切りと確認

  • 見直し中・準備中です。 授業の時間になったら、公開します。
  • 第8-10回:課題4・課題3の締め切りと確認

  • 見直し中・準備中です。 授業の時間になったら、公開します。

  • 第11-13回: ストリーム処理フレームワーク Apache Flinkの基礎学習・課題4の締め切りと確認

  • 第14-16回:課題5

  • 見直し中・準備中です。 授業の時間になったら、公開します。

  • 第17-19回:より高度なデータ ストリーム アルゴリズム・課題5の締め切りと確認

  • 代表的なデータ ストリーム アルゴリズムを理解:
    • 頻繁なパターンのマイニング
      • データ ストリーム内で頻繁に発生するパターンを見つけるためのアルゴリズムについて学びます。
    • 分類
      • 分類をデータ ストリームでどのように使用できるかを学びます。
    • クラスタリング
      • リアルタイム データからクラスターを自然に見つけるアルゴリズムを学びます。具体的には、データ ストリームでクラスタリング アルゴリズムを使用する方法を学びます。

  • 第20-27回:課題6

    • 日程:7月3日水3・4限、7月5日金5・6限、7月10日水3・4限、7月12日金5・6限、7月17日水3・4限、7月19日金5・6限、7月24日水3・4限、7月26日金5・6限
    • 場所:オンライン or 計算科学研究センター、会議室C
    見直し中・準備中です。 授業の時間になったら、公開します。

  • 第28回:成果発表会・最終レポート作成

  • 課題6でアプリケーション開発の成果について発表会を行います。