Slide 1

Slide 1 text

MySQL HeatWaveの新しいトピック! OCIjp#31 学びシリーズ集大成!〜HeatWave&OracleDB〜 でのLT 2022年6月21日 MySQL Global Business Unit 山﨑 由章 / Yoshiaki Yamasaki

Slide 2

Slide 2 text

Copyright © 2022, Oracle and/or its affiliates 2 「HeatWaveってなんじゃそりゃ? 入門から実践まで」で 話題に挙がらなかった トピックを3つ

Slide 3

Slide 3 text

Copyright © 2022, Oracle and/or its affiliates 3 1つ目

Slide 4

Slide 4 text

Copyright © 2022, Oracle and/or its affiliates 4 HeatWaveへのデータロードを 簡単&高速化する機能が 提供されています!

Slide 5

Slide 5 text

Copyright © 2022, Oracle and/or its affiliates 5 プロシージャーを1つ実行するだけで、 全テーブルを高速にロード可能 (並列処理でロード可能、並列度も自動調整)

Slide 6

Slide 6 text

Copyright © 2022, Oracle and/or its affiliates 6 MySQL HeatWave User Guide / Loading Data Using Auto Parallel Load https://dev.mysql.com/doc/heatwave/en/auto-parallel-load.html

Slide 7

Slide 7 text

Copyright © 2022, Oracle and/or its affiliates 7 2つ目

Slide 8

Slide 8 text

Copyright © 2022, Oracle and/or its affiliates 8 松本さんの発表で、 HeatWaveのノード数を追加することで Google BigQueryよりも高速に動作した、 というトピックがありましたが・・・

Slide 9

Slide 9 text

Copyright © 2022, Oracle and/or its affiliates 9 HeatWaveのノード追加&削除を オンラインできるようになりました!

Slide 10

Slide 10 text

Copyright © 2022, Oracle and/or its affiliates 10 2022年6月15日にリリースされた機能!

Slide 11

Slide 11 text

Copyright © 2022, Oracle and/or its affiliates 11

Slide 12

Slide 12 text

HeatWaveノードのノード数追加/削除をオンラインで実行可能に Copyright © 2022, Oracle and/or its affiliates 12 N + K台構成となったHeatWave クラスターでのSQL受付開始 追加するK台の ノード割り当て メタデータの 同期 InnoDBのテーブルの データをK台にロード サイズ変更 開始 既存のN台構成のHeatWave クラスターへのSQL受付 新 手 法 での ノ ード 追 加 サイズ変更 開始 追加するK台の ノード割り当て InnoDBのテーブルのデータを N + K台全てにロード N台のHeatWaveの非アクティブ化 N + K台構成のプロビジョン N + K台構成の クラスターの再アクティブ化 既存のN台構成のHeatWave クラスターへのSQL受付停止 N + K台構成となったHeatWave クラスターでのSQL受付開始 手 動 で の ノ ー ド 追 加 (従 来 型 )

Slide 13

Slide 13 text

ノード数を増加することによりデータロード時間も短縮、 メタデータの同期による一時停止時間は0.2ミリ秒以下 Copyright © 2022, Oracle and/or its affiliates 13 0 0.2 0.4 0.6 0.8 1 4TBのデータのロード時間 (秒) 0 50 100 150 200 250 300 一時停止時間 (ミリ秒) いつでも利用可能 HeatWaveノードのメモリー内に格納された パーティション構成情報の更新の間だけ一時停止 予測可能 時間はノードあたりの データサイズに依存 大きなクラスターサイズへの変更による データロード時間の短縮 クエリの一時停止時間 4 → 6 8 → 16 22 → 41 5 → 29 29 → 11 11 → 17 高速化 ほぼオブジェクトストレージの 帯域性能に相当 17 → 8

Slide 14

Slide 14 text

Copyright © 2022, Oracle and/or its affiliates 14 負荷の高い処理を実行する時だけ ノード拡張することも容易になりました!

Slide 15

Slide 15 text

Copyright © 2022, Oracle and/or its affiliates 15 3つ目

Slide 16

Slide 16 text

Copyright © 2022, Oracle and/or its affiliates 16 HeatWave MLリリース!

Slide 17

Slide 17 text

Copyright © 2022, Oracle and/or its affiliates 17 HeatWaveだけで機械学習ができる!

Slide 18

