>100 Views
February 25, 25
スライド概要
HeatWavejpは、MySQL HeatWave の良さを知っていただき、参加者同士でノウハウやナレッジを共有できるユーザーコミュニティです。参加者同士のつながりを深めるため、以下の活動を行ってまいります。 COMMUNICATION *Slackやconnpassを活用したユーザー同士のコミュニケーションの場の提供 EVENT *オンライン/オフラインでのMeetupセミナーや勉強会の開催(隔月程度) SHARING *製品情報や最新アップデート、リリース情報の共有 INTERACT *参加者のコミュニティ・ネットワークやユーザー同士の交流を促進
HeatWavejp Meetup #10 Always Free の HeatWave を試してみた Copyright © 2024 HeatWavejp All Rights Reserved. 2024年10月17日(木) 株式会社スマートスタイル データベース部 村田
目次 1. Always Free とは 2. 制限事項、提供範囲、注意事項 3. 立ち上げてみた 4. こんなことできるかやってみた 5. まとめ Copyright © 2024 HeatWavejp All Rights Reserved.
Always Free とは すべてのOracle Cloud Infrastructureアカウント(無料か有料かに関係なく)には、アカウントの有効期間中、テナンシ のホーム・リージョンに無料で使用できるリソースのセットがあります。これらのリソースでは、コンソールにAlways Free対象 ラベルが表示されます。 (...) Always Freeリソースを使用して、作成するアプリケーションのサポートに必要な仮想マシン(VM)インスタンス、Oracle Autonomous Databaseおよびネットワーキング、ロード・バランシングおよびストレージ・リソースをプロビジョニングできま す。これらのリソースを使用すると、小規模なアプリケーションを実行したり、概念実証のテストを実行したりできます。 ※参照 : https://docs.oracle.com/ja-jp/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm ⚫ OCI アカウントで無料で使用できるリソース ⚫ 複数のリソースをプロビジョニングすることが可能 インフラストラクチャ 証明書 Compute コンピュート・インスタンスのIPアドレス ブロック・ボリューム オブジェクト アーカイブ・ストレージ ボールト リソース・マネージャ データベース Oracle Autonomous Database Oracle NoSQL Database Oracle HeatWave ネットワーキング クラスタ配置グループ ロード・バランシング ネットワーク・ロード・バランサ 仮想クラウド・ネットワーク(VCN) VCNフロー・ログ サイト間VPN 2024年8月7日にリリース Copyright © 2024 HeatWavejp All Rights Reserved. 監視および管理 Application Performance Monitoring コネクタ・ハブ コンソール・ダッシュボード 電子メール配信 フリート・アプリケーション管理 モニタリング中 通知 追加サービス アウトバウンド・データ転送 ロギング 要塞
制限事項、提供範囲、注意事項 ⚫ テナンシのホーム・リージョンに Always Free DB システムを 1 つ無料で作成可能 ⚫ 以下の構成、制限事項がある ✓ DB システムは常に最新バージョンで作成 ✓ MySQL.Free シェイプを使用する必要あり ✓ データおよびログ・ファイルを格納するための固定ストレージ・サイズは 50GB ✓ HeatWave.Free シェイプに基づく 1 ノードの HeatWave クラスタを DB システムに追加可能 ✓ HeatWave AutoML および HeatWave Lakehouse がサポート ✓ HeatWave GenAI はサポートされていない ✓ インバウンドおよびアウトバウンドレプリケーションが許可 ✓ 高可用性および読取りレプリカ機能はサポートされていない ✓ 1日保持の自動バックアップは、デフォルトで有効 ✓ 手動バックアップおよびポイント・イン・タイム・リストアは使用不可 ✓ データベース管理と Ops Insights サービスの統合は使用不可 Copyright © 2024 HeatWavejp All Rights Reserved.
立ち上げてみた ⚫ DB システムの作成まで ① ② Copyright © 2024 HeatWavejp All Rights Reserved.
立ち上げてみた ⚫ DB システムの作成 ✓ 「高可用性」は選択不可 Copyright © 2024 HeatWavejp All Rights Reserved.
立ち上げてみた ⚫ DB システムの作成 ✓ HeatWave クラスタは選択可能 ✓ MySQL.Free … ECPU:1 、メモリー:8GB 、ネットワーク帯域:1Gbps ✓ HeatWave.Free … メモリー : 16GB 、 ノード数 : 1 ✓ レイクハウスは選択可能 Copyright © 2024 HeatWavejp All Rights Reserved.
立ち上げてみた ⚫ DB システムの作成 ✓ ストレージ・サイズは 50GB で固定( IOPS は 3750 )、ストレージの自動増加も選択 不可 ✓ 自動バックアップの無効化は選択不可 ✓ それ以外の設定も選択不可 Copyright © 2024 HeatWavejp All Rights Reserved.
立ち上げてみた ⚫ DB システムの作成 (advanced options) ✓ バージョンは選択不可(最新バージョンが選択される) ✓ クラッシュ・リカバリの無効化は選択不可 現時点では9.0.1 – Innovation になる ✓ データベース管理サービス(パフォーマンス・ハブ)の有効化は選択不可 Copyright © 2024 HeatWavejp All Rights Reserved.
立ち上げてみた ⚫ DB システムの作成後 ✓ Always Free で作成した場合は名前の下に表示される ✓ Always Free を作成した状態で DB システムの作成をすると、Always Free は選択不可 Copyright © 2024 HeatWavejp All Rights Reserved.
立ち上げてみてわかったこと ⚫ テナンシのホーム・リージョンに Always Free DB システムを 1 つ無料で作成可能 ⚫ 制限事項 ✓ DB システムは常に最新バージョンで作成 ✓ MySQL.Free シェイプを使用する必要あり ✓ データおよびログ・ファイルを格納するための固定ストレージ・サイズは 50GB ✓ HeatWave.Free シェイプに基づく 1 ノードの HeatWave クラスタを DB システムに追加可能 ✓ HeatWave AutoML および HeatWave Lakehouse がサポート ✓ HeatWave GenAI はサポートされていない ✓ インバウンドおよびアウトバウンドレプリケーションが許可 ✓ 高可用性および読取りレプリカ機能はサポートされていない ✓ 1日保持の自動バックアップは、デフォルトで有効 ✓ 手動バックアップおよびポイントインタイムリカバリは使用不可 ✓ データベース管理と Ops Insights サービスの統合は使用不可 Copyright © 2024 HeatWavejp All Rights Reserved.
こんなことできるかやってみた ⚫ メトリックの確認 … Copyright © 2024 HeatWavejp All Rights Reserved. 利用可能
こんなことできるかやってみた ⚫ 読取りレプリカの作成 … 利用不可 Copyright © 2024 HeatWavejp All Rights Reserved.
こんなことできるかやってみた ⚫ 手動バックアップの作成… 利用不可 Copyright © 2024 HeatWavejp All Rights Reserved.
こんなことできるかやってみた ⚫ インバウンド・レプリケーションの設定 … Copyright © 2024 HeatWavejp All Rights Reserved. 利用可能
こんなことできるかやってみた
⚫ HeatWave へのデータロードや RAPID ストレージエンジンの使用 …
利用可能
--- データのロード
SQL > CALL sys.heatwave_load(JSON_ARRAY("test"),NULL);
+------------------------------------------+
| INITIALIZING HEATWAVE AUTO PARALLEL LOAD |
+------------------------------------------+
| Version: 3.19
|
|
|
| Load Mode: normal
|
| Load Policy: disable_unsupported_columns |
| Output Mode: normal
|
|
|
+------------------------------------------+
6 rows in set (1.5987 sec)
(…)
+-------------------------------------------------------------------------------+
| LOAD SUMMARY
|
+-------------------------------------------------------------------------------+
|
|
| SCHEMA
TABLES
TABLES
COLUMNS
LOAD |
| NAME
LOADED
FAILED
LOADED
DURATION |
| ----------------------------- |
| `test`
1
0
2
1.44 s |
|
|
+-------------------------------------------------------------------------------+
6 rows in set (1.5987 sec)
Query OK, 0 rows affected (1.5987 sec)
Copyright © 2024 HeatWavejp All Rights Reserved.
--- RAPID ストレージエンジンの使用確認
SQL > EXPLAIN SELECT /*+ SET_VAR(use_secondary_engine=FORCED) */
+----+(...)+------------------------------(...)+
| id |(...)| Extra
(...)|
+----+(...)+------------------------------(...)+
| 1 |(...)| Using secondary engine RAPID.(...)|
+----+(...)+------------------------------(...)+
1 row in set, 1 warning (0.0024 sec)
* FROM test.t1 LIMIT 2;
こんなことできるかやってみた
⚫ HeatWave Lakehouse …
利用可能
--- テーブルの作成
SQL > CREATE TABLE test.t2 (
`r` VARCHAR(10),`b` VARCHAR(10),`swpd` VARCHAR(10),
`free` VARCHAR(10),`buff` VARCHAR(10),`cache` VARCHAR(10),
`si` VARCHAR(10),`so` VARCHAR(10),`bi` VARCHAR(10),
`bo` VARCHAR(10),`in` VARCHAR(10),`cs` VARCHAR(10),
`us` VARCHAR(10),`sy` VARCHAR(10),`id` VARCHAR(10),
`wa` VARCHAR(10),`st` VARCHAR(10),`Datetime` VARCHAR(200),
`free(MB)` VARCHAR(10),`buff(MB)` VARCHAR(10),`cache(MB)` VARCHAR(10)
) ENGINE=lakehouse ENGINE_ATTRIBUTE='{
"file": [{"par": "https://objectstorage(...)/test-murata/o/vmstat.csv"}],
"dialect": {"format": "csv","skip_rows": 1,"is_strict_mode": false,"field_delimiter": ",","record_delimiter": "¥¥n"}}';
Query OK, 0 rows affected (0.0115 sec)
SQL > ALTER TABLE test.t2 SECONDARY_ENGINE = RAPID;
Query OK, 0 rows affected (0.0192 sec)
Records: 0 Duplicates: 0 Warnings: 0
SQL > ALTER TABLE test.t2 SECONDARY_LOAD;
Query OK, 0 rows affected (3.5948 sec)
--- テーブルの参照
SQL > SELECT * FROM test.t2 LIMIT 1;
+----+---+--------+---------+------+----------+----+----+(...)+----+---------------------+----------+----------+-----------+
| r | b | swpd
| free
| buff | cache
| si | so |(...)| st | Datetime
| free(MB) | buff(MB) | cache(MB) |
+----+---+--------+---------+------+----------+----+----+(...)+----+---------------------+----------+----------+-----------+
| 31 | 1 | 332288 | 1886468 | 0
| 29498852 | 0 | 0 |(...)| 0 | 2024-09-04 13:01:52 | 1842
| 0
| 28807
|
+----+---+--------+---------+------+----------+----+----+(...)+----+---------------------+----------+----------+-----------+
1 row in set (0.0217 sec)
Copyright © 2024 HeatWavejp All Rights Reserved.
こんなことできるかやってみた
⚫ HeatWave AutoML…
利用可能
--- データの準備 → https://github.com/ikomachi226/mysql_heatwave_automl_workshop/blob/main/lab4/iris-ml-data.txt を実行
--- トレーニング
SQL > CALL sys.ML_TRAIN('ml_data.iris_train', 'class', JSON_OBJECT('task','classification'),@iris_model);
Query OK, 0 rows affected (2 min 17.3837 sec)
--- モデルのロード
SQL > CALL sys.ML_MODEL_LOAD(@iris_model, NULL);
Query OK, 0 rows affected (0.2954 sec)
Copyright © 2024 HeatWavejp All Rights Reserved.
--- 推論
SQL > SET @row_input = JSON_OBJECT("sepal length", 7.3, "sepal width", 2.9, "petal length", 6.3, "petal width", 1.8);
Query OK, 0 rows affected (0.0173 sec)
SQL > SELECT JSON_PRETTY(sys.ML_PREDICT_ROW(@row_input, @iris_model, NULL));
+----------------------------------------------------------------+
| JSON_PRETTY(sys.ML_PREDICT_ROW(@row_input, @iris_model, NULL)) |
+----------------------------------------------------------------+
| {
"Prediction": "Iris-virginica",
"ml_results": {
"predictions": {
"class": "Iris-virginica"
},
"probabilities": {
"Iris-setosa": 0.0,
"Iris-virginica": 1.0,
"Iris-versicolor": 0.0
}
},
"petal width": 1.8,
"sepal width": 2.9,
"petal length": 6.3,
"sepal length": 7.3
} |
+----------------------------------------------------------------+
1 row in set (1.5996 sec)
こんなことできるかやってみた
⚫ HeatWave GenAI…
利用不可
--- LLM のロード
SQL > call sys.ML_MODEL_LOAD('mistral-7b-instruct-v1', NULL);
Query OK, 0 rows affected (0.0043 sec)
---自然言語クエリを定義 (「MySQL を称賛する記事を 200 字で書いてください。」)
SQL > set @query="Write an article on praise for MySQL in 200 words.";
Query OK, 0 rows affected (0.0003 sec)
---テキストベースのコンテンツを生成
SQL > select sys.ML_GENERATE(@query, JSON_OBJECT("task", "generation", "model_id", "mistral-7b-instruct-v1"));
ERROR: 3877: "ML003206: The LLM (mistral-7b-instruct-v1) you requested is not available in your account."
Copyright © 2024 HeatWavejp All Rights Reserved.
こんなことできるかやってみた ⚫ Always Free をやめて有償の DB システムへ変更 … 利用可能 1. HeatWave クラスタが有効な場合は先に削除する 2. MDS のシェイプの変更をおこなう (HeatWave を使用する場合は対応したシェイプを選択する) Copyright © 2024 HeatWavejp All Rights Reserved.
こんなことできるかやってみた ⚫ Always Free をやめて有償の DB システムへ変更 … 利用可能 3. Heatwave クラスタを有効にする 4. 必要なデータのロードを再実行する ✓ 自動バックアップからリストアすることも可能 ➢ ポイント・イン・タイム・リストアや手動バックアップは利用不可 Copyright © 2024 HeatWavejp All Rights Reserved.
まとめ ⚫ Always Free では主にスペック周りの制約が厳しい ✓ ECPU : 1、メモリー : 8GB、ストレージ・サイズ : 50GB ⚫ 高可用性や読取りレプリカは使用不可 ⚫ バージョンは DB システム作成時の最新バージョン以外選択不可 ✓ タイミングによってはイノベーションリリースが選択される ✓ アップグレードがどのようにおこなわれるのかは現時点では不明 ➢ メンテナンス・ウィンドウで実施されることになると予想 → 耐障害性やパフォーマンス、安定した稼働が必要な本番環境には不向き Copyright © 2024 HeatWavejp All Rights Reserved.
まとめ ⚫ HeatWave クラスターへのデータロードや利用が可能 ⚫ インバウンド(とアウトバウンド)・レプリケーションが可能 ⚫ Lakehouse や AutoML が使用可能 → HeatWave の機能検証に適している(なお GenAI は利用不可) ⚫ Always Free から有償のシェイプに変更することは可能 ✓ 一度 HeatWave クラスタを削除する必要があるので、データはロードし直す必要がある ✓ アウトバウンド・レプリケーションを利用してデータ移行することは可能 → Always Free で始めてみて性能が足りなくなったらシェイプを変更する、 ということも可能? Copyright © 2024 HeatWavejp All Rights Reserved.
結論 Always Free の HeatWave で 新しい機能や動作の確認を気軽に実施しましょう!! ✓ とりあえず無償で HeatWave を触ってみる ✓ インバウンド・レプリケーションで事前に制約やエラーが発生しないかどうかを確認 ✓ Lakehouse や AutoML の使い方を学習 Copyright © 2024 HeatWavejp All Rights Reserved.
Copyright © 2024 HeatWavejp All Rights Reserved.