すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:SQL を使用して機械学習の予測を実装する

最終更新日:Nov 09, 2025

このトピックでは、AnalyticDB for MySQL で SQL を使用して Behavior Sequence Transformer (BST) モデルをデプロイし、機械学習タスクを実行する方法について説明します。このプロセスは、データ変換、モデル作成からトレーニング、評価、予測までのワークフロー全体をカバーします。

シナリオ

SQL クエリを使用して、モデルのトレーニングと推論を迅速に実行できます。SQL は、データの前処理、トレーニング、推論を含むプロセス全体を簡素化します。

AnalyticDB for MySQL は BST モデルをサポートしています。これらのモデルは、ユーザーの行動パターンの理解、ユーザーの嗜好の分析、将来のトレンドの予測、またはパーソナライズされた推奨の提供が必要なシナリオで使用できます。たとえば、ゲームや e コマース業界では、ユーザーの行動における長期的な依存関係を捉えることができます。これにより、ユーザーの行動や嗜好をより深く理解・予測し、パーソナライズされたサービスや推奨を提供できます。

BST モデルの詳細

BST モデルは、行動シーケンスデータを処理します。一連の行動イベント ID を入力として受け取り、分類結果として 0 または 1 を出力します。

たとえば、ゲームでは、プレイヤーのインタラクションを記録し、一連の行動イベントに変換できます。

ゲーム内のプレイヤーは、次のような行動シーケンスを生成する可能性があります: ログイン、ログイン報酬の受け取り、タスクの受諾、戦闘、戦闘、戦闘、タスクの完了、チャージ、戦闘、ログアウト。

この行動シーケンスは、次のイベント ID のシーケンスに変換されます: 0, 1, 2, 3, 3, 3, 4, 5, 3, 6。このシーケンスは文字列として BST モデルに渡されます。モデルはシーケンスを分析し、分類結果として 0 または 1 を返します。この結果は、行動シーケンスがどの事前定義されたカテゴリに属するかを示します。

前提条件

  • クラスターは Enterprise Edition、Basic Edition、または Data Lakehouse Edition クラスターである必要があります。

  • クラスターのカーネルバージョンは 3.2.4.0 以降である必要があります。

    説明

    AnalyticDB for MySQL クラスターのマイナーバージョンを表示および更新するには、AnalyticDB for MySQL コンソールにログインし、クラスター情報 ページの 構成情報 セクションに移動します。

  • AI リソースグループ機能を有効にする必要があります。この機能はパブリックプレビュー段階です。有効にするには、テクニカルサポートにお問い合わせください。

ステップ 1: AI リソースグループを作成し、通常のリソースグループにアタッチする

SQL を使用して機械学習タスクを実行するには、2 種類のリソースグループが必要です:

  • AI リソースグループ: このグループは、機械学習タスクをサポートするように設計されています。これらのタスクに必要な GPU リソースを管理し、モデルのトレーニングと予測における計算集約的な操作をサポートします。

  • 通常のリソースグループ: このグループは、トレーニングデータの生成や予測関数の実行など、標準 SQL クエリを処理するために使用されます。

SQL 文は、まず通常のリソースグループに送信されます。システムが SQL 文に AI 計算が必要であると検出すると、タスクは自動的にアタッチされた AI リソースグループに転送されて実行されます。

