データベースエンジニアのための、MySQL HeatWave MLによる機械学習入門
オープンソースカンファレンス 2022 オンライン 名古屋
Yoshiaki Yamasaki
MySQL Principal Solution Engineer
MySQL Global Business Unit
2022年5月28日

はじめに• 本資料は厳密な説明よりも分かりやすさを優先しています• 本セミナーは、機械学習に興味があるデータベースエンジニアの方をターゲットとしています(現時点のMySQL HeatWave MLは手動で色々カスタマイズしたい機械学習の専門家向けの機能は提供されていません)アジェンダ
1. 機械学習概要

2. 機械学習の課題とMySQL HeatWave MLによる課題の解決
3. MySQL HeatWave概要

4. MySQL HeatWave MLの使い方機械学習概要

4

Copyright © 2022, Oracle and/or its affiliates機械学習とは？
Arthur Samuel の定義

明示的にプログラミングすることなくコンピュータが能力を獲得する研究分野
Tom Mitchell の定義

コンピュータプログラムが、タスクのクラスTとその性能指標Pに関して「経験Eから学習する」とは、「T内のタスクに対するPがEにより改善する」ことを言う

5

Copyright © 2022, Oracle and/or its affiliates機械学習とは？
Arthur Samuel の定義

明示的にプログラミングすることなくコンピュータが能力を獲得する研究分野

プログラミングの場合

機械学習の場合

データ
プログラム

6

データ

コンピュータCopyright © 2022, Oracle and/or its affiliates

出力

出力
コンピュータ

プログラム
(モデル)

機械学習とは？
Tom Mitchell の定義
コンピュータプログラムが、タスクのクラスTとその性能指標Pに関して「経験Eから学習する」とは、「T内のタスクに対するPがEにより改善する」ことを言う
具体例で考えると・・・• タスク：明日の売上を予測する• 経験：過去の売上データ• 性能指標：実際の売上との誤差⇒ 過去の売上データから明日の売上データを予測し、その誤差を少なくしていく

7

Copyright © 2022, Oracle and/or its affiliates機械学習の種類

8

教師あり学習教師なし学習

正解を含むデータを提供し、そのデータから学習してモデルを作成する

正解データなしで入力したデータから特徴やルールを学習してモデルを作成する

半教師あり学習

強化学習

少数の正解を含むデータと大量の正解を含まないデータを提供し、それらのデータから学習してモデルを作成する「エージェント」が「環境」の中で最も多く報酬が得られるような振る舞いを試行錯誤しながら学習し、モデルを作成するCopyright © 2022, Oracle and/or its affiliates代表的なタスク
教師あり学習・分類：いくつかのクラスに識別する
・回帰：連続する値を予測する

半教師あり学習9

Copyright © 2022, Oracle and/or its affiliates

教師なし学習・クラスタリング：似た特徴を持つものを識別する

強化学習機械学習の活用例
分類 (Classification)：いくつかのクラスに識別する

活用例）• Eメールがスパムか否かを判定する• ローンを承認していい顧客かどうか判定する• 顧客の解約率の予測する (解約率を高・中・低に分類する)
回帰 (Regression)：連続する値を予測する

活用例）• 住宅価格を予測する• 将来の売上を予測する• 顧客の待ち時間を予測する

10

Copyright © 2022, Oracle and/or its affiliates

学習(Training)と推論(Inference)

学習

学習用の
入力データ

機械学習の
アルゴリズム予測モデル

1. 学習用のデータから機械学習のアルゴリズムを使って学習し、モデルを作成する

推論

2. そのモデルを使って推論用のデータから結果を予測する

推論用の
入力データ
11

学習と推論の流れ

Copyright © 2022, Oracle and/or its affiliates

予測モデル

予測結果

機械学習アルゴリズムの例
分類

回帰• デシジョンツリー

• 線形回帰• ロジスティック回帰• ベイズ線形回帰• ランダムフォレスト• ランダムフォレスト• ニューラルネットワーク• ブーストデシジョンツリー

• サポートベクターマシーン• ニューラルネットワーク

・

・

・

・

・

・

様々な機械学習アルゴリズムが存在する
12

Copyright © 2022, Oracle and/or its affiliates機械学習を現場で活用する流れ (モデルの作成まで)

ビジネス上の目的を設定する

データの中から特徴量(※)を抽出し、最適なアルゴリズムを選択する※予測の手掛かりとなる変数

必要なデータを集める、
データの形式を整える

モデルが完成する

データを使って学習する、
ハイパーパラメータ(※)をチューニングする※機械学習アルゴリズムの挙動を設定するパラメータ(モデル学習する前段階で設定するパラメータ)

13

Copyright © 2022, Oracle and/or its affiliates

モデルのチューニング過程

特徴量エンジニアリング

前処理

•
•
•
•

データクレンジング
欠損値の補完
データの結合
標準化

14

•
•
•

特徴量の選択
カテゴリ変数のエンコーディング
特徴量の分割Copyright © 2022, Oracle and/or its affiliates

