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

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

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  6. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  11. Copyright © 2022, Oracle and/or its affiliates
    11

    View Slide

  12. 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受付開始
    手 動 で の ノ ー ド 追 加 (従 来 型 )

    View Slide

  13. ノード数を増加することによりデータロード時間も短縮、
    メタデータの同期による一時停止時間は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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  25. 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

    View Slide

  26. 機械学習の「分類」のチュートリアルとしてよく使われるアヤメの品種分類での例
    学習用データと推論用データ
    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列が無いテーブル

    View Slide

  27. 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);

    View Slide

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

    View Slide

  29. 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 :アヤメの品種
    (セトサ種、バージカラー種、バージニカ種)

    View Slide

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

    View Slide

  31. 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

    View Slide

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

    View Slide

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

    View Slide