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

DataWorks:Serverless Spark SQL ノード

最終更新日:Jun 25, 2026

Serverless Spark SQL ノードを作成し、EMR Serverless Spark コンピューティングリソース を基盤とする分散 SQL クエリエンジンで構造化データを処理します。このアプローチにより、ジョブの実行効率が向上します。

注意事項

  • コンピューティングリソースの制限関連付けられた EMR Serverless Spark コンピューティングリソースのみがサポートされます。リソースグループとコンピューティングリソースがネットワーク経由で通信できることを確認する必要があります。

  • リソースグループの制約:このタスクは Serverless リソースグループ でのみ実行されます。

  • (オプション、RAM ユーザー向け) タスク開発用の Resource Access Management (RAM) ユーザーをワークスペースに追加し、Development ロールまたは スペース管理者 ロール (このロールには広範な権限が含まれるため、慎重に付与する必要があります) を割り当てる必要があります。詳細については、「ワークスペースへのメンバー追加」をご参照ください。

    ルートアカウントを使用している場合は、このステップをスキップしてください。

ノードの作成

手順については、「ノードの作成」をご参照ください。

ノードの開発

SQL エディターでタスクコードを開発します。構文は catalog.database.tablename をサポートしています。catalog を省略した場合、クラスターのデフォルトのデータカタログが使用されます。catalog.database を省略した場合、クラスターのデフォルトのデータカタログにあるデフォルトのデータベースが使用されます。

データカタログの詳細については、「EMR Serverless Spark でのデータカタログの管理」をご参照ください。
-- <catalog.database.tablename> を実際の識別子に置き換えてください。
SELECT * FROM <catalog.database.tablename> 

コード内で ${variable_name} 形式を使用して変数を定義します。次に、Scheduling Settings ペインの Scheduling Parameters セクションで、これらの変数に値を割り当てます。これにより、スケジュールされたシナリオで動的なパラメーターを渡すことができます。スケジューリングパラメーターの詳細については、「スケジューリングパラメーターのソースと式」をご参照ください。以下のコードは一例です。

SHOW TABLES; 
-- ${var} を使用して var という名前の変数を定義します。この変数に ${yyyymmdd} という値を割り当てると、スケジュールされたタスクを使用して、業務日付をサフィックスとして持つテーブルを作成できます。
CREATE TABLE IF NOT EXISTS userinfo_new_${var} (
  ip STRING COMMENT 'IPアドレス',
  uid STRING COMMENT 'ユーザーID'
)PARTITIONED BY(
  dt STRING
); -- これはスケジューリングパラメーターと併用できます。
説明

SQL 文は 130 KB を超えることはできません。

ノードのデバッグ

  1. Run Configuration セクションで、Compute ResourceResource Group を選択します。

    パラメーター

    説明

    コンピューティングリソース

    関連付けられた EMR Serverless Spark コンピューティングリソース を選択します。利用可能なコンピューティングリソースがない場合は、ドロップダウンリストから [コンピューティングリソースの作成] を選択できます。

    リソースグループ

    ワークスペースに関連付けられているリソースグループを選択します。

    スクリプトパラメーター

    ノードコンテンツを設定する際に ${parameter_name} の形式で変数を定義した場合、Parameter Value セクションで Script ParametersParameter name を指定する必要があります。実行時に、変数は実際の値に動的に置き換えられます。詳細については、「スケジューリングパラメーターのソースと式」をご参照ください。

    Serverless Spark ノードパラメーター

    Spark アプリケーションのランタイムパラメーター。以下のタイプをサポートしています:

  2. ノードエディター上部のツールバーで Run をクリックして、SQL タスクを実行します。

    重要

    公開する前に、Run Configuration[ServerlessSpark ノードパラメーター]Scheduling Settings[ServerlessSpark ノードパラメーター] に同期させる必要があります。

SQL 実行方法

DataWorks は、ノード内実行とワークフローペイン実行の 2 つの SQL 実行方法を提供します。これらの 2 つの方法は異なる実行コンテキストを使用するため、結果が異なる場合があります。

  • ノード内実行:SQL エディターですべての SQL 文を選択し、[実行] をクリックします。選択された SQL 文のみが実行されます。この方法は、ノードに設定されたコンピューティングリソースとパラメーターを使用し、上流または下流のノードへの依存関係をトリガーしません。

  • ワークフローペイン実行:ワークフローペインで現在のノードを右クリックし、ノードとその下流ノードを実行することを選択します。現在のノードとそのすべての下流ノードは、スケジューリングの依存関係に基づいて順次実行されます。この方法は、スケジューリング設定のコンピューティングリソースとパラメーターを使用しますが、これはノード内実行で使用される環境とは異なる場合があります。