ハイパー
パラーメーター
チューニングアルゴリズム選択•

最適なアルゴリズムの選択•

最適なハイパーパラーメータの選択

チューニングされたモデル機械学習のライフサイクル

より最新のデータ、より関連性の高いデータを使って再学習することでモデルの正確性を向上できる

モデルの
作成

モデルの
品質管理

モデルの
配置

モ
デ
ル
の
正
確
性

モデルの再学習頻度

15

Copyright © 2022, Oracle and/or its affiliates機械学習の課題とMySQL HeatWave MLによる
課題の解決

16

Copyright © 2022, Oracle and/or its affiliates機械学習は
まるで魔法のようなのになぜみんな使わないの？

機械学習

難しい &
お金がかかるは機械学習の工程と各工程での課題
工程

結論を導く
アルゴリズムを選択
大量のデータを収集

データの移動と加工は手間とコスト、時間がかかる面倒な作業

パラーメーターを選択

正しいアルゴリズムとパラーメーターを選択できるか？

統計的な演算を行ってモデルを作成するためのアルゴリズムを「トレーニング」

推論や予測の精度に大きな影響があるため重要ではあるが、トレーニングに非常に長い時間がかかる (※)※トレーニングは、推論に比べて非常に時間がかかる

19

Copyright © 2022, Oracle and/or its affiliates

実際のデータに対して推論を実行

ブラックボックス化、
なぜそのモデルがその選択をしたのか分からない機械学習の課題• データの準備に手間がかかる、データのセキュリティを担保することが難しい• 機械学習に関する広範な専門知識とデータサイエンス専門家の関与が必要• 膨大な数のアルゴリズム/モデルから最適なものを選択する必要がある• アルゴリズムごとにハイパーパラメータのチューニングが必要• 特徴量の抽出が複雑化する傾向がある• データ型毎に異なるデータ前処理をする必要があり手間がかかる• モデルの品質を維持する難しさ• コンセプトドリフト＆データドリフト(※)の検出と再トレーニングが必要であるが、学習を繰り返し行うことは容易ではない• モデルの品質と公平性を高めるための最適化• ほとんどの機械学習フレームワークがPythonであるため、Pythonの専門知識を必要とする※ドリフト：何らかの予期せぬ変化により、モデルの精度が劣化すること
20

Copyright © 2022, Oracle and/or its affiliates機械学習を活用するためにはデータベースからデータを取り出し、様々な処理を行う必要がある

21

Copyright © 2022, Oracle and/or its affiliates

MySQL HeatWave MLで機械学習は簡単に

22

Copyright © 2022, Oracle and/or its affiliates機械学習の工程と各工程での課題
工程

結論を導く
アルゴリズムを選択
大量のデータを収集

既にDBにあるデータを活用

パラーメーターを選択

AutoMLの活用

統計的な演算を行ってモデルを作成するためのアルゴリズムを「トレーニング」

圧倒的に高速な「トレーニング」

実際のデータに対して推論を実行

全てのモデルに対して「説明」可能

機械学習の悩みをHeatWaveが解決

23

Copyright © 2022, Oracle and/or its affiliates

HeatWave: Native machine learning capability
既にDBにあるデータを活用可能、モデルもDB内で管理する為MLOpsも実現しやすい
Neither data nor model leaves MySQL HeatWave
HeatWave: Native machine learning capability

Sensitive Model/Data
Boundary

Neither data nor model leaves MySQL HeatWave
Traditional
way to run ML on
従来の方法でMySQLデータに対するMySQL data
機械学習処理を行う場合

Traditional way to run ML on
Sensitive Model/Data Boundary
MySQL data

Train model
requestML application

requestPull
ML
Training
data
ML
Model

TrainedModel
Inference
requestInference
request

ML
Model

ML
ML
Inference InferencePull

data

SQL

ML
ML
Explanation
Explanation

8

24

8

Copyright © 2021, Oracle and/or its affiliates | Confidential: Internal

Copyright © 2021, Oracle and/or its affiliates | Confidential: Internal

Copyright © 2022, Oracle and/or its affiliates

Train model
SQL model
Train
Train model

Inference
Inference
Inference
SQL
Pull
data

ML
Training
MySQLHeatWave
HeatWave
ML Training
HeatWave

ComputeSQL

Trained
Model

HeatWave ML
ComputeMySQL
Database

Pull
data

Sensitive Model/Data
BoundaryMySQL
HeatWave

HeatWave ML

Sensitive Model/Data Boundary MySQL
ML application
Database
Train modelML Training

HeatWave ML

SQL

Inference/
Explanation

Train

MySQL
ClientMySQLInference/
Explanation

Train

ClientTrainedTrained
Model
Model

ML Inference

ML Inference

ML ML
Explanation
Explanation

MySQL
MySQL

Oracle AutoMLにより簡単にモデルを作成

データセット
データの前処理
アルゴリズムの選択

アダプティブなサンプリング
特徴量の選択ハイパーパラーメーターのチューニング

Prediction
Explainer
Model explainer
チューニングされたモデル

25

