Spark SQLノードを使用すると、分散SQLクエリエンジンを使用して構造化データを処理できます。これにより、ジョブの実行効率が向上します。DataWorksは、CDH Spark SQLタスクを開発および定期的にスケジュールし、タスクを他のタイプのタスクと統合するために使用できるCDH Spark SQLノードを提供します。このトピックでは、CDH Spark SQLノードを作成および使用する方法について説明します。
前提条件
DataStudioでワークフローが作成されていること。
DataStudioでは、さまざまなタイプのコンピューティングエンジンでの開発操作がワークフローに基づいて実行されます。したがって、ノードを作成する前に、ワークフローを作成する必要があります。詳細については、「ワークフローの作成」をご参照ください。
Alibaba Cloud CDHクラスターが作成され、DataWorksに登録されていること。
CDHノードを作成し、CDHノードを使用してDataWorksでCDHタスクを開発する前に、CDHクラスターをDataWorksワークスペースに登録する必要があります。詳細については、「CDH または CDP クラスタを DataWorks に登録する」をご参照ください。
サーバーレスリソースグループが購入され、構成されていること。構成には、ワークスペースとの関連付けとネットワーク構成が含まれます。詳細については、「サーバーレスリソースグループの作成と使用」をご参照ください。
制限事項
CDH Spark SQLノードのタスクは、スケジューリングのためにサーバーレスリソースグループまたは旧バージョンの専用リソースグループで実行できます。タスクはサーバーレスリソースグループで実行することをお勧めします。
ステップ 1:CDH Spark SQLノードを作成する
DataStudioページに移動します。
DataWorksコンソールにログオンします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションペインで、 を選択します。表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。
DataStudioページで、目的のワークフローを見つけ、ワークフロー名を右クリックし、 を選択します。
[ノードの作成] ダイアログボックスで、[名前] パラメーターを構成し、[確認] をクリックします。作成されたノードを使用して、CDH Spark SQLタスクを開発および構成できます。
ステップ 2:CDH Spark SQLタスクを開発する
(オプション)CDHクラスターを選択する
現在のワークスペースに複数のCloudera's Distribution including Apache Hadoop(CDH)クラスターが登録されている場合は、ビジネス要件に基づいて [エンジンインスタンス CDH] ドロップダウンリストからクラスターを選択する必要があります。現在のワークスペースにCDHクラスターが1つだけ登録されている場合は、そのCDHクラスターが開発に自動的に使用されます。

