DataWorks の ADB Spark SQL ノードを使用して、AnalyticDB Spark SQL タスクを開発して定期的にスケジューリングし、他のジョブと統合できます。このトピックでは、ADB Spark SQL ノードでタスクを開発するための主なプロセスについて説明します。
背景情報
AnalyticDB for MySQL Serverless Spark は、AnalyticDB for MySQL チームが Apache Spark に基づいて開発したビッグデータ分析およびコンピューティングサービスです。このサービスを使用すると、AnalyticDB for MySQL コンソールで Spark SQL ジョブを直接送信してデータ分析を実行できます。AnalyticDB for MySQL Serverless Spark クラスターをコンピューティングリソースとして DataWorks ワークスペースにバインドすると、DataWorks の ADB Spark SQL ノードを使用して、AnalyticDB for MySQL Spark サービスで Spark SQL タスクを実行できます。詳細については、「Spark SQL 開発の概要」をご参照ください。
前提条件
AnalyticDB for MySQL の前提条件:
AnalyticDB for MySQL Basic Edition クラスターがワークスペースと同じリージョンに作成されていること。詳細については、「クラスターの作成」をご参照ください。
Spark エンジンを使用するインタラクティブリソースグループが AnalyticDB for MySQL クラスターに作成されていること。このリソースグループは、DataWorks から Spark SQL タスクを実行するために使用されます。詳細については、「インタラクティブリソースグループの作成」をご参照ください。
ADB Spark SQL ノードで Object Storage Service (OSS) を使用するには、OSS バケットが AnalyticDB for MySQL クラスターと同じリージョンにあることを確認してください。
DataWorks の前提条件:
ワークスペースが作成され、リソースグループにバインドされていること。ワークスペースで [Data Studio (新バージョン) を使用] を有効にしていること。詳細については、「ワークスペースの作成」をご参照ください。
リソースグループが AnalyticDB for MySQL クラスターと同じ VPC にバインドされていること。リソースグループの IP アドレスが AnalyticDB for MySQL クラスターのホワイトリストに追加されていること。詳細については、「ホワイトリストの設定」をご参照ください。
AnalyticDB for MySQL クラスターが AnalyticDB for Spark タイプのコンピューティングリソースとして DataWorks に追加され、リソースグループを使用した接続性テストが成功していること。詳細については、「コンピューティングリソースのバインド」をご参照ください。
ADB Spark SQL ノードが作成されていること。詳細については、「スケジューリングワークフローのノードを作成する」をご参照ください。
ステップ 1: ADB Spark SQL ノードを開発する
外部データベースを作成します。
ADB Spark SQL ノードのエディターページで SQL コードを開発できます。次の例は、ADB Spark SQL ノードで外部データベースを作成する方法を示しています。内部テーブルの作成方法については、「Spark SQL を使用して内部テーブルを作成する」をご参照ください。
CREATE DATABASE IF NOT EXISTS `adb_spark_db` location 'oss://dw-1127/db_home';ADB Spark SQL ノードを開発します。
SQL エディターでタスクコードを開発します。コードでは、${変数名} 形式を使用して変数を定義し、ノード編集ページの右側にある [スケジューリング設定] ペインの [スケジューリングパラメーター] セクションでその値を割り当てることができます。これにより、スケジューリングシナリオでコードにパラメーターを動的に渡すことができます。詳細については、「スケジューリングパラメーターでサポートされている形式」をご参照ください。以下に例を示します。
CREATE TABLE IF NOT EXISTS adb_spark_db.tb_order_${var}(id int, name string, age int) USING parquet location 'oss://dw-1127/db_home/tb1' tblproperties ('parquet.compress'='SNAPPY'); CREATE TABLE IF NOT EXISTS adb_spark_db.tb_order_result_${var}(id int, name string, age int) USING parquet location 'oss://dw-1127/db_home/tb2' tblproperties ('parquet.compress'='SNAPPY'); INSERT INTO adb_spark_db.tb_order_result_${var} SELECT * FROM adb_spark_db.tb_order_${var};説明この例では、
${var}パラメーターを$[yyyymmdd]に設定できます。この設定により、日次増分データをバッチで同期できます。
ステップ 2: ADB Spark SQL ノードをデバッグする
ADB Spark SQL ノードのデバッグプロパティを設定します。
ノードの右側にある [デバッグ設定] セクションで、[コンピューティングリソース]、[ADB コンピューティングリソースグループ]、[スケジューリングリソースグループ]、および [コンピューティング CU] パラメーターを設定できます。詳細については、以下の説明をご参照ください。
パラメータータイプ
パラメーター名
説明
コンピューティングリソース
コンピューティングリソース
バインドした AnalyticDB for Spark コンピューティングリソースを選択します。
ADB コンピューティングリソースグループ
AnalyticDB for MySQL クラスターで作成したインタラクティブリソースグループを選択します。詳細については、「リソースグループの作成と管理」をご参照ください。
説明インタラクティブリソースグループは Spark エンジンを使用する必要があります。
DataWorks 設定
スケジューリングリソースグループ
AnalyticDB for Spark コンピューティングリソースをバインドしたときに接続性テストに合格したリソースグループを選択します。
コンピューティング CU
ノードはデフォルトの CU 値を使用します。この値を変更する必要はありません。
ADB Spark SQL ノードをデバッグして実行します。
[保存] をクリックし、次に [実行] をクリックしてノードタスクを実行します。
ステップ 3: ADB Spark SQL ノードをスケジューリングする
ADB Spark SQL ノードのスケジューリングプロパティを設定します。
ノードタスクを定期的に実行するには、必要に応じてノードの右側にある [スケジューリング設定] セクションの [スケジューリングポリシー] でパラメーターを設定します。パラメーターの詳細については、「ノードのスケジューリング」をご参照ください。
パラメーター名
説明
コンピューティングリソース
バインドした AnalyticDB for Spark コンピューティングリソースを選択します。
ADB コンピューティングリソースグループ
AnalyticDB for MySQL クラスターで作成したインタラクティブリソースグループを選択します。詳細については、「リソースグループの作成と管理」をご参照ください。
説明インタラクティブリソースグループは Spark エンジンを使用する必要があります。
スケジューリングリソースグループ
AnalyticDB for Spark コンピューティングリソースをバインドしたときに接続性テストに合格したリソースグループを選択します。
コンピューティング CU
ノードはデフォルトの CU 値を使用します。この値を変更する必要はありません。
ADB Spark SQL ノードを公開します。
ノードタスクを設定した後、ノードを公開できます。詳細については、「ノードとワークフローの公開」をご参照ください。
次のステップ
タスクが公開された後、オペレーションセンターで定期タスクのステータスを表示できます。詳細については、「オペレーションセンターの概要」をご参照ください。