Slide 1

Slide 1 text

Copyright © 2024 HeatWavejp All Rights Reserved. HeatWavejp Meetup #10 Always Free の HeatWave を試してみた 2024年10月17日(木) 株式会社スマートスタイル データベース部 村田

Slide 2

Slide 2 text

Copyright © 2024 HeatWavejp All Rights Reserved. 1. Always Free とは 2. 制限事項、提供範囲、注意事項 3. 立ち上げてみた 4. こんなことできるかやってみた 5. まとめ 目次

Slide 3

Slide 3 text

Copyright © 2024 HeatWavejp All Rights Reserved. Always Free とは ⚫ OCI アカウントで無料で使用できるリソース ⚫ 複数のリソースをプロビジョニングすることが可能 すべての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 インフラストラクチャ 証明書 Compute コンピュート・インスタンスのIPアドレス ブロック・ボリューム オブジェクト アーカイブ・ストレージ ボールト リソース・マネージャ データベース Oracle Autonomous Database Oracle NoSQL Database Oracle HeatWave ネットワーキング クラスタ配置グループ ロード・バランシング ネットワーク・ロード・バランサ 仮想クラウド・ネットワーク(VCN) VCNフロー・ログ サイト間VPN 監視および管理 Application Performance Monitoring コネクタ・ハブ コンソール・ダッシュボード 電子メール配信 フリート・アプリケーション管理 モニタリング中 通知 追加サービス アウトバウンド・データ転送 ロギング 要塞 2024年8月7日にリリース

Slide 4

Slide 4 text

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 サービスの統合は使用不可

Slide 5

Slide 5 text

Copyright © 2024 HeatWavejp All Rights Reserved. 立ち上げてみた ⚫ DB システムの作成まで ① ②

Slide 6

Slide 6 text

Copyright © 2024 HeatWavejp All Rights Reserved. 立ち上げてみた ⚫ DB システムの作成 ✓ 「高可用性」は選択不可

Slide 7

Slide 7 text

Copyright © 2024 HeatWavejp All Rights Reserved. 立ち上げてみた ⚫ DB システムの作成 ✓ HeatWave クラスタは選択可能 ✓ MySQL.Free … ECPU:1 、メモリー:8GB 、ネットワーク帯域:1Gbps ✓ HeatWave.Free … メモリー : 16GB 、 ノード数 : 1 ✓ レイクハウスは選択可能

Slide 8

Slide 8 text

Copyright © 2024 HeatWavejp All Rights Reserved. 立ち上げてみた ⚫ DB システムの作成 ✓ ストレージ・サイズは 50GB で固定( IOPS は 3750 )、ストレージの自動増加も選択 不可 ✓ 自動バックアップの無効化は選択不可 ✓ それ以外の設定も選択不可

Slide 9

Slide 9 text

Copyright © 2024 HeatWavejp All Rights Reserved. 立ち上げてみた ⚫ DB システムの作成 (advanced options) ✓ バージョンは選択不可(最新バージョンが選択される) ✓ クラッシュ・リカバリの無効化は選択不可 ✓ データベース管理サービス(パフォーマンス・ハブ)の有効化は選択不可 現時点では9.0.1 – Innovation になる

Slide 10

Slide 10 text

Copyright © 2024 HeatWavejp All Rights Reserved. 立ち上げてみた ⚫ DB システムの作成後 ✓ Always Free で作成した場合は名前の下に表示される ✓ Always Free を作成した状態で DB システムの作成をすると、Always Free は選択不可

Slide 11

Slide 11 text

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 サービスの統合は使用不可

Slide 12

Slide 12 text

Copyright © 2024 HeatWavejp All Rights Reserved. こんなことできるかやってみた ⚫ メトリックの確認 … 利用可能

Slide 13

Slide 13 text

Copyright © 2024 HeatWavejp All Rights Reserved. こんなことできるかやってみた ⚫ 読取りレプリカの作成 … 利用不可

Slide 14

Slide 14 text

