リアルタイムデータの処理と分析 (K-4)
担当教員
TA
実施学期・受入人数・教室
成績評価
課題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 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の締め切りと確認
- 日程:5月10日金5・6限 (リフレッシュルーム)、5月15日水3・4限、5月17日金5・6限
- 場所:オンライン or 計算科学研究センター、会議室C
見直し中・準備中です。
授業の時間になったら、公開します。
第8-10回:課題4・課題3の締め切りと確認
- 日程:5月22日水3・4限(会議室C)、5月24日金5・6限 (リフレッシュルーム)、5月29日水3・4限 (会議室C)
- 場所:オンライン or 計算科学研究センター
見直し中・準備中です。
授業の時間になったら、公開します。
第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でアプリケーション開発の成果について発表会を行います。
|