OCIでのMySQL HeatWaveスタート・ガイド

MySQL HeatWaveは、MySQLでトランザクション・ワークロードと分析ワークロードが混在している場合、または分析のためにデータを別のデータベースに移動している場合、完全に意味があります。複雑なETLパイプラインを作成してデータを移動するのではなく、組み込みの高パフォーマンスのインメモリ・クエリ・アクセラレータであるHeatWaveは、現在のアプリケーションを変更することなく、分析と混合ワークロードの桁違いにMySQLのパフォーマンスを高速化します。このサービスはMySQL Enterprise Edition上に構築されており、開発者は世界で最も人気のあるオープン・ソース・データベースを使用して、セキュアなクラウド・ネイティブ・アプリケーションを迅速に作成およびデプロイできます。

Oracleは、開発者がアプリケーションに集中できるようにMySQL HeatWaveを設計しました。OLTPとOLAPの2つのデータベースを管理する必要はありません。また、ETLの重複の複雑さ、レイテンシ、コストを発生させることなく、リアルタイムでセキュアな分析を行うことができます。MySQL HeatWaveは、バックアップ、リカバリ、データベースやオペレーティング・システムのパッチ適用などのタスクを自動化するフルマネージド・サービスです。「気にしないで、もっとくつろぎなさい!」と、言われました。MySQL HeatWaveは、OracleのMySQL開発チームによって開発およびサポートされています。

OCIを開始するには、VCNを作成し、MySQL DB Systemをデプロイし、HeatWaveクラスタを作成してデータを取得し、分析します。MySQL HeatWave on AWSを使い始めるこれにより、マルチクラウドのシナリオでMySQL HeatWaveを活用する方法がわかります。生きている時間はなんと!

最初から実際に開始して、適切なアクセス権を持つVCNを作成し、OCIでHeatWaveクラスタを作成する方法を見てみましょう。

前提条件

  • OCIアカウントおよびOracle Cloudアカウント名
  • 管理アクセス
  • 互換性のあるブラウザ(Chrome 69+、Safari 12.1+、Firefox 62以上、またはOracle Jetが承認しているブラウザ)

概要

  1. VCNを作成し、データベース・アクセス用に構成します
  2. ユーザーとグループの作成(まだ作成していない場合)
  3. HeatWave互換のシェイプを使用したDB Systemの作成
  4. クラウド・シェルに接続し、MySQLシェルを使用します
  5. サンプル・データのインポート
  6. HeatWaveクラスタの追加
  7. 問合せを実行します。

この例では、合理化されたアプローチを使用して、HeatWaveを使用するように設定しています。

まずは基本から始めましょう!

VCNを作成し、データベース・アクセス用に構成します

メニュー: ホーム>ネットワーク> Virtual Cloud Networks

「Virtual Cloud Networks」→「Start VCN Wizard」→「Create a VCN with Internet Connectivity」を使用して、VCNおよびサブネットを作成します。もちろん、プライベート・サブネットも取得できます。

VCNウィザードのスクリーンショット

便利なウィザードでは、システム用のネットワーク環境の作成について説明しますが、これを構成する方法は多数ありますが、気を散らさないようにしましょう。前に設定したコンパートメントmy_heatwave_testingを選択しました。これは重要であるためです。

VCN構成のスクリーンショット

次に、MySQL Database Serviceポートを介したトラフィックを許可するようにVCNのセキュリティ・リストを構成します。作成したVCNのプライベート・サブネットをクリックし、そのセキュリティ・リストをクリックします。

セキュリティ・リストのスクリーンショット

「セキュリティの追加」リストをクリックします。

適切なポート3306および33060を有効にするために必要なイングレス・ルールをいくつか追加します。詳細はこちら:

Source CIDR: 0.0.0.0/0
Destination Port Range: 3306,33060
Description: MySQL Port

「イングレス・ルールの追加」をクリックします。

イングレス・ルールのスクリーンショット

今のところよく見える!

ユーザーとグループの作成(まだ作成していない場合)

すでに管理者である場合は、次のステップに進むことができますが、DB Systemを管理するためのアクセスも必要なOCIテナンシにユーザーを追加する場合は、ここにあります。「簡素化」の例でも許可を設定し、アクセスをいくらか制限する必要がありますが、グループの管理についての詳細はこちらを参照してください。通常、グループを作成し、ポリシーを作成し、ユーザーをグループに追加します。

アイデンティティとセキュリティのオプションについて知り合いになりましょう。

ユーザー用のグループを作成します。この例では、MySQL Adminsというグループを作成しました。