したがって、まず AI リソースグループを作成し、それを通常のリソースグループにアタッチする必要があります。

  1. AnalyticDB for MySQL コンソールにログインします。コンソールの左上隅でリージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。管理するクラスターを見つけて、クラスター ID をクリックします。

  2. 左側のナビゲーションウィンドウで、クラスター管理 > リソース管理 を選択し、リソースグループ管理 タブをクリックします。

  3. リソースグループリストの右上隅にある 新規リソースグループ をクリックして、AI リソースグループを作成します。

    パラメーター

    説明

    リソースグループ名

    リソースグループのカスタム名。名前は 2~30 文字で、先頭は英字にする必要があります。英字、数字、アンダースコアのみ使用できます。

    タスクタイプ

    ドロップダウンリストから [AI] を選択します。

    重要

    [AI] オプションが利用できない場合、インスタンスで AI リソースグループ機能が有効になっていません。テクニカルサポートにお問い合わせください。

    仕様

    GPU、CPU、メモリリソースの組み合わせ。[ADB.MLLarge.24][ADB.MLLarge.2]、または [ADB.MLAdvavced.6] を選択できます。

    最小数

    リソースユニットの最小数。

    最大数

    リソースユニットの最大数。

  4. を決定 をクリックしてリソースグループを作成します。

  5. ターゲットの通常のリソースグループを見つけます。操作 列で、変更 をクリックします。ML ジョブ配信ルール を使用して、通常のリソースグループを新しく作成した AI リソースグループにアタッチします。

ステップ 2: データ変換

データ変換は、生データをモデルトレーニングに適した形式に変換するプロセスです。このプロセスは、生データの形式、そのストレージの場所、およびモデルで必要な入力データ形式という 3 つの主要な要因に依存します。

モデルトレーニングデータのテーブルスキーマ要件

  • 入力特徴量列: この列は、カンマ区切りの一連の整数を含む文字列である必要があります。各エントリはサンプルの特徴量ベクターを表します。

  • ターゲットラベル列: この列には、分類タスクのクラスラベルを表すために、0 や 1 などの 2 つの可能な値が含まれます。

テーブルスキーマの例: ('1,2,3',0), ('3,2,1',1)。

データ変換メソッド

生データの形式がモデルトレーニングに必要な形式と異なる場合は、次のメソッドを使用してデータを変換します:

  1. JAR パッケージの準備: Spark データ変換プログラムを JAR ファイルにパッケージ化し、OSS バケットにアップロードします。

  2. Spark ジョブパラメーターの設定: Spark ジョブを送信するときに、必須パラメーターを設定します。パラメーターの詳細については、「Spark アプリケーション設定パラメーター」をご参照ください。

生データがすでにモデルトレーニングの形式要件を満たしている場合は、このステップをスキップできます。

ステップ 3: モデルの作成とトレーニング

機械学習モデルを作成し、そのパラメーターを定義し、トレーニングデータを指定して、モデルのステータスを確認します。

  1. 左側のナビゲーションウィンドウで、ジョブを開発する > Sql開発 を選択します。

  2. [SQL コンソール] で、モデル文を使用してモデルを作成し、トレーニングします。

-- モデルを作成
-- リソースグループを指定
/*+resource_group=itrain*/
CREATE MODEL bstdemo.bst-- モデル名
OPTIONS (
  model_type='bst_classification', -- モデルタイプ
  feature_cols=(event_list),  -- 特徴量列
  target_cols=(target),  -- 予測するターゲット列
  hyperparameters = (  -- その他のモデルハイパーパラメーター
    use_best_ckpt = 'False',
    early_stopping_patience='0'
  )
)
AS SELECT event_list, target FROM bstdemo.adb; -- モデルデータのソース。このクエリの結果は、指定された変数でモデルをトレーニングするために使用されます。

-- モデルのトレーニングステータスを確認します。ステータスが READY に変わるとトレーニングは完了です。
SHOW MODEL bstdemo.bst;

ステップ 4: モデルの評価

作成した機械学習モデルを評価して、そのパフォーマンスを検証します。

-- この文のフォーマットは、モデルを作成するための文と似ています。
/*resource_group=rg1*/
EVALUATE MODEL bstdemo.bst
OPTIONS (
    feature_cols=(event_list), 
    target_cols=(target),  
)
AS SELECT event_list, target FROM bstdemo.adb01;

ステップ 5: モデルの予測

テーブルから特徴量列を選択し、データをトレーニング済みモデルに渡し、この入力データに基づいて予測結果を取得します。

-- トレーニング済みモデルを予測に使用します。
-- ml_predict 関数の最初のパラメーターはモデル名です。後続のパラメーターはモデルの入力列です。
SELECT ML_PREDICT('bstdemo.bst', event_list) FROM bstdemo.adb02;