Copyright © 2022, Oracle and/or its affiliates

この工程を自動化

Oracle AutoMLにより簡単にモデルを作成

機械学習モデル生成で繰り返されるトリアージとエラー処理のステップを自動化する

より良いモデルの作成を加速させる

各アルゴリズムの詳細な理解は必要ない

AutoMLは、最終的なモデルを提供することも、そこからモデルを微調整することも可能 (※)※現時点でのMySQL HeatWave MLは、モデルの微調整機能は提供していません
26

Copyright © 2022, Oracle and/or its affiliates

MySQL HeatWave MLにより高速なトレーニングを実現
データセットトレーニング時間 (分)Redshift ML

HeatWave ML

性能向上(2 ノード)分類

HeatWave MLは
Redshift MLより

平均

25倍
高速

Airlines

90.00

2.71

33.21

Bank

90.00

3.72

24.19

CNAE-9

失敗

5.91

X

Connect-4

90.00

7.13

12.62

Fashion MNIST

失敗

181.85

X

Nomao

90.00

3.30

27.27

Numerai

90.00

0.34

264.71

Higgs

90.00

68.58

1.31

Census

90.00

1.22

73.77

Titanic

90.00

0.47

191.49CC Fraud

90.00

29.06

3.10

KDD Cup

失敗

3.55

X

幾何平均

90.00

3.56

25.27

回帰

27

Copyright © 2022, Oracle and/or its affiliates

Black Friday

90.00

1.14

78.80

Diamonds

90.00

2.40

37.42

Mercedes

失敗

1.16

X

News Popularity

90.00

0.60

149.13

NYC taxi

90.00

7.34

12.26

Twitter

90.00

44.24

2.03

幾何平均

90.00

3.52

25.58

MySQL HeatWave MLにより高速なトレーニングを実現

ノード数を追加することによりトレーニング時間を短縮可能

ヒッグス粒子のデータセット
8000

11倍

7108
7000

6000

モデルのチューニング
を高速化

時間 (秒)

5000

3984

8倍

4000

3000

2456

2000

1563

1282

1000

0
1

2

4

ノード数
28

Copyright © 2022, Oracle and/or its affiliates

816

特徴量の選択を高速化

MySQL HeatWave MLではモデルの「説明」も可能ある銀行が口座保持者に定期預金を勧誘した場合のデータで作成したモデルでの例
mysql> SELECT model_explanation FROM ML_SCHEMA_root.MODEL_CATALOG
WHERE model_handle=@model;+----+----------+--------+| id | feature | impact |+----+----------+--------+| 1 | duration | 0.0658 || 2 |pmonth | 0.0303 || 3 |pday | 0.0152 || 4 | contact | 0.0148 || 5 | poutcome | 0.0138 || 6 | balance | 0.0085 || 7 | housing | 0.007 || 8 |age | 0.0059 |+----+----------+--------+
29

Copyright © 2022, Oracle and/or its affiliates

このモデルで最も影響の大きい特徴量※duration：勧誘電話の通話時間、pmonth：勧誘を行った月
直感的には影響が大きそうだが、実際には影響が小さい特徴量※balance：口座残高

HeatWave MLと他のクラウド・データベースのソリューションとの比較

機能

HeatWave ML

Redshift ML

Snowflake ML

API

SQL

SQL

Java, Scala, Pythonでプログラミング

MLが内包されたデータベース

Yes

No

No

データとモデルをDB内に格納

Yes

No

No

全てのモデルに対する説明可能性

Yes

No

No

完全な自動化

Yes

No

No

ノードを追加して実行可能

Yes

No

No

30

Copyright © 2022, Oracle and/or its affiliates

近日実装予定の機能：リアルタイムの伸縮性

31

Copyright © 2022, Oracle and/or its affiliates.

HeatWaveノードのノード数追加/削除をオンラインで実行可能に
手動でのノード追加 (従来型)
既存のN台構成のHeatWave
クラスターへのSQL受付停止

サイズ変更
開始

追加するK台のノード割り当てN台のHeatWaveの非アクティブ化
N + K台構成のプロビジョン

InnoDBのテーブルのデータを
N + K台全てにロード

新手法でのノード追加
既存のN台構成のHeatWave
クラスターへのSQL受付

サイズ変更
開始

32

追加するK台のノード割り当てCopyright © 2022, Oracle and/or its affiliates

InnoDBのテーブルのデータをK台にロード

N + K台構成となったHeatWave
クラスターでのSQL受付開始

メタデータの同期

N + K台構成となったHeatWave
クラスターでのSQL受付開始

N + K台構成のクラスターの再アクティブ化

ノード数を増加することによりデータロード時間も短縮、
メタデータの同期による一時停止時間は0.2ミリ秒以下
大きなクラスターサイズへの変更によるデータロード時間の短縮

クエリの一時停止時間
1

4TBのデータのロード時間 (秒)300

一時停止時間 (ミリ秒)

250

200

150

100

4→6

高速化
ほぼオブジェクトストレージの帯域性能に相当

33

0.6

0.4

0.2