Slide 18 text

Copyright © 2022, Oracle and/or its affiliates 18 SQLだけで機械学習ができる!

Slide 19

Slide 19 text

Copyright © 2022, Oracle and/or its affiliates 19 HeatWave MLを使うために 追加費用必要無し!

Slide 20

Slide 20 text

Copyright © 2022, Oracle and/or its affiliates 20 現状のHeatWave MLでできること

Slide 21

Slide 21 text

MySQL HeatWave ML は、教師あり学習の分類, 回帰を提供 MySQL HeatWave MLにおける機械学習 Copyright © 2022, Oracle and/or its affiliates 機械学習 ML 強化学習 分類 回帰 クラスタリング 次元削減 深層学習 DL 人間の知能を再現する 処理能力やテクノロジー (推論、認識、判断 etc.) 人工知能 AI データ解析により 学習結果を法則化, 自動化 人間の脳神経回路を 参考にした手法で データから特徴を抽出 教師なし 学習 正解を学習データ としてそれを再現する モデルを生成 診断や顔認識など画像を使った分類, カテゴライズ 売上、降水確率などを定量的に予測 教師あり 学習 MySQL HeatWave MLが サポートする機械学習 21

Slide 22

Slide 22 text

Copyright © 2022, Oracle and/or its affiliates 22 HeatWave MLが解決する 機会学習の課題

Slide 23

Slide 23 text

機械学習の工程と各工程での課題 Copyright © 2022, Oracle and/or its affiliates 23 大量のデータを 収集 結論を導く アルゴリズムを選択 パラーメーター を選択 統計的な演算を行ってモデルを 作成するためのアルゴリズムを 「トレーニング」 実際のデータに対し て推論を実行 データの移動と加工は 手間とコスト、時間が かかる面倒な作業 正しいアルゴリズムと パラーメーターを選択 できるか? 推論や予測の精度に大きな影響があるため 重要ではあるが、トレーニングに非常に 長い時間がかかる (※) ブラックボックス化、 なぜそのモデルがその 選択をしたのか分からない 工 程 ※トレーニングは、推論に比べて非常に時間がかかる

Slide 24

Slide 24 text

機械学習の工程と各工程での課題 Copyright © 2022, Oracle and/or its affiliates 24 大量のデータを 収集 結論を導く アルゴリズムを選択 パラーメーター を選択 統計的な演算を行ってモデルを 作成するためのアルゴリズムを 「トレーニング」 実際のデータに対し て推論を実行 工 程 既にDBにあるデータを活用 AutoMLの活用 圧倒的に高速な「トレーニング」 全てのモデルに対して 「説明」可能 機械学習の悩みをHeatWaveが解決

Slide 25

Slide 25 text

Copyright © 2022, Oracle and/or its affiliates 25 HeatWave MLのチュートリアル MySQL HeatWave User Guide / Iris Data Set Machine Learning Quickstart https://dev.mysql.com/doc/heatwave/en/hwml-iris-example.html

Slide 26

Slide 26 text

機械学習の「分類」のチュートリアルとしてよく使われるアヤメの品種分類での例 学習用データと推論用データ Copyright © 2022, Oracle and/or its affiliates 26 mysql> SELECT * FROM ml_data.iris_train; +--------------+-------------+--------------+-------------+-----------------+ | sepal length | sepal width | petal length | petal width | class | +--------------+-------------+--------------+-------------+-----------------+ | 6.4 | 2.8 | 5.6 | 2.2 | Iris-virginica | | 5 | 2.3 | 3.3 | 1 | Iris-setosa | | 4.9 | 2.5 | 4.5 | 1.7 | Iris-virginica | | 4.9 | 3.1 | 1.5 | 0.1 | Iris-versicolor | <略> | 5.7 | 3 | 4.2 | 1.2 | Iris-setosa | | 4.4 | 2.9 | 1.4 | 0.2 | Iris-versicolor | | 4.8 | 3 | 1.4 | 0.1 | Iris-versicolor | | 5.5 | 2.4 | 3.7 | 1 | Iris-setosa | +--------------+-------------+--------------+-------------+-----------------+ 120 rows in set (0.00 sec) sepal length :ガクの長さ sepal width :ガクの太さ petal length :花びらの長さ petal width :花びらの太さ class :アヤメの品種 (セトサ種、バージカラー種、バージニカ種) class列を正解として学習させる (教師あり学習) 学習用データ mysql> SELECT * FROM ml_data.iris_test; +--------------+-------------+--------------+-------------+ | sepal length | sepal width | petal length | petal width | +--------------+-------------+--------------+-------------+ | 5.9 | 3 | 4.2 | 1.5 | | 6.9 | 3.1 | 5.4 | 2.1 | | 5.1 | 3.3 | 1.7 | 0.5 | | 6 | 3.4 | 4.5 | 1.6 | <略> | 5.2 | 4.1 | 1.5 | 0.1 | | 6.7 | 3.1 | 4.7 | 1.5 | | 6.7 | 3.3 | 5.7 | 2.5 | | 6.4 | 2.9 | 4.3 | 1.3 | +--------------+-------------+--------------+-------------+ 30 rows in set (0.00 sec) 推論用データ 正解であるclass列が無いテーブル