不一致は、スケジューリングパラメーターの値が異なる、コンピューティングリソースの設定が一致しない、または上流および下流ノードの出力が現在のノードの実行コンテキストに影響を与えることによって発生することがよくあります。トラブルシューティングを行うには、スケジューリングパラメーターとコンピューティングリソースの設定が両方の方法で同一であることを確認してください。

次のステップ

  • ノードスケジューリングを設定する: ノードを定期的に実行する必要がある場合は、右側のScheduling SettingsパネルでScheduling Policyを設定します。

  • ノードの公開:タスクを本番環境で実行するには、image アイコンをクリックしてノードを公開します。ノードは、本番環境に公開された後にのみスケジュールどおりに実行されます。

  • タスクの O&M:タスクが公開された後、オペレーションセンターで定期的な実行ステータスをモニターできます。詳細については、「オペレーションセンター入門」をご参照ください。

付録:DataWorks パラメーター

パラメーター

説明

FLOW_SKIP_SQL_ANALYZE

SQL ステートメントの実行モードです。有効な値:

  • true:複数の SQL ステートメントを一度に実行します。

  • false (デフォルト): 一度に 1 つの SQL 文を実行します。

説明

このパラメーターは、DataStudio 環境でのテスト実行にのみ適用されます。

DATAWORKS_SESSION_DISABLE

タスクの送信方法を指定します。デフォルトでは、DataStudio で実行されるタスクは SQL セッションに送信されます。このパラメーターを使用すると、代わりにタスクをキューに送信できます。

  • true: タスクは実行のためにキューに送信されます。デフォルトでは、コンピューティングリソースをバインドする際に指定したデフォルトのキューが使用されます。DATAWORKS_SESSION_DISABLE パラメーターが true に設定されている場合、SERVERLESS_QUEUE_NAME パラメーターを設定することで、Data Studio でタスクを実行するために送信するキューを指定できます。

  • false (デフォルト): タスクを SQL セッションに送信して実行します。

    説明

    このパラメーターは、DataStudio でタスクを実行する場合にのみ有効です。スケジュールされたタスクには影響しません。

SERVERLESS_RELEASE_VERSION

Spark エンジンバージョン。デフォルトでは、タスクは管理センターCompute Resourceでクラスターに設定されているデフォルトのエンジンバージョンを使用します。特定のタスクで異なるエンジンバージョンを使用する場合に、このパラメーターを設定します。

説明

SERVERLESS_RELEASE_VERSION パラメーターは、登録済みクラスターに指定された SQL セッションが EMR Serverless Spark コンソールで停止状態である場合にのみ有効になります。

SERVERLESS_QUEUE_NAME

タスク送信用のリソースキューを指定します。 デフォルトでは、タスクは 管理センター 配下の クラスター管理 でクラスター用に設定された デフォルトのリソースキュー を使用します。 リソースを分離して管理するために、キューを追加できます。 詳細については、「リソースキューを管理する」をご参照ください。

設定方法:

説明
  • SERVERLESS_QUEUE_NAME パラメーターは、登録済みクラスターに指定された SQL セッションが EMR Serverless Spark コンソールで停止状態である場合にのみ有効になります。

  • Data Studio での実行時: タスクを実行キューに送信するには、まず DATAWORKS_SESSION_DISABLEtrue に設定する必要があります。 タスクキューを指定するために設定する SERVERLESS_QUEUE_NAME パラメーターは、この設定を有効にした場合にのみ有効になります。

  • オペレーションセンターのスケジュールされたタスクの場合:タスクは常にキューに送信されて実行され、SQL セッションには送信できません。

SERVERLESS_SQL_COMPUTE

使用する SQL セッション。デフォルトでは、管理センターCompute Resource でクラスター用に設定された デフォルトのSQL Compute が使用されます。異なるタスクに異なる SQL セッションを使用するには、このパラメーターを設定します。SQL セッションを作成および管理するには、「SQL セッションの管理」をご参照ください。

その他

カスタムの Spark 設定パラメーターです。Spark 固有のプロパティを追加できます。

形式: "spark.eventLog.enabled": false。 DataWorks は、EMR クラスターに送信されたコードに、 --conf key=value 形式でパラメーターを自動的に追加します。

説明

DataWorks では、ワークスペースレベルでグローバル Spark パラメーターを設定できます。このパラメーターは、DataWorks の様々なモジュールで利用されます。グローバル Spark パラメーターが、モジュール固有の Spark パラメーターより優先されるかどうかを指定できます。グローバル Spark パラメーターの設定方法の詳細については、「グローバル Spark パラメーターの設定」をご参照ください。