グループにユーザーを追加します。この例では、このグループに自分を追加します。

もちろん、グループの場合、必要なすべてのユーザーを最初に作成し、ユーザーが決定したレベルでアクセスが必要なユーザーをグループに追加し、適切なアクセス制御で緩やかに設定できます。

ポリシーを設定してアクセスを許可し、1つのグループにフル・アクセス(管理者)および制限付きアクセス(データベース・ユーザーなど)を持つグループを許可します。

サンプル・ポリシー:

Allow group MySQLAdmins to {SUBNET_READ, SUBNET_ATTACH, SUBNET_DETACH, VCN_READ, COMPARTMENT_INSPECT} in tenancy
Allow group MySQLAdmins to manage mysql-family in tenancy
Allow group MySQLAdmins to use tag-namespaces in tenancy

これは、コンパートメントを構成および管理し、データベース・インスタンスに適用されるアクセスのスコープを定義できるようにするだけです。

OCIでのユーザーの追加およびポリシーの設定の詳細は、このドキュメントを参照してください。

HeatWave互換シェイプを使用したDB Systemの作成

「メニュー」→「データベース」→「DBシステム」

DB Systemの作成

ユーザーやVCNなどをまだ設定していない場合は、警告メッセージが表示されます。いいね。これを作成するコンパートメントを、左側の「リスト範囲」で再度確認することを忘れないでください。「DB Systemの作成」をクリックします。

DB System情報のスクリーンショット

コンパートメントを再確認し、名前を指定して、HeatWaveを選択します(もちろん)。

管理者資格証明の作成のスクリーンショット

管理資格証明を作成します。便利だが安全な場所に保存してください。

「Configure Networking」では、前に作成したVirtual Cloud Networkを使用しますが、プライベート・サブネットを使用します。デフォルトの可用性ドメインをそのままにして、「Configure Hardware」に移動します。

配置の構成のスクリーンショット

「Configure Hardware」セクションで、選択したシェイプが「MySQL」であることを確認します。HeatWave。VM.Standard。

また:

  • CPUコア数: 16
  • 記憶サイズ:512 GB
  • データ記憶サイズ: 1024
ハードウェアの構成に関するスクリーンショット

「バックアップの構成」セクションでは、デフォルトのバックアップ・ウィンドウを7日間そのままにしておくことができます。

バックアップ計画の構成のスクリーンショット

スクロールしたまま、「拡張オプションの表示」をクリックします。

「ネットワーキング」タブに移動し、「ホスト名」フィールドにDB Systemの正確な名前を入力します。これにより、クラスタはDNSに登録でき、完全修飾ドメイン名(FQDN)を介してホストにアクセスできます。

ネットワークの構成のスクリーンショット

ポート構成が次に対応していることを確認します。

  • MySQLポート: 3306
  • MySQL Xプロトコル・ポート: 33060

この例では、事前認証済リクエスト(PAR)を介して使用可能になるオブジェクト・ストレージ・バケットに格納されているデータを使用して、リソース作成中にデータを自動的にインポートします。

データ・インポートのスクリーンショット

MySQLシェルを使用してデータをロードする場合は、このステップをスキップできます。

「データ・インポート」タブを選択します。PARのURLをここに貼り付けるように求められます。オブジェクトのPAR URLは、MySQLシェル・ダンプutilityHereのociParaMifestオプションを使用して作成できるマニフェスト・ファイルである必要があります。オブジェクト・ストレージ・バケットPARまたは接頭辞PARを持つオブジェクトを使用することもできます。

試用目的でAirport-DBをインポートするために使用できるサンプル・リンクを次に示します。

https://objectstorage.us-ashburn-1.oraclecloud.com/p/zRBSs7nKURyZRcIoV4QlYhascC5gkZcJeQoBS8c2ssyEPID3PSDAnh73OMClQQH4/n/idazzjlcjqzj/b/airportdb-bucket-10282022/o/airportdb/@.manifest.json

すべてのセット...「作成」をクリックします。

今回は黄色の六角形が表示され、最終的に緑色になり、DB Systemが起動して稼働します。お茶を飲んだり、水を一杯飲んだり、たくさんのことをやった。

MySQLシェルの接続および使用

便利なクラウド・シェルを使用して、MySQLおよびMySQLシェルに接続します。これは、OCIダッシュボードに埋め込まれたLinux端末です(そして、可愛いです)。右上隅のCloud Shellプロンプト・アイコンをクリックすると、ブラウザの下部にコマンドラインが開きます。前に作成したVCNを選択して、クラウド・シェルのプライベート・ネットワーク設定を構成してください。

