Spark SQL は、構造化データを処理し、ジョブ実行効率を向上させるための分散 SQL クエリエンジンです。DataWorks の CDH Spark SQL ノードを使用すると、CDH Spark SQL タスクを開発し、定期スケジュール設定を構成し、他のジョブと統合できます。
前提条件
Alibaba Cloud CDH クラスターを作成し、DataWorks ワークスペースにバインド済みであること。詳細については、「Data Studio: CDH コンピューティングリソースの関連付け」をご参照ください。
重要CDH クラスターに Spark コンポーネントがインストールされており、クラスターのバインド時に Spark 関連の構成を設定していることを確認してください。
(オプション) Resource Access Management (RAM) ユーザーを使用している場合は、そのユーザーをワークスペースに追加し、[Developer] または [Workspace Administrator] ロールを付与する必要があります。Workspace Administrator ロールは広範な権限を持つため、慎重に付与する必要があります。ワークスペースにメンバーを追加する方法の詳細については、「ワークスペースにメンバーを追加する」をご参照ください。
説明ルートアカウントを使用している場合は、このステップをスキップできます。
DataWorks で Hive データソースを構成し、接続性テストに合格済みであること。詳細については、「データソース管理」をご参照ください。
ノードの作成
手順については、「ノードの作成」をご参照ください。
ノードの開発
SQL エディターでタスクコードを開発します。${variable_name} の形式を使用して変数を定義し、その後、ノードエディターの右側にある [スケジュール設定] > [スケジュールパラメーター] でその値を割り当てます。これにより、定期タスク向けの動的パラメーターが有効になります。詳細については、「スケジュールパラメーターのソースと式」をご参照ください。
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 id,${var} FROM test_spark.test_lineage_table_f1;この例では、
test_lineage_table_f1およびtest_lineage_table_t2テーブルをtest_sparkデータベースに作成し、test_lineage_table_f1テーブルからtest_lineage_table_t2テーブルにデータをコピーします。これは例です。ご利用のデータベース環境に合わせて調整してください。${var}パラメーターは、nameフィールドの値を提供します。
ノードのデバッグ
Run Configuration [コンピューティングリソース] セクションで、[コンピューティングリソース] と [リソースグループ] を構成します。
コンピューティングリソース: DataWorks に登録されている CDH クラスターの名前を選択します。
リソースグループ: データソース接続性テストに合格したスケジューリングリソースグループを選択します。詳細については、「ネットワーク接続ソリューション」をご参照ください。
ツールバーで、[実行] をクリックします。
次のステップ
ノードのスケジュール構成: ノードを定期的なスケジュールで実行するには、ページの右側にある[スケジュール構成]パネルで、[時間プロパティ]と関連するスケジュールプロパティを設定します。
ノードの公開: ノードを本番環境に公開するには、
アイコンをクリックします。本番環境に公開されたノードのみがスケジュールされます。タスク O&M: ノードを公開した後、O&M センターでスケジュールされた実行をモニターできます。詳細については、「オペレーションセンターの開始」をご参照ください。