Slide 27

Slide 27 text

Copyright © 2022 Oracle and/or its affiliates. 27 ML_TRAIN(テーブル名, 対象列名, [オプション], モデル名) • オプション • 分類の場合: NULL または JSON_OBJECT('task', 'classification') • 回帰の場合: JSON_OBJECT('task', 'regression’) 実行例) ml_data.iris_trainテーブルのclass列に対する分類(アヤメの品種分類) 「トレーニング」終了後に SELECT @iris_model; で生成されたモデル名を確認可能 HeatWave MLでの「トレーニング」 CALL sys.ML_TRAIN('ml_data.iris_train', 'class', JSON_OBJECT('task', 'classification'), @iris_model);

Slide 28

Slide 28 text

Copyright © 2022 Oracle and/or its affiliates. 28 ML_MODEL_LOAD(モデル名, ユーザー名) • ユーザー名に「NULL」を指定した場合は、現在のユーザーが指定される 実行例)前ページの実行例で作成したモデルをロード HeatWave MLでのモデルのロード mysql> CALL sys.ML_MODEL_LOAD(@iris_model, NULL);

Slide 29

Slide 29 text

Copyright © 2022 Oracle and/or its affiliates. 29 ML_PREDICT_ROW(対象データ,「 トレーニング」済みモデル名) • 指定した行データに対する予測 実行例) 作成したモデルを使って、アヤメのデータを1行だけ与えて品種(class列)を求める HeatWave MLでの「推論」 ※行の場合 SELECT sys.ML_PREDICT_ROW(JSON_OBJECT("sepal length", 7.3, "sepal width", 2.9, "petal length", 6.3, "petal width", 1.8), @iris_model); +---------------------------------------------------------------------------------------------------------------------------------+ | sys.ML_PREDICT_ROW(JSON_OBJECT("sepal length", 7.3, "sepal width", 2.9, "petal length", 6.3, "petal width", 1.8), @iris_model) | +---------------------------------------------------------------------------------------------------------------------------------+ | {"Prediction": "Iris-virginica", "petal width": 1.8, "sepal width": 2.9, "petal length": 6.3, "sepal length": 7.3} | +---------------------------------------------------------------------------------------------------------------------------------+ sepal length :ガクの長さ sepal width :ガクの太さ petal length :花びらの長さ petal width :花びらの太さ class :アヤメの品種 (セトサ種、バージカラー種、バージニカ種)

Slide 30

Slide 30 text

Copyright © 2022, Oracle and/or its affiliates 30 7/29(金)、7/30(土)に開催される OSCオンライン京都で詳細を解説予定 (私のセッションは7/29(金)の昼頃になる見込み)

Slide 31

Slide 31 text

Copyright © 2022, Oracle and/or its affiliates 31 ※先日開催されたOSCオンライン名古屋での 以下のセッションを加筆修正して開催予定 「データベースエンジニアのための、 MySQL HeatWave MLによる機械学習入門」 資料 https://event.ospn.jp/slides/OSC2022-OnlineNagoya/osc2022_OnlineNagoya_MySQL.pdf 動画 https://www.youtube.com/watch?v=g3fHLRP2JwU

Slide 32

Slide 32 text

Copyright © 2022, Oracle and/or its affiliates 32 HeatWaveを是非お試しください!

Slide 33

Slide 33 text

33 Copyright © 2022, Oracle and/or its affiliates. ご清聴ありがとう ございました!!