mysqlシェルのスクリーンショット
mysqlシェルのプライベート・ネットワーク設定のスクリーンショット

MySQLシェルはすでにインストールされています。

HeatWave互換のDB Systemを作成したら、MySQLシェルを使用して接続します。

mysqlsh --host <dbsystemendpointipaddress> -u <username> -p</username></dbsystemendpointipaddress>

MySQLシェルについてさらに学習できます。

データベース・システムの接続の詳細。

データをインポート

PARオプションを使用してリソース作成時にデータをインポートすることを選択した場合は、このステップをスキップできます。それ以外の場合は、AirportDBのインポート(PDF)に進むことができます。

クラウド・シェルで:

wget https://downloads.mysql.com/docs/airport-db.tar.gz
tar xvzf airport-db.tar.gz

これにより、データファイルを含むairport-dbという名前の単一ディレクトリが作成されます。

MySQLシェルを起動し、MySQL DB Systemエンドポイントに接続します:

mysqlsh _Username@DBSystem_IP_Address_or_host_Name

プロンプトが表示されたら、前に指定した管理パスワードを入力します。接続したら、ダンプ・ロード・ユーティリティを使用してデータをインポートします。

MySQL>JS> util.loadDump("airport-db", {threads: 16, deferTableIndexes: "all", ignoreVersion: true})

インポートには数分かかるので、すぐに作業を進めることができます。

HeatWaveクラスタの追加

HeatWaveはビッグ・データ・セット用に設計されているため、高速な分析が必要であるため、単なるサンプル・データベースをインポートする場合でも、必要なだけロードできます(ストレージを割り当てた場合)。さらに、問合せは、別のデータベースにオフロードせずにクラスタで実行できます。クラスタの作成には数分かかる場合があります。

開始するには、OCIコンソールで「データベース」>「DBシステム」のDB Systemに移動し、最近作成したDB Systemをクリックします。

「リソース」の下には、HeatWave (その他の便利なアイテム)が表示されます。これをクリックします。

「リソース」タブのスクリーンショット

もちろん、HeatWaveクラスタを追加するか(右側のボタン、ページの中間部分を使用)、上部の「More actions」メニューをクリックして「Add Heatwave cluster」を選択します。デフォルト(512GB RAMと1ノードを備えた16 CPUコア)をそのまま使用し、ボタンをクリックしてHeatWaveクラスタを追加します。

クラスタの追加のスクリーンショット
ヒートウェーブ・クラスタの構成のスクリーンショット

これには数分かかるため、クラスタがスピンアップしている間にその飲料を再ヒートできます。

データをHeatWaveにロードし、問合せを実行します

最後に、面白い部分!HeatWaveクラスタが実行されると、次のようになります。

  1. MySQLシェルを起動し、MySQL DB Systemのエンドポイントに接続します:
    $> mysqlsh Username@DBSystem_IP_Address_or_Host_Name
  2. MySQLシェル実行モードをSQLに変更します。
    MySQL>JS> \sql
  3. airportdbデータベースへの変更:
    MySQL>SQL> USE airportdb;  
    Default schema set to `airportdb`.Fetching table and column names from `airportdb` for auto-completion... Press ^C to stop.`
  4. MySQL InnoDBからHeatWaveへのデータのロード
    MySQL>SQL> call sys.heatwave_load(JSON_ARRAY(“airportdb”), NULL);
  5. EXPLAINを使用して、問合せをHeatWaveクラスタにオフロードできることを確認します。
    mysqlクエリー1のスクリーンショット
    ノート: 問合せをオフロードできる場合、EXPLAIN出力のExtra列は「セカンダリ・エンジンRAPIDの使用」とレポートします。
  6. 問合せをオフロードできることを確認したら、問合せを実行して実行時間を書き留めます。
    mysqlクエリー2のスクリーンショット

ここで、"プレーン・バニラ"のMySQL DB Systemの使用にかかる時間を見てみましょう。これを行うには、use_secondary_engine変数を無効にします。

mysqlクエリー3のスクリーンショット

まとめ

これまでのOCIでの作業はすべて、MySQL用のポートを備えたVirtual Cloud Networkの設定、MySQLデータベースの設定、およびHeatWaveクラスタの追加です。その後、いくつかのテスト・データをインポートし、いくつかの問合せを実行して、HeatWaveとDB Systemの速度を独自に確認しました。

さらに知りたいですか?公開Slackチャネルのディスカッションにご参加ください。

このページは機械翻訳したものです。