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

Platform For AI:SQL スクリプト

最終更新日:Apr 01, 2026

Platform for AI (PAI) のビジュアルモデリングにおける SQL スクリプトコンポーネントは、パイプライン内でカスタム MaxCompute SQL ステートメントを実行します。SQL スクリプトを使用すると、次のことができます。

  • 1つ以上のアップストリームコンポーネントからのデータをクリーンアップし、再形成する

  • 複数の入力テーブルを1つの出力に結合する

  • アップストリームコンポーネントなしで、ソーステーブルから直接読み取る

  • SET 文、PAI コマンド、ライフサイクル構成などの MaxCompute 固有の特徴を適用する

重要

SQL スクリプトコンポーネントは、ビジュアルモデリングでのみ構成します。このコンポーネントは最大4つの入力を受け入れ、1つの出力を生成します。

パラメーター

パラメーター説明
[スクリプトモードの使用]スクリプトモードを有効にします。スクリプトモードでは、コンポーネントが出力として使用できるように、出力テーブルを作成し、${o1} という名前を付けます。詳細については、「スクリプトモードでの SQL」をご参照ください。
[入力ソース]入力テーブルの名前です。
[システムが CREATE TABLE ステートメントを追加するかどうか]選択した場合、SQL スクリプトを SELECT ステートメントで終了します。PAI は、クエリ結果を保存するために、一時テーブル (プレフィックス pai_temp 付き) を自動的に作成します。選択を解除した場合、出力テーブルを手動で作成するために、SQL スクリプトに CREATE TABLE IF NOT EXISTS ${o1} LIFECYCLE ${lifecycle} ステートメントを含めます。
[SQL スクリプト]カスタム SQL スクリプトです。エディターは、コードキーワードのオートコンプリートと組み込み検索テンプレートを提供します。サポートされている構文については、「MaxCompute SQL の概要」を、エディターの生産性機能については、「コード開発の効率を向上させる機能」をご参照ください。

変数リファレンス

各入力ポートは固定変数名にマッピングされます。アップストリームコンポーネントから接続を描画してポートを選択し、対応する変数を使用して入力テーブルを参照します。元のテーブル名を使用する必要はありません。

変数説明
${t1}, ${t2}, ${t3}, ${t4}アップストリームコンポーネントの接続時に選択されたポートによってマッピングされる入力テーブル
${o1}出力テーブル
${lifecycle}現在のワークスペースにおける一時テーブルのライフサイクル(デフォルト:28 日)。詳細については、「ワークスペースの管理」をご参照ください。

出力テーブルの作成

このコンポーネントは、出力テーブルを作成するための2つのモードを提供します。

モード使用するタイミング実行すること
自動作成最後の文として単一の SELECT 文CREATE TABLE ステートメントを追加するかどうか を選択します。SQL スクリプトを SELECT 文で終了します。PAI は、pai_temp プレフィックスが付いた一時テーブルを自動的に作成します。
手動作成複数の文、PAI コマンド、または明示的なテーブル制御[システムが CREATE TABLE 文を追加するかどうか] をクリアします。SQL スクリプトに CREATE TABLE IF NOT EXISTS ${o1} LIFECYCLE ${lifecycle} を含めます。
説明

CREATE TABLE 文を使用して一時テーブルを手動で作成する場合は、テーブルのライフサイクルを設定します。詳細については、「ワークスペースの管理」をご参照ください。

シナリオ

以下の表を使用して、ユースケースに一致するシナリオを特定し、対応する例に従ってください。

シナリオアップストリーム入力出力テーブルの作成
単一のアップストリームテーブルから読み取る1つのアップストリームコンポーネント自動作成 (SELECT 文)
複数のアップストリームテーブルを結合する2つ以上のアップストリームコンポーネント手動 (${o1} + ${lifecycle})
名前付きソーステーブルから直接読み取るアップストリームコンポーネントなし手動 (${o1} + ${lifecycle})
スクリプト内で PAI コマンドを実行する任意手動 (${o1} + ${lifecycle})

シナリオ 1: 単一のアップストリームテーブルから読み取る

[システムが CREATE TABLE 文を追加するかどうか] を選択し、スクリプトの末尾に SELECT 文を記述します。 PAI は、pai_temp というプレフィックスが付いた一時テーブルを出力として作成します。

select age,
(case sex when 'male' then 1 else 0 end) as sex,
(case cp when 'angina' then 0  when 'notang' then 1 else 2 end) as cp,
trestbps,
chol,
(case fbs when 'true' then 1 else 0 end) as fbs,
(case restecg when 'norm' then 0  when 'abn' then 1 else 2 end) as restecg,
thalach,
(case exang when 'true' then 1 else 0 end) as exang,
oldpeak,
(case slop when 'up' then 0  when 'flat' then 1 else 2 end) as slop,
ca,
(case thal when 'norm' then 0  when 'fix' then 1 else 2 end) as thal,
(case status  when 'sick' then 1 else 0 end) as ifHealth
from  ${t1};
image

シナリオ 2: 複数のアップストリームテーブルを結合する

出力テーブルを手動で作成するには、${o1}${lifecycle} を使用します。

create table if not exists ${o1} lifecycle ${lifecycle}
as
with
    a as (select * from ${t1}),
    b as (select * from ${t2}),
    c as (select * from ${t3})
select * from a
    UNION all
select * from b
    UNION all
select * from c;
image

シナリオ 3: 名前付きソーステーブルから直接読み取る

アップストリームコンポーネントがない場合、ソーステーブルを名前で参照します。出力テーブルを手動で作成するには、${o1}${lifecycle} を使用します。上部の SET 文は MaxCompute 環境変数を構成します。

set odps.sql.mapper.split.size=128;
set odps.sql.executionengine.batch.rowcount=100;

drop table if exists test_a_5_1;
create table test_a_5_1
as
select * from pai_online_project.wumai_data;

drop table if exists test_a_5_2;
create table test_a_5_2
as
select * from pai_online_project.wumai_data;

create table if not exists ${o1}
LIFECYCLE ${lifecycle}
as
select a.pm2, a.pm10, a.so2, b.co, b.no2
from
test_a_5_1 a join test_a_5_2 b
on a.time = b.time
and a.hour = b.hour;

select * from ${o1};
image

シナリオ 4: スクリプト内で PAI コマンドを実行する

出力テーブルを手動で作成するには、${o1}${lifecycle} を使用します。

drop table if exists ${o1};
PAI -name type_transform_v1 -project algo_public
-Dlifecycle=${lifecycle} -DoutputTable=${o1}
-Dcols_to_double="time,hour,pm2,pm10,so2,co,no2"
-Ddefault_double_value="0.0" -Ddefault_int_value="0"
-DreserveOldFeat="false" -DinputTable="pai_online_project.wumai_data";
image