50

0

0.8

Copyright © 2022, Oracle and/or its affiliates

8 → 1622 → 41

予測可能
時間はノードあたりのデータサイズに依存

0

5 → 2929 → 11

11 → 17

17 → 8

いつでも利用可能
HeatWaveノードのメモリー内に格納されたパーティション構成情報の更新の間だけ一時停止

競合サービスとの比較• HeatWaveは1ノード単位で自由にサイズ変更(ノード数変更)可能• HeatWaveでは停止時間はほとんど発生しない、データ再構成も不要

Snowflake
特定のサイズへのみ
変更可能

AWS Redshift
10 –15分間クエリの実行停止
手動でのデータ再構成
32

34

Copyright © 2022, Oracle and/or its affiliates

64

128

リアルタイムの伸縮性のデモ• デモ動画https://youtu.be/DuG2iPqJffc?t=1269s• デモ内容• TPCHのQ1を繰り返し実行しながらHeatWaveノードの数を5ノードから29ノードに変更⇒ 実行時間が37秒程度 → 7秒程度に高速化される (画面上部のコンソール)⇒ 最初から存在するHeatWaveノード(1～5)のメモリ使用量は、ノード追加が終わるまでは変化せず、ノード追加が完了した瞬間に約300GB → 約60GBに縮小される (画面下部のコンソール)• TPCHのQ1を繰り返し実行しながらHeatWaveノードの数を29ノードから11ノードに変更⇒実行時間が7秒程度 → 17秒程度に変化する (画面上部のコンソール)⇒ 各ノードのメモリ使用量は約60GB → 約140GB に変化する (画面下部のコンソール)

35

Copyright © 2022, Oracle and/or its affiliates

MySQL HeatWave 概要

36

Copyright © 2022, Oracle and/or its affiliates

MySQL HeatWaveとは？
• MySQL Database Service専用のクエリ・アクセラレーター(マネージドのDWHサービス)• MySQL Database ServiceはOracle Cloud Infrastructure(OCI)上で提供している
MySQLのマネージドサービス• インメモリ＆超並列処理により読取り処理を高速化• Oracle Labs(※)のProject RAPIDの成果を活用
https://labs.oracle.com/pls/apex/f?p=94065:12:103385944489261:14• TPC-Hのクエリの処理性能は• Amazon Auroraの1,000倍以上高速、コスト1/3以下• Amazon Redshiftの2.7倍高速、コスト1/3以下• ベンチマークテスト再現手順も公表
https://www.oracle.com/mysql/analytics/performance/
37

Copyright © 2022, Oracle and/or its affiliates

MySQL HeatWaveとは？
• オラクル社の共同設立者 兼 会長 兼 CTO であるラリー・エリソンも注目しているサービス• 決算報告においてMySQL HeatWaveについて何度も言及している• 「HeatWave」というサービス名称はラリーが命名•

38

2020年12月のサービスリリース後も積極的に開発が続いており、先進的な機能を実装し続けている•2021年8月：MySQL Autopilot リリース•

2022年3月：MySQL HeatWave ML リリース など

Copyright © 2022, Oracle and/or its affiliates

MySQL HeatWave MLの使い方• MySQLに接続してSQLを実行するだけで自動的に高速化されるため、使い勝手はMySQLそのもの• ユーザーはHeatWaveノードへアクセスする必要が無い (HeatWaveノードへ直接アクセスしない)※HeatWaveを使う時は、事前にHeatWaveノードにデータをロードしておく必要があります(その後、MySQL上でデータを更新した場合は、HeatWaveノード上のデータも自動的に更新されます)

HeatWave
ユーザーによるアクセス

オラクルクラウド上のサーバー(クライアント)

39

Copyright © 2022, Oracle and/or its affiliates

バックグラウンド通信

HeatWave専用のMySQL Database Service

HeatWaveノード × 2台～64台

MySQL HeatWaveによる分析処理の大幅な性能向上

400G, 64 cores
2,000

1,700.39

クエリ処理時間 (秒)

1,600

400倍

1,200

高速化

800

400

4.21

0
MySQL

MySQL Analytics

TPC-Hのクエリ処理時間の幾何平均

40

Copyright © 2022, Oracle and/or its affiliates

HeatWaveの顧客事例

Big Queryと比較して300倍高速 & 85%のコスト削減Auroraと比較して10倍高速、コストも大幅に低減

Auroraと比較して複雑なクエリ処理が1,000
倍高速 & 60%のコスト削減

想定性能の90倍高速で複雑な分析処理を毎時実行可能にミリ秒レベルの応答性能、
Aurora & Redshiftの半額で利用可能

他のクラウド・サービスよりも3倍高速かつ60%低コスト

EC2上のMySQLよりも5倍高速& 半分のコスト

MySQL HeatWaveにAWS Auroraから移行することで、性能が10倍向上し、コストも大幅に削減することができました

しかも、そのために
アプリケーションを変更する必要はありませんでした。

鈴木 健治

株式会社ファンコミュニケーションズ A8事業部
プロダクト開発部長 兼 A8 2.0推進室長
42