SQLコードを開発する
SQLコードを開発する:簡単な例
CDH Spark SQLノードの構成タブにあるコードエディターで、タスクコードを記述します。
この例では、test_sparkデータベースにtest_lineage_table_f1テーブルとtest_lineage_table_t2テーブルを作成し、test_lineage_table_f1テーブルからtest_lineage_table_t2テーブルにデータをコピーできます。サンプルコード:
この例は参照用です。ビジネス要件に基づいてコードを記述できます。
CREATE TABLE IF NOT EXISTS test_spark.test_lineage_table_f1 (`id` BIGINT, `name` STRING)
PARTITIONED BY (`ds` STRING);
CREATE TABLE IF NOT EXISTS test_spark.test_lineage_table_t2 AS SELECT * FROM test_spark.test_lineage_table_f1;
INSERT into test_spark.test_lineage_table_t2 SELECT * FROM test_spark.test_lineage_table_f1;SQLコードを開発する:スケジューリングパラメーターを使用する
DataWorksは、[スケジューリングパラメーター] を提供します。その値は、定期的なスケジューリングシナリオでのスケジューリングパラメーターの構成に基づいて、タスクのコードで動的に置き換えられます。${Variable}形式でタスクコードに変数を定義し、[プロパティ] タブの [スケジューリングパラメーター] セクションで変数に値を割り当てることができます。サポートされているスケジューリングパラメーターの形式とスケジューリングパラメーターの構成方法については、「スケジューリングパラメーターでサポートされている形式」および「スケジューリングパラメーターの構成と使用」をご参照ください。
サンプルコード:
SELECT '${var}'; -- 特定のスケジューリングパラメーターを var 変数に割り当てることができます。(オプション)詳細パラメーターを構成する
CDH Spark SQLノードの構成タブにあるコードエディターで、右側のナビゲーションペインの [詳細設定] をクリックして、詳細パラメーターを構成します。次のコードは例を示しています。
"spark.driver.memory": "2g":Sparkドライバーノードに割り当てられるメモリサイズを指定します。"spark.yarn.queue": "haha":アプリケーションが送信されるYarnのキューを指定します。
詳細パラメーターの構成方法については、「Spark Configuration」をご参照ください。
ステップ 3:タスクスケジューリングプロパティを構成する
システムでノードのタスクを定期的に実行する場合、ノードの構成タブの右側のナビゲーションペインにある [プロパティ] をクリックして、ビジネス要件に基づいてタスクスケジューリングプロパティを構成できます。詳細については、「スケジュール」をご参照ください。
タスクをコミットする前に、[プロパティ] タブで [再実行] パラメーターと [親ノード] パラメーターを構成する必要があります。
ステップ 4:タスクコードをデバッグする
次の操作を実行して、タスクがビジネス要件に基づいて期待どおりに構成されているかどうかを確認できます。
オプション。リソースグループを選択し、カスタムパラメーターを変数に割り当てます。
ノードの構成タブの上部ツールバーにある
アイコンをクリックします。[パラメーター] ダイアログボックスで、デバッグおよびタスクコードの実行に使用するスケジューリング用のリソースグループを選択します。タスクコードでスケジューリングパラメーターを使用する場合は、デバッグのために、タスクコードでスケジューリングパラメーターを変数に値として割り当てます。スケジューリングパラメーターの値割り当てロジックについては、「デバッグ手順」をご参照ください。
タスクコードを保存して実行します。
上部ツールバーで
アイコンをクリックして、タスクコードを保存します。次に、
アイコンをクリックして、タスクコードを実行します。オプション。スモークテストを実行します。
ノードをコミットするとき、またはノードをコミットした後に、開発環境でノードのスモークテストを実行して、ノードが期待どおりに実行されているかどうかを確認できます。詳細については、「スモークテストを実行する」をご参照ください。
ステップ 5:タスクをコミットしてデプロイする
ノードのタスクを構成した後、タスクをコミットしてデプロイする必要があります。タスクをコミットしてデプロイすると、システムはスケジューリング構成に基づいてタスクを定期的に実行します。
上部ツールバーの
アイコンをクリックして、タスクを保存します。上部ツールバーの
アイコンをクリックして、ノードのタスクをコミットします。[送信] ダイアログボックスで、[変更の説明] パラメーターを構成します。次に、ビジネス要件に基づいて、タスクのコミット後にタスクコードを確認するかどうかを決定します。
説明タスクをコミットする前に、[プロパティ] タブで [再実行] パラメーターと [親ノード] パラメーターを構成する必要があります。
コードレビュー機能を使用して、タスクのコード品質を確保し、無効なタスクコードによって発生するタスク実行エラーを防ぐことができます。コードレビュー機能を有効にすると、コミットされたノードコードは、コードレビューに合格した後でのみデプロイできます。詳細については、「コードレビュー」をご参照ください。
標準モードのワークスペースを使用する場合は、タスクをコミットした後に、本番環境にタスクをデプロイする必要があります。ノードのタスクをデプロイするには、ノードの構成タブの右上隅にある [デプロイ] をクリックします。詳細については、「タスクをデプロイする」をご参照ください。
次のステップ
タスクの運用と保守:タスクをコミットしてデプロイすると、タスクはスケジューリング構成に基づいて定期的に実行されます。対応するノードの構成タブの右上隅にある [オペレーションセンター] をクリックしてオペレーションセンターに移動し、タスクのスケジューリングステータスを表示できます。詳細については、「自動トリガーされたタスクの表示と管理」をご参照ください。
リネージの表示:タスクをコミットしてデプロイした後、[データマップ] ページでタスクのリネージを表示できます。たとえば、元のデータのソースと、テーブルデータが流れるデータベースを表示できます。次に、ビジネス要件に基づいて、さまざまなレベルのリネージの影響を分析できます。詳細については、「リネージを表示する」をご参照ください。