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

[HeatWavejpMeetup#10] Always Free の HeatWave を試...

[HeatWavejpMeetup#10] Always Free の HeatWave を試してみた [村田 太 氏(スマートスタイル)]

HeatWavejp Meetup #10 「HeatWave の Tips LT会 & Oracle CloudWorld 2024 現地参加レポート」(2024/10/17 開催)の講演資料です。

【講演内容】
Always Free の HeatWave を試してみた

 ≪アジェンダ≫
 1. Always Free とは
 2. 制限事項、提供範囲、注意事項
 3. 立ち上げてみた
 4. こんなことできるかやってみた
 5. まとめ

【発表者】
株式会社スマートスタイル
データベース&クラウド事業部 技術本部 DB部
村田 太 氏

【イベント情報】
HeatWavejp Meetup #10
https://heatwavejp.connpass.com/event/331602/

More Decks by HeatWavejp(MySQL HeatWave Japan User Group)

Other Decks in Technology

Transcript

  1. Copyright © 2024 HeatWavejp All Rights Reserved. HeatWavejp Meetup #10

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

    とは 2. 制限事項、提供範囲、注意事項 3. 立ち上げてみた 4. こんなことできるかやってみた 5. まとめ 目次
  3. 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日にリリース
  4. 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 サービスの統合は使用不可
  5. Copyright © 2024 HeatWavejp All Rights Reserved. 立ち上げてみた ⚫ DB

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

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

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

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

    システムの作成後 ✓ Always Free で作成した場合は名前の下に表示される ✓ Always Free を作成した状態で DB システムの作成をすると、Always Free は選択不可
  10. 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 サービスの統合は使用不可
  11. 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) 利用可能
  12. 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) 利用可能
  13. 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) 利用可能
  14. 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." 利用不可
  15. Copyright © 2024 HeatWavejp All Rights Reserved. こんなことできるかやってみた ⚫ Always

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

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

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

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

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