Copyright © 2022, Oracle and/or its affiliatesゲーム難易度の調整やイベントの参加率をリアルタイムで分析したいと考えていました。
MySQL HeatWaveを導入したおかげで想定の最大90倍もの高速化を実現し、
リアルタイム分析を毎時間行うことができます。
プログラム開発の負荷や事前の想定処理時間では実現不可能と思っていたので、本当に驚きです。

川本 昌之
ジニアス・ソノリティ株式会社
取締役 / 最高技術責任者
43

Copyright © 2022, Oracle and/or its affiliates

HeatWave最小構成での概算月額費用(データ量約1.6TB以内の場合)

44

Copyright © 2022, Oracle and/or its affiliates.

HeatWave最小構成 (データ量約1.6TB以内)
Private Subnet•

HeatWaveノードの構成台数は、最低2台、最大64台•

HeatWaveノードはインメモリでデータを保持し、1ノードで約800GBのデータを保持できる(HeatWave 8.0.28-u2より、データ圧縮機能が実装され、1ノード当たりに格納できるデータ量が400GB→800GBに拡張されました)[概算見積もり方法]
MySQL Databasefor HeatWave × 1台

MySQL HeatWave × 2台•

最低限必要なHeatWaveノード数は、「分析対象データ量/800GB」で計算する(最小構成は2ノードから)•

HeatWaveノードのストレージ領域は見積不要(HeatWaveノードが内部的に使用するストレージ領域の費用は、HeatWaveノードの費用に含まれている)•
MySQL Database – Storage MySQL Database – Backup Storage
1000GB
1000GB

HeatWave用のMDSが使用するストレージ領域、バックアップ用
ストレージ領域は見積もり必要•

MDSが使用するストレージ領域には、実データ以外にログデータ等も格納されるため、実データ量よりも余裕をもって大きく確保する45

Copyright © 2022, Oracle and/or its affiliates.

MySQL HeatWave MLの使い方

46

Copyright © 2022, Oracle and/or its affiliates

MySQL HeatWave MLの基本的な使い方
1. MySQL HeatWave環境を構築する

2. MySQL HeatWaveにデータを入れ、HeatWaveが使える状態にする•

学習用データを格納するテーブルと、推論用データを格納するテーブルを分ける•

学習用データには正解の列を含めておく

3. MySQL HeatWave MLのプロシージャを実行し、学習してモデルを作成する
4. MySQL HeatWave MLのプロシージャを実行し、モデルを使って推論する

47

Copyright © 2022, Oracle and/or its affiliates

MySQL HeatWave環境の構築方法＆HeatWaveが使える状態にする方法
OCIのチュートリアルページにMySQL Database Service、HeatWaveのチュートリアルを掲載しています！(入門編：その9、その10)画面キャプチャー付きで詳細に手順を解説しています！
チュートリアル : Oracle Cloud Infrastructure を使ってみよう
https://oracle-japan.github.io/ocitutorials/

48

Copyright © 2022, Oracle and/or its affiliates

入門編 - Oracle Cloud Infrastructure を使ってみよう
https://oracle-japan.github.io/ocitutorials/beginners/

学習用データと推論用データ
機械学習の「分類」のチュートリアルとしてよく使われるアヤメの品種分類での例
学習用データ正解であるclass列が無いテーブル

推論用データclass列を正解として学習させる(教師あり学習)mysql> SELECT * FROM ml_data.iris_train;

mysql> SELECT * FROM ml_data.iris_test;+--------------+-------------+--------------+-------------+-----------------++--------------+-------------+--------------+-------------+| sepal length | sepal width | petal length | petal width | class|| sepal length | sepal width | petal length | petal width |+--------------+-------------+--------------+-------------+-----------------++--------------+-------------+--------------+-------------+

|

6.4 |

2.8 |

5.6 |

2.2 | Iris-virginica

|

|

5.9 |

3 |

4.2 |

1.5 |

|

5 |

2.3 |

3.3 |

1 | Iris-setosa

|

|

6.9 |

3.1 |

5.4 |

2.1 |

|

4.9 |

2.5 |

4.5 |

1.7 | Iris-virginica

|

|

5.1 |

3.3 |

1.7 |

0.5 |

|

4.9 |

3.1 |

1.5 |

0.1 | Iris-versicolor |

|

6 |

3.4 |

4.5 |

1.6 |

<略>

<略>

|

5.7 |

3 |

4.2 |

1.2 | Iris-setosa

|

|

5.2 |

4.1 |

1.5 |

0.1 |

|

4.4 |

2.9 |

1.4 |

0.2 | Iris-versicolor |

|

6.7 |

3.1 |

4.7 |

1.5 |

|

4.8 |

3 |

1.4 |

0.1 | Iris-versicolor |

|

6.7 |

3.3 |

5.7 |

2.5 |

|

5.5 |

2.4 |

3.7 |

|

6.4 |

2.9 |

4.3 |

1.3 |

1 | Iris-setosa|+--------------+-------------+--------------+-------------+-----------------++--------------+-------------+--------------+-------------+