Copyright © 2024 HeatWavejp All Rights Reserved. こんなことできるかやってみた ⚫ 手動バックアップの作成… 利用不可

Slide 15

Slide 15 text

Copyright © 2024 HeatWavejp All Rights Reserved. こんなことできるかやってみた ⚫ インバウンド・レプリケーションの設定 … 利用可能

Slide 16

Slide 16 text

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) --- RAPID ストレージエンジンの使用確認 SQL > EXPLAIN SELECT /*+ SET_VAR(use_secondary_engine=FORCED) */ * FROM test.t1 LIMIT 2; +----+(...)+------------------------------(...)+ | id |(...)| Extra (...)| +----+(...)+------------------------------(...)+ | 1 |(...)| Using secondary engine RAPID.(...)| +----+(...)+------------------------------(...)+ 1 row in set, 1 warning (0.0024 sec) 利用可能

Slide 17

Slide 17 text

Copyright © 2024 HeatWavejp All Rights Reserved. こんなことできるかやってみた ⚫ 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) 利用可能

Slide 18

Slide 18 text

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) --- 推論 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) 利用可能

Slide 19

Slide 19 text

Copyright © 2024 HeatWavejp All Rights Reserved. こんなことできるかやってみた ⚫ 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." 利用不可

Slide 20

Slide 20 text

Copyright © 2024 HeatWavejp All Rights Reserved. こんなことできるかやってみた ⚫ Always Free をやめて有償の DB システムへ変更 … 1. HeatWave クラスタが有効な場合は先に削除する 2. MDS のシェイプの変更をおこなう (HeatWave を使用する場合は対応したシェイプを選択する) 利用可能

Slide 21

Slide 21 text

Copyright © 2024 HeatWavejp All Rights Reserved. こんなことできるかやってみた ⚫ Always Free をやめて有償の DB システムへ変更 … 3. Heatwave クラスタを有効にする 4. 必要なデータのロードを再実行する ✓ 自動バックアップからリストアすることも可能 ➢ ポイント・イン・タイム・リストアや手動バックアップは利用不可 利用可能

Slide 22

Slide 22 text

Copyright © 2024 HeatWavejp All Rights Reserved. まとめ ⚫ Always Free では主にスペック周りの制約が厳しい ✓ ECPU : 1、メモリー : 8GB、ストレージ・サイズ : 50GB ⚫ 高可用性や読取りレプリカは使用不可 ⚫ バージョンは DB システム作成時の最新バージョン以外選択不可 ✓ タイミングによってはイノベーションリリースが選択される ✓ アップグレードがどのようにおこなわれるのかは現時点では不明 ➢ メンテナンス・ウィンドウで実施されることになると予想 → 耐障害性やパフォーマンス、安定した稼働が必要な本番環境には不向き

Slide 23

Slide 23 text

Copyright © 2024 HeatWavejp All Rights Reserved. まとめ ⚫ HeatWave クラスターへのデータロードや利用が可能 ⚫ インバウンド(とアウトバウンド)・レプリケーションが可能 ⚫ Lakehouse や AutoML が使用可能 → HeatWave の機能検証に適している(なお GenAI は利用不可) ⚫ Always Free から有償のシェイプに変更することは可能 ✓ 一度 HeatWave クラスタを削除する必要があるので、データはロードし直す必要がある ✓ アウトバウンド・レプリケーションを利用してデータ移行することは可能 → Always Free で始めてみて性能が足りなくなったらシェイプを変更する、 ということも可能?

Slide 24

Slide 24 text

Copyright © 2024 HeatWavejp All Rights Reserved. 結論 Always Free の HeatWave で 新しい機能や動作の確認を気軽に実施しましょう!! ✓ とりあえず無償で HeatWave を触ってみる ✓ インバウンド・レプリケーションで事前に制約やエラーが発生しないかどうかを確認 ✓ Lakehouse や AutoML の使い方を学習

Slide 25

Slide 25 text

Copyright © 2024 HeatWavejp All Rights Reserved.