Serverless Spark SQL ノードを作成して、構造化データを処理できます。このノードは、EMR サーバーレス Spark 計算リソースに基づく分散 SQL クエリエンジンを使用して、ジョブをより効率的に実行します。
範囲
計算リソースの制限: EMR サーバーレス Spark 計算リソースをアタッチすることのみ可能です。リソースグループと計算リソースの間にネットワーク接続が利用可能であることを確認してください。
リソースグループ: このタイプのノードを実行するには、サーバーレスリソースグループのみを使用できます。
(オプション) Resource Access Management (RAM) ユーザーの場合は、タスク開発のためにワークスペースに追加され、[開発者] または [ワークスペース管理者] ロールが割り当てられていることを確認してください。ワークスペース管理者ロールには広範な権限があります。このロールは注意して付与してください。メンバーの追加に関する詳細については、「ワークスペースにメンバーを追加する」をご参照ください。
Alibaba Cloud アカウントを使用している場合は、このステップをスキップできます。
ノードの作成
ノードの作成方法の詳細については、「ノードを作成する」をご参照ください。
ノードの開発
SQL 編集エリアでタスクコードを開発できます。構文は catalog.database.tablename をサポートしています。catalog が省略された場合、タスクはクラスターのデフォルトカタログにデフォルト設定されます。catalog.database が省略された場合、タスクはクラスターのデフォルトカタログ内のデフォルトデータベースにデフォルト設定されます。
データカタログの詳細については、「EMR Serverless Spark でデータカタログを管理する」をご参照ください。
-- <catalog.database.tablename> を実際の情報に置き換えます。
SELECT * FROM <catalog.database.tablename> コード内で変数を定義するには、${変数名} フォーマットを使用します。その後、ノード編集ページの右側にある [スケジュール設定] セクションの [スケジューリングパラメーター] で、変数に値を割り当てることができます。これにより、スケジューリングシナリオでコードにパラメーターを動的に渡すことができます。スケジューリングパラメーターでサポートされているフォーマットの詳細については、「スケジューリングパラメーターでサポートされているフォーマット」をご参照ください。以下に例を示します。
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 です。
ノードのテスト
[デバッグ設定] セクションで、[計算リソース] と [リソースグループ] を選択します。
設定項目
説明
計算リソース
アタッチされている EMR サーバーレス Spark 計算リソースを選択します。利用可能な計算リソースがない場合は、ドロップダウンリストから [計算リソースの作成] を選択します。
リソースグループ
ワークスペースにアタッチされているリソースグループを選択します。
スクリプトパラメーター
ノードコンテンツを構成する際、
${パラメーター名}フォーマットを使用して変数を定義できます。[スクリプトパラメーター] セクションで [パラメーター名] と [パラメーター値] を構成する必要があります。タスクが実行されると、変数はその実際の値に動的に置き換えられます。詳細については、「スケジューリングパラメーターでサポートされているフォーマット」をご参照ください。Serverless Spark ノードパラメーター
Spark プログラムの実行時パラメーター。以下のパラメーターがサポートされています:
DataWorks カスタム実行時パラメーター。詳細については、「付録: DataWorks パラメーター」をご参照ください。
ネイティブ Spark プロパティ。詳細については、「オープンソース Spark プロパティ」をご参照ください。
ノード編集ページの上部にあるツールバーで、[実行] をクリックして SQL タスクを実行します。
重要ノードを公開する前に、[デバッグ設定] の下の [ServerlessSpark ノードパラメーター] を [スケジュール設定] の下の [ServerlessSpark ノードパラメーター] と同期させる必要があります。
次のステップ
ノードをスケジュールする: プロジェクトフォルダー内のノードを定期的に実行するには、右側の [スケジューリング] ペインで [スケジュールポリシー] と関連するスケジューリングプロパティを構成します。
ノードを公開する: ノードを本番環境で実行する必要がある場合は、
アイコンをクリックして公開プロセスを開始します。プロジェクトフォルダー内のノードの定期的なスケジューリングは、本番環境に公開された後にのみ有効になります。ノード O&M: ノードを公開した後、オペレーションセンターで定期タスクのステータスを表示できます。詳細については、「オペレーションセンター入門」をご参照ください。
付録: DataWorks パラメーター
詳細パラメーター | 説明 |
FLOW_SKIP_SQL_ANALYZE | SQL 文の実行モード。有効な値:
説明 このパラメーターは、開発環境でのテスト実行でのみサポートされます。 |
DATAWORKS_SESSION_DISABLE | ジョブの送信メソッド。Data Studio でタスクを実行すると、タスクはデフォルトで SQL コンピュートに送信されて実行されます。このパラメーターを使用して、タスクを SQL コンピュートに送信するか、キューに送信するかを指定できます。
|
SERVERLESS_RELEASE_VERSION | Spark エンジンのバージョン。デフォルトでは、[管理センター] の [計算リソース] でクラスターに構成されている [デフォルトエンジンバージョン] が使用されます。このパラメーターを構成して、タスクごとに異なるエンジンバージョンを指定できます。 説明 詳細設定の |
SERVERLESS_QUEUE_NAME | タスクを送信するリソースキュー。デフォルトでは、タスクは [管理センター] の [クラスター管理] でクラスターに構成されている [デフォルトリソースキュー] に送信されます。キューを追加して、リソースの隔離と管理の要件を満たすことができます。詳細については、「リソースキューを管理する」をご参照ください。 構成方法:
説明
|
SERVERLESS_SQL_COMPUTE | SQL コンピュート (SQL セッション) を指定します。デフォルトでは、[管理センター] の [計算リソース] でクラスターに構成されている [デフォルト SQL コンピュート] が使用されます。このパラメーターを構成して、タスクごとに異なる SQL セッションを設定できます。SQL セッションの作成と管理の詳細については、「SQL セッションを管理する」をご参照ください。 |
その他 | Spark 構成パラメーターをカスタマイズし、Spark 固有のプロパティを追加します。 構成フォーマットは次のとおりです: 説明 DataWorks サービスに対してワークスペースレベルでグローバル Spark パラメーターを構成できます。ワークスペースレベルで構成されたグローバル Spark パラメーターが、特定の DataWorks サービスで単一のタスクを実行するために構成された Spark パラメーターよりも高い優先度を持つかどうかを指定できます。詳細については、「グローバル Spark パラメーターを構成する」をご参照ください。 |