120 rows in set (0.00 sec)

30 rows in set (0.00 sec)49

Copyright © 2022, Oracle and/or its affiliates

sepal length
sepal width
petal length
petal width
class：ガクの長さ：ガクの太さ：花びらの長さ：花びらの太さ：アヤメの品種(セトサ種、バージカラー種、バージニカ種)

MySQL HeatWave MLのプロシージャ
ML_TRAIN : 学習用データを入力してモデルを作成
ML_MODEL_LOAD : HeatWave MLにモデルをロード
ML_PREDICT_ROW : 1行以上のデータに対する予測値をJSONで生成
ML_PREDICT_TABLE : テーブルを入力として各行に対する予測値を生成し、新しいテーブルに保存

ML_EXPLAIN_ROW : 1行以上のデータに対する「説明」をJSONで生成
ML_EXPLAIN_TABLE : テーブルを入力として各行に対する「説明」を生成し、新しいテーブルに保存
ML_SCORE : モデルの妥当性、品質をスコアで算出して確認
ML_MODEL_UNLOAD : HeatWave MLで使用しているモデルをアンロード

50

Copyright © 2022, Oracle and/or its affiliates

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

51

Copyright © 2022 Oracle and/or its affiliates.

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

52

Copyright © 2022 Oracle and/or its affiliates.

HeatWave MLでの「推論」 ※行の場合
ML_PREDICT_ROW(対象データ,「 トレーニング」済みモデル名)• 指定した行データに対する予測
実行例) 作成したモデルを使って、アヤメのデータを1行だけ与えて品種(class列)を求める
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
53

Copyright © 2022 Oracle and/or its affiliates.

：ガクの長さ：ガクの太さ：花びらの長さ：花びらの太さ：アヤメの品種(セトサ種、バージカラー種、バージニカ種)

HeatWave MLでの「推論」 ※テーブルの場合
ML_PREDICT_TABLE(対象データ, 「トレーニング」済みモデル名, 出力テーブル)• 指定したテーブル全体のデータに対する予測• 結果は出力テーブルに格納される実行例) 作成したモデルを使って、アヤメの品種(class列)を求める
mysql> CALL sys.ML_PREDICT_TABLE('ml_data.iris_test', @iris_model, 'ml_data.iris_predictions’);
mysql> SELECT * FROM iris_predictions LIMIT 2¥G*************************** 1. row ***************************
sepal length: 5.9
sepal width: 3
petal length: 4.2
petal width: 1.5
Prediction: Iris-setosa*************************** 2. row ***************************
sepal length: 6.9
sepal width: 3.1
petal length: 5.4
petal width: 2.1
Prediction: Iris-virginica
54

Copyright © 2022 Oracle and/or its affiliates.

HeatWave MLでの「説明」 ※行の場合
ML_EXPLAIN_ROW(対象データ,「 トレーニング」済みモデル名)• 指定した行データに対する説明
実行例) 分類結果に対する説明を求める
SELECT sys.ML_EXPLAIN_ROW(JSON_OBJECT("sepal length", 7.3, "sepal width", 2.9,
"petal length", 6.3, "petal width", 1.8), @iris_model);+------------------------------------------------------------------------------+| sys.ML_EXPLAIN_ROW(@row_input, @iris_model)|+------------------------------------------------------------------------------+| {"Prediction": "Iris-virginica", "petal width": 1.8, "sepal width": 2.9,|
このモデルによって| "petal length": 6.3, "sepal length": 7.3, "petal width_attribution": 0.2496, |バージニカ種に分類した時に、| "petal length_attribution": 0.9997}|
影響度が大きかった列を+------------------------------------------------------------------------------+

確認できる

sepal length
sepal width
petal length
petal width
class
55

Copyright © 2022 Oracle and/or its affiliates.

：ガクの長さ：ガクの太さ：花びらの長さ：花びらの太さ：アヤメの品種(セトサ種、バージカラー種、バージニカ種)

