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 を超えることはできません。
ノードのデバッグ
-
Run Configuration セクションで、Compute Resource と Resource Group を選択します。
パラメーター
説明
コンピューティングリソース
関連付けられた EMR Serverless Spark コンピューティングリソース を選択します。利用可能なコンピューティングリソースがない場合は、ドロップダウンリストから [コンピューティングリソースの作成] を選択できます。
リソースグループ
ワークスペースに関連付けられているリソースグループを選択します。
スクリプトパラメーター
ノードコンテンツを設定する際に
${parameter_name}の形式で変数を定義した場合、Parameter Value セクションで Script Parameters と Parameter name を指定する必要があります。実行時に、変数は実際の値に動的に置き換えられます。詳細については、「スケジューリングパラメーターのソースと式」をご参照ください。Serverless Spark ノードパラメーター
Spark アプリケーションのランタイムパラメーター。以下のタイプをサポートしています:
-
DataWorks が提供するカスタムランタイムパラメーター。詳細については、「付録:DataWorks パラメーター」をご参照ください。
-
ネイティブの Spark プロパティ。詳細については、「オープンソースの Spark プロパティ」をご参照ください。パラメーターを手動で入力する代わりに、EMR Serverless Spark から Spark 設定テンプレートを直接ロードできます。これにより、設定プロセスが簡素化され、一貫性が確保されます。
-
-
ノードエディター上部のツールバーで Run をクリックして、SQL タスクを実行します。
重要公開する前に、Run Configuration の [ServerlessSpark ノードパラメーター] を Scheduling Settings の [ServerlessSpark ノードパラメーター] に同期させる必要があります。
SQL 実行方法
DataWorks は、ノード内実行とワークフローペイン実行の 2 つの SQL 実行方法を提供します。これらの 2 つの方法は異なる実行コンテキストを使用するため、結果が異なる場合があります。
-
ノード内実行:SQL エディターですべての SQL 文を選択し、[実行] をクリックします。選択された SQL 文のみが実行されます。この方法は、ノードに設定されたコンピューティングリソースとパラメーターを使用し、上流または下流のノードへの依存関係をトリガーしません。
-
ワークフローペイン実行:ワークフローペインで現在のノードを右クリックし、ノードとその下流ノードを実行することを選択します。現在のノードとそのすべての下流ノードは、スケジューリングの依存関係に基づいて順次実行されます。この方法は、スケジューリング設定のコンピューティングリソースとパラメーターを使用しますが、これはノード内実行で使用される環境とは異なる場合があります。
不一致は、スケジューリングパラメーターの値が異なる、コンピューティングリソースの設定が一致しない、または上流および下流ノードの出力が現在のノードの実行コンテキストに影響を与えることによって発生することがよくあります。トラブルシューティングを行うには、スケジューリングパラメーターとコンピューティングリソースの設定が両方の方法で同一であることを確認してください。
次のステップ
ノードスケジューリングを設定する: ノードを定期的に実行する必要がある場合は、右側のScheduling SettingsパネルでScheduling Policyを設定します。
ノードの公開:タスクを本番環境で実行するには、
アイコンをクリックしてノードを公開します。ノードは、本番環境に公開された後にのみスケジュールどおりに実行されます。タスクの O&M:タスクが公開された後、オペレーションセンターで定期的な実行ステータスをモニターできます。詳細については、「オペレーションセンター入門」をご参照ください。
付録:DataWorks パラメーター
|
パラメーター |
説明 |
|
FLOW_SKIP_SQL_ANALYZE |
SQL ステートメントの実行モードです。有効な値:
説明
このパラメーターは、DataStudio 環境でのテスト実行にのみ適用されます。 |
|
DATAWORKS_SESSION_DISABLE |
タスクの送信方法を指定します。デフォルトでは、DataStudio で実行されるタスクは SQL セッションに送信されます。このパラメーターを使用すると、代わりにタスクをキューに送信できます。
|
|
SERVERLESS_RELEASE_VERSION |
Spark エンジンバージョン。デフォルトでは、タスクは管理センターのCompute Resourceでクラスターに設定されているデフォルトのエンジンバージョンを使用します。特定のタスクで異なるエンジンバージョンを使用する場合に、このパラメーターを設定します。 説明
|
|
SERVERLESS_QUEUE_NAME |
タスク送信用のリソースキューを指定します。 デフォルトでは、タスクは 管理センター 配下の クラスター管理 でクラスター用に設定された デフォルトのリソースキュー を使用します。 リソースを分離して管理するために、キューを追加できます。 詳細については、「リソースキューを管理する」をご参照ください。 設定方法:
説明
|
|
SERVERLESS_SQL_COMPUTE |
使用する SQL セッション。デフォルトでは、管理センター の Compute Resource でクラスター用に設定された デフォルトのSQL Compute が使用されます。異なるタスクに異なる SQL セッションを使用するには、このパラメーターを設定します。SQL セッションを作成および管理するには、「SQL セッションの管理」をご参照ください。 |
|
その他 |
カスタムの Spark 設定パラメーターです。Spark 固有のプロパティを追加できます。 形式: 説明
DataWorks では、ワークスペースレベルでグローバル Spark パラメーターを設定できます。このパラメーターは、DataWorks の様々なモジュールで利用されます。グローバル Spark パラメーターが、モジュール固有の Spark パラメーターより優先されるかどうかを指定できます。グローバル Spark パラメーターの設定方法の詳細については、「グローバル Spark パラメーターの設定」をご参照ください。 |