Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MySQL HeatWaveの新しいトピック! / MySQL HeatWave Update...

MySQL HeatWaveの新しいトピック! / MySQL HeatWave Update 202206

2022年6月21日に開催された
 OCIjp #31 Oracle Cloud Infrastructure ユーザーグループ
 学びシリーズ集大成!〜HeatWave&OracleDB〜
https://fullenergy-oci.connpass.com/event/248521/
でのLT資料です。

YoshiakiYamasaki

June 21, 2022
Tweet

More Decks by YoshiakiYamasaki

Other Decks in Technology

Transcript

  1. 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
  2. Copyright © 2022, Oracle and/or its affiliates 8 松本さんの発表で、 HeatWaveのノード数を追加することで

    Google BigQueryよりも高速に動作した、 というトピックがありましたが・・・
  3. 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受付開始 手 動 で の ノ ー ド 追 加 (従 来 型 )
  4. ノード数を増加することによりデータロード時間も短縮、 メタデータの同期による一時停止時間は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
  5. MySQL HeatWave ML は、教師あり学習の分類, 回帰を提供 MySQL HeatWave MLにおける機械学習 Copyright ©

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

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

    収集 結論を導く アルゴリズムを選択 パラーメーター を選択 統計的な演算を行ってモデルを 作成するためのアルゴリズムを 「トレーニング」 実際のデータに対し て推論を実行 工 程 既にDBにあるデータを活用 AutoMLの活用 圧倒的に高速な「トレーニング」 全てのモデルに対して 「説明」可能 機械学習の悩みをHeatWaveが解決
  8. 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
  9. 機械学習の「分類」のチュートリアルとしてよく使われるアヤメの品種分類での例 学習用データと推論用データ 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列が無いテーブル
  10. 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);
  11. Copyright © 2022 Oracle and/or its affiliates. 28 ML_MODEL_LOAD(モデル名, ユーザー名)

    • ユーザー名に「NULL」を指定した場合は、現在のユーザーが指定される 実行例)前ページの実行例で作成したモデルをロード HeatWave MLでのモデルのロード mysql> CALL sys.ML_MODEL_LOAD(@iris_model, NULL);
  12. 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 :アヤメの品種 (セトサ種、バージカラー種、バージニカ種)
  13. 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