DataWorks の ADB Spark SQL ノードを使用すると、AnalyticDB for MySQL Spark SQL タスクの開発、定期的なスケジュール実行、および他のジョブとの統合が可能です。本トピックでは、ADB Spark SQL ノードを用いたタスク開発手順について説明します。
背景情報
AnalyticDB for MySQL Serverless Spark は、Apache Spark を基盤とするマネージド型ビッグデータ分析・コンピューティングサービスです。AnalyticDB for MySQL コンソールから直接 Spark SQL 文を送信できるため、データ開発者が Spark を活用したデータ分析を簡素化できます。DataWorks で AnalyticDB for MySQL Serverless Spark を計算リソースとしてバインドした後は、ADB Spark SQL ノードを用いて Spark SQL タスクの開発および実行が可能です。詳細については、「概要」をご参照ください。
前提条件
AnalyticDB for MySQL の前提条件:
ご利用の
ワークスペースと同じリージョンに、AnalyticDB for MySQL のクラスターを作成済みである必要があります。詳細については、「クラスターの作成」をご参照ください。DataWorks で Spark SQL タスクを実行するため、AnalyticDB for MySQL クラスター内に
インタラクティブリソースグループを作成し、そのエンジンタイプを Spark に設定済みである必要があります。詳細については、「インタラクティブリソースグループの作成」をご参照ください。ADB Spark SQL ノードで
Object Storage Service (OSS)を使用する場合、OSS バケットとクラスターが同じリージョンに配置されていることを確認してください。
DataWorks の前提条件:
リソースグループがバインド済みのワークスペースをご所有している必要があります。リソースグループは、AnalyticDB for MySQL クラスターと同じ仮想プライベートクラウド (VPC)にバインドされます。 AnalyticDB for MySQLリソースグループのIP アドレスは、クラスターのホワイトリストに追加されます。 詳細については、「ホワイトリストを設定する」をご参照ください。AnalyticDB for MySQL クラスターインスタンスを DataWorks に
AnalyticDB for Spark計算リソースとして登録し、リソースグループ経由で接続性テストを完了済みである必要があります。詳細については、「計算リソースの関連付け」をご参照ください。ADB Spark SQL ノードを作成済みである必要があります。詳細については、「スケジュール実行ワークフロー向けノードの作成」をご参照ください。
ステップ 1: ADB Spark SQL ノードを開発する
外部データベースを作成します。
ADB Spark SQL ノードのエディターで SQL コードを開発します。以下の例では、外部データベースを作成しています。管理テーブルの作成については、「Spark SQL を使用した内部テーブルの作成」をご参照ください。
CREATE DATABASE IF NOT EXISTS `adb_spark_db` location 'oss://dw-1127/db_home';タスクの開発
SQL エディターでタスクコードを開発します。${variable_name} の形式で変数を定義し、
プロパティタブのスケジュールパラメーターセクションで値を割り当てることで、スケジュール実行ジョブへの動的パラメーター渡しが可能になります。スケジュールパラメーターの詳細については、「スケジュールパラメーターのソースと式」をご参照ください。以下に例を示します。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 である必要があります。リソースグループ
リソースグループ
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計算リソースのバインド時に接続性テストを通過したリソースグループを選択します。Compute CUs
ノードはデフォルトの CU 値を使用します。このパラメーターは変更不要です。
ADB Spark SQL ノードのデプロイメント
ノードの構成を完了したら、デプロイメントを実行します。詳細については、「ノードおよびワークフローのデプロイメント」をご参照ください。
次のステップ
タスクのデプロイメントが完了すると、オペレーションセンター でそのステータスを確認できます。詳細については、「オペレーションセンターの使い始め」をご参照ください。