HeatWave MLでの「説明」 ※テーブルの場合
ML_EXPLAIN_TABLE(対象データ, 「トレーニング」済みモデル名, 出力テーブル)• 指定したテーブル全体のデータに対する説明• 結果は出力テーブルに格納される実行例) 分類結果に対する説明を求める
mysql> CALL sys.ML_EXPLAIN_TABLE('ml_data.iris_test', @iris_model, 'ml_data.iris_explanations’);
mysql> SELECT * FROM iris_explanations LIMIT 1¥G*************************** 1. row ***************************
sepal length: 5.9
sepal width: 3
petal length: 4.2
petal width: 1.5
Prediction: Iris-setosa
petal length_attribution: -0.0088
petal width_attribution: 0.1793

56

Copyright © 2022 Oracle and/or its affiliates.

単一のデータベースでの機能提供
説明可能性

HeatWave ML

Advantages

自動化
高速

セキュリティ
クラスターサイズに応じた性能拡張性
追加料金不要MySQL HeatWave MLを
是非お試し下さい！！
この後12:00～、MySQL HeatWaveのハンズオン会を開催します。
HeatWave MLも試して頂けますので、気になった方は是非ご参加下さい！
飛び入り参加可能です！！ Zoomのみで開催します。(YouTube Liveでの配信はありません)
Zoom URLはconnpassのページでも案内しています。
Zoom URL：https://bit.ly/OSC2022Nagoya_MySQL
58

Copyright © 2022, Oracle and/or its affiliates

参考情報

59

Copyright © 2022, Oracle and/or its affiliates

ドキュメント、リリースノート• MySQL Database Serviceのドキュメント
https://docs.oracle.com/en-us/iaas/mysql-database/index.html
https://docs.oracle.com/ja-jp/iaas/mysql-database/index.html• MySQL Database Serviceのリリースノート
https://docs.oracle.com/en-us/iaas/releasenotes/services/mysql-database/• HeatWaveのドキュメント
https://dev.mysql.com/doc/heatwave/en/• HeatWaveのドキュメント
https://dev.mysql.com/doc/relnotes/heatwave/en/

60

Copyright © 2022, Oracle and/or its affiliates.

Oracle Cloud Days 2021でのMDS＆HeatWave関連セッション• トヨタ自動車株式会社様の発表• 先進モビリティ・サービス実現のためのデータ収集・管理基盤
https://www.oracle.com/jp/cloud/events/cloud-days/on-demand/#tab3• 株式会社りらく様の発表• 高性能なMySQL Database Serviceを採用したシステム統合計画
https://www.oracle.com/jp/cloud/events/cloud-days/on-demand/#tab3• 株式会社ファンコミュニケーションズ様の発表• 他のクラウドから基幹データベースと分析基盤を移行！その理由と効果
https://www.oracle.com/jp/cloud/events/cloud-days/on-demand/#tab2※発表資料のダウンロードだけでなく、セッション動画も視聴可能ですので是非ご覧下さい！

61

Copyright © 2022, Oracle and/or its affiliates

HeatWave検証事例 (パートナーブログ、検証まとめ資料)• 株式会社アトミテック様• Oracle Cloud MDS (MySQL Database Service)のHeatWave機能を検証しました！
https://cloudii.jp/news/blog/oracle-cloud/mds-heatwave/• 株式会社スマートスタイル様• MySQLで分析処理を高速化させる HeatWave を使ってみた
https://blog.s-style.co.jp/2021/02/7211/• MySQL Database Service HeatWave と Amazon Redshift の TPC-H 派生ベンチマーク比較
https://blog.s-style.co.jp/2021/05/7585/• HeatWave と AQUA (Advanced Query Accelerator) for Amazon Redshift の比較
https://blog.s-style.co.jp/2021/06/7937/• 株式会社データベーステクノロジ様• 【Oracle Cloud Infrastructure】MySQL Database Service 高可用性＆HeatWave 検証
https://www.slideshare.net/ssuserbe6417/oracle-cloud-infrastructuremysql-database-servise-heatwave249604448
62

Copyright © 2022, Oracle and/or its affiliates.

HeatWave検証事例 (パートナーブログ)• SCSK株式会社様• [MySQL]HeatWave特集第1回 2021年、大注目の「HeatWave」とは？
http://scsk-db.jp/mysql/topics/2021/03/04-153223.html• [MySQL]HeatWave特集第2回 HeatWaveとLookerの連携手順
http://scsk-db.jp/mysql/topics/2021/03/05-094735.html• [MySQL]HeatWave特集第3回 LookerからHeatWaveのデータを表示する
http://scsk-db.jp/mysql/topics/2021/03/05-161437.html• テクバン株式会社様• MDSのHeatWave機能を使ってみた
https://blogs.techvan.co.jp/oci/2021/03/15/mds%E3%81%AEheatwave%E6%A9%9F%E8%83%BD%E3%82%
92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F/• Amazon Aurora から MDS(HeatWave) へのレプリケーション
https://blogs.techvan.co.jp/oci/2021/03/24/amazon-aurora-%e3%81%8b%e3%82%89-mdsheatwave%e3%81%b8%e3%81%ae%e3%83%ac%e3%83%97%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3/
63Copyright © 2022, Oracle and/or its affiliates.

Oracle Cloud Infrastructure 無償学習プログラム「だれでも。必要なときに。必要な学習を。」
Oracle Cloud への移行をスキル習得の側面からご支援します。
無償の OCI トレーニングと期間限定の無償認定試験でOracle Cloud Infrastructure をはじめませんか。

Training

Certification

OCI ラーニング・サブスクリプション• OCI トレーニング (日本語・英語)• テキストの閲覧• Oracle Cloud を使用した
実機演習• 資格取得準備セミナー• 模擬問題集• ライブ・セッション

OCI 認定試験• OCI Foundations 試験の無償受験(オンライン試験)

今すぐ学習を開始できます1
Oracle University Web
ページ から、ロールにあった学習パスを選択

ロールにあった認定資格を選択✔ 入門・営業/プリセールス向け
Oracle Cloud Infrastructure Foundation

2 [Enroll this pass] をクリックし、
Oracle SSOアカウントでサインイン

3 利用規約をご確認後、トレーニングを開始。

✔ 中級・アーキテクト/構築担当者向け
Oracle Cloud Infrastructure Architect Associate✔ 上級・アーキテクト/構築担当者向け
Oracle Cloud Infrastructure Architect Professional✔ 中級・運用担当者向け
Oracle Cloud Infrastructure Operation※随時、追加されていきます。

無償学習プログラムを活用して多くのプロフェッショナルを育成し、スキルを社内外に証明してください！
64

Copyright © 2022, Oracle and/or its affiliates.

Oracle Cloud Infrastructure の日本語書籍

Amazon、その他オンラインショップで単行本・電子書籍ともに販売！
Oracle Cloud Infrastructure
エンタープライズ構築実践ガイド
著者：大塚 紳一郎 氏

著者：日本オラクル株式会社

株式会社野村総合研究所
NRI認定ITアーキテクト／Oracle ACE

塩原 浩太, 近藤 暁太, 丸川 祐考, 小西 朋子,
南野 英梨子, 山田 恭平, 林 妙子, 宮崎 博之,
土岐 建太, 中川 健太郎

2021年1月5日発売

2021年7月21日発売予定

書籍詳細：

書籍詳細：

技術評論社様ホームページ

翔泳社様ホームページ

https://gihyo.jp/book/2021/9784-297-11809-9

https://www.shoeisha.co.jp/book/detai
l/9784798169033

https://www.amazon.co.jp/dp/4297118092
65

Copyright © 2022, Oracle and/or its affiliates.

Oracle Cloud Infrastructure 徹底入門

https://www.amazon.co.jp/dp/479816903X/

Oracle Cloud Infrastructure 主要情報一覧
Oracle Cloud Infrastructure 主要情報をまとめたポータル（以下１−９を含む）
https://blogs.oracle.com/oracle4engineer/column_oci_links
Oracleアーキテクチャ・センター

1https://docs.oracle.com/ja/solutions/
クラウド環境の検討や実装に役立つように設計されたリファレンス・アーキテクチャとソリューショ
ン・プレイブックのカタログを多数掲載。ダウンロード、カスタマイズ、およびデプロイできるコードま
たはスクリプトも含む。
リファレンス・アーキテクチャ、ソリューション・プレイブックを概説した下記ブログもご参照ください。
https://blogs.oracle.com/oracle4engineer/move-workload-to-oraclecloud2

5

https://oracle-japan.github.io/ocitutorials/
OCIを使ってみよう! という人のためのチュートリアル集。各項ごとに画面ショットなどを交えながらステップ・バイ・ステップで作業を進めて、OCIの機能についてひととおり学習することができるよ
うになっています。

6

7

Oracle Code Night

8

オラクルエンジニア通信

OCIお客様活用事例

3

https://blogs.oracle.com/oracle4engineer/oracle-cloud-platformpaasiaas
OCIを活用したお客様の事例のご紹介。データベースはもちろんのこと、アナリティックス、セキュ
リティ、システム管理、コンテンツ管理、ブロックチェーン、チャットボットなど様々なサービスのお客様事例をご紹介します。

https://oracle-japan.github.io/ocidocs/
OCIを使ってみたい! という方のための技術ドキュメント集。 OCIのサービス別技術資料をはじめ、PPTスライドを中心とした公開ドキュメントや、セミナーで使用した資料をアップロードしています。
66

Copyright © 2022, Oracle and/or its affiliates.

https://oracle-code-tokyo-dev.connpass.com/
オラクルのテクノロジーだけに限定しない、Developer（開発者）のDeveloper（開発者）によるDeveloper（開発者）のための開発者向けコミュニティ Meetup セミナーのこと。
ほぼ毎週 様々なテーマで開催中！

https://blogs.oracle.com/oracle4engineer/
技術資料、コラム、マニュアルなど、OCIに関するその他の情報は、「オラクルエンジニア通信」
よりお届けしています。

OCI活用資料集

4

OCIセミナー情報https://blogs.oracle.com/oracle4engineer/column_cloud_seminar
今後開催予定のウェビナー(含むハンズオントレーニング)についてご案内します。
ほぼ毎週 2回＋ハンズオンを様々なテーマで開催中！

OCIサービスアップデート
https://blogs.oracle.com/oracle4engineer/category/o4e0-4サービス・アップ
デート
毎月公開するOCIのサービス・アップデート情報をスライドで分かり易く説明。各サービスの詳
細なアップデート情報は、各サービスのドキュメントや下記「OCI活用資料集」をご覧ください。

チュートリアル: OCI を使ってみよう

9

OCIドキュメント
各サービスのマニュアル。
https://docs.cloud.oracle.com/ja-jp/iaas/Content/home.htm

【お問い合わせ先】
MySQLお問い合わせ窓口
0120-065-556
MySQL-Sales_jp_grp@oracle.com

67

Copyright © 2022, Oracle and/or its affiliates.