すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:DataWorks での Spark ジョブのスケジューリング

最終更新日:Nov 09, 2025

DataWorks は、ビッグデータ開発と管理のためのエンドツーエンドの機能を提供し、AnalyticDB for MySQL を含む複数のコンピュートエンジンをサポートしています。DataWorks のデータ開発 (DataStudio) モジュールは、視覚的なワークフロー開発、管理されたスケジューリング、および運用保守 (O&M) をサポートしています。これにより、時間や依存関係に基づいてタスクを簡単に管理およびスケジューリングできます。DataWorks で ADB Spark SQL ノードと ADB Spark ノードを使用して、Spark SQL ジョブや Spark アプリケーションジョブなどの Spark ジョブを開発およびスケジューリングできます。

前提条件

  • お使いの AnalyticDB for MySQL クラスターは、次の要件を満たす必要があります:

    • AnalyticDB for MySQL Enterprise Edition、Basic Edition、または Data Lakehouse Edition クラスターが作成されていること。

    • AnalyticDB for MySQL クラスターと同じリージョンに Object Storage Service (OSS) バケットが作成されていること。

    • AnalyticDB for MySQL クラスターにデータベースアカウントが作成されます。

    • AnalyticDB for MySQL クラスター用のリソースグループが作成されていること。詳細については、「リソースグループの作成と管理」をご参照ください。

      • Spark SQL ジョブを開発するには、AnalyticDB for MySQL にインタラクティブリソースグループを作成します。インタラクティブリソースグループのエンジンタイプは Spark である必要があります。

      • Spark JAR または PySpark ジョブを開発するには、AnalyticDB for MySQL にジョブリソースグループを作成します。

    • AnalyticDB for MySQLAliyunADBSparkProcessingDataRole ロールを偽装して他のクラウドリソースにアクセスすることを承認されていること。

    • Spark アプリケーションのログストレージパスが構成されていること。

      説明

      AnalyticDB for MySQL コンソールにログインします。管理するクラスターを見つけて、クラスター ID をクリックします。左側のナビゲーションウィンドウで、ジョブを開発する > Spark Jar 開発 を選択します。ログ設定 をクリックします。表示されるダイアログボックスで、デフォルトのパスを選択するか、カスタムストレージパスを指定します。カスタムストレージパスを OSS のルートディレクトリに設定することはできません。カスタムストレージパスには、少なくとも 1 つのレイヤーのフォルダーが含まれていることを確認してください。

  • お使いの DataWorks ワークスペースは、次の要件を満たす必要があります:

    • AnalyticDB for MySQL クラスターと DataWorks ワークスペースが同じリージョンにあること。

    • DataWorks ワークスペースが作成され、[データ開発 (DataStudio) (新バージョン) のパブリックプレビューに参加] スイッチがオンになっていること。

      説明

      新しい DataWorks ワークスペースを作成するときに、[データ開発 (DataStudio) (新バージョン) のパブリックプレビューに参加] スイッチをオンにできます。既存のワークスペースの場合は、してチケットを送信し、[データ開発 (DataStudio) (新バージョン) のパブリックプレビューに参加] スイッチを有効にできます。

    • リソースグループが作成され、アタッチされていること。詳細については、「リソースグループの作成とアタッチ」をご参照ください。

      説明

      リソースグループを作成するときは、その VPC が AnalyticDB for MySQL クラスターの VPC と同じであることを確認してください。

    • DataWorks ワークスペースがアタッチされているリソースグループの vSwitch の IPv4 CIDR ブロックが、AnalyticDB for MySQL クラスターのホワイトリストに追加されていること。詳細については、「ホワイトリストの設定」をご参照ください。

    • AnalyticDB for Spark 計算リソースが DataWorks ワークスペースにアタッチされていること。詳細については、「AnalyticDB for Spark 計算リソースのアタッチ」をご参照ください。

DataWorks での Spark SQL ジョブのスケジューリング

AnalyticDB for MySQL では、外部テーブルと内部テーブルの両方のジョブを開発できます。このトピックでは、外部テーブルジョブを例として、DataWorks で Spark SQL ジョブを開発およびスケジューリングする手順について説明します。

ステップ 1: ADB Spark SQL ノードの作成

  1. DataWorks コンソールの [ワークスペース] ページに移動します。上部のナビゲーションバーで、目的のリージョンを選択します。目的のワークスペースを見つけ、[アクション] 列で [ショートカット] > [Data Studio] を選択します。

  2. [プロジェクトフォルダー]の横にあるimageアイコンをクリックし、[新規ノード...] > [AnalyticDB] > [ADB Spark SQL]を選択します。

  3. 表示されるダイアログボックスで、ノードの名前を入力して Enter キーを押します。

ステップ 2: ADB Spark SQL ノードの開発

  1. このトピックでは、ADB Spark SQL ノードで外部データベースを作成する方法の例を示します。内部テーブルの作成方法については、「Spark SQL を使用して内部テーブルを作成する」をご参照ください。

    CREATE DATABASE IF NOT EXISTS `adb_spark_db` LOCATION 'oss://testBucketname/db_dome';
  2. ADB Spark SQL ノードに外部テーブル adb_spark_db.tb_order を作成します。

    CREATE TABLE IF NOT EXISTS adb_spark_db.tb_order(id int, name string, age int) 
    USING parquet 
    LOCATION 'oss://testBucketname/db_dome/tb1' 
    TBLPROPERTIES ('parquet.compress'='SNAPPY');
  3. データのクエリ

    外部テーブルが作成された後、AnalyticDB for MySQL の SELECT 文を使用して Parquet データをクエリできます。

    SELECT * FROM adb_spark_db.tb_order limit 100;
  4. ADB Spark SQL ノードに Delta Lake テーブル adb_spark_db.raw_order を作成します。

    CREATE TABLE IF NOT EXISTS adb_spark_db.raw_order(id int, name string, age int) 
    USING delta;
  5. adb_spark_db.tb_order から adb_spark_db.raw_order にデータをインポートします

    INSERT INTO adb_spark_db.raw_order SELECT * FROM adb_spark_db.tb_order;
  6. AnalyticDB for MySQL にデータベースを作成します。データベースが既に作成されている場合は、このステップをスキップできます。以下に例を示します:

    CREATE DATABASE adb_demo; 
  7. Delta Lake テーブルからインポートされたデータを格納するために、AnalyticDB for MySQL に内部テーブルを作成します。以下に例を示します:

    CREATE TABLE adb_demo.order_xuanwu_format (
        `id` int, 
        `name` string, 
        `age` int) 
    using adb 
        TBLPROPERTIES (
        'distributeType'='HASH',
        'distributeColumns' = 'id',
        'storagePolicy' = 'hot'
    );
  8. Delta Lake テーブル adb_spark_db.raw_order から order_xuanwu_format にデータをインポートします。

    INSERT OVERWRITE adb_demo.order_xuanwu_format SELECT * FROM adb_spark_db.adb_spark_db.raw_order;

ステップ 3: ADB Spark SQL ノードの構成と実行

  1. 右側のペインで、[デバッグ構成] をクリックして、ADB Spark SQL ノードの実行時パラメーターを構成します。

    パラメータータイプ

    パラメーター

    説明

    計算リソース

    計算リソース

    アタッチされている AnalyticDB for Spark 計算リソースを選択します。

    ADB 計算リソースグループ

    AnalyticDB for MySQL クラスターで作成した Spark エンジンを持つインタラクティブリソースグループを選択します。

    DataWorks 構成

    リソースグループ

    AnalyticDB for Spark 計算リソースをアタッチしたときに接続性テストに合格した DataWorks リソースグループを選択します。

    計算 CU

    ノードはデフォルトの CU 値を使用します。CU を変更する必要はありません。

    スクリプトパラメーター

    パラメーター名

    ADB Spark SQL ノードに指定したパラメーターの名前。たとえば、スクリプトで $[yyyymmdd] パラメーターを構成して、毎日の新しいデータのバッチ同期を実行できます。サポートされているパラメーターとそのフォーマットについては、「スケジューリングパラメーターの構成」をご参照ください。

    説明

    システムは、ノードで構成されたパラメーター名を自動的に検出します。

    パラメーター値

    パラメーター値を構成します。実行時に、パラメーターは実際の値に動的に置き換えられます。

  2. (オプション) ノードタスクをスケジュールで実行するには、ノードの右側にある [スケジューリング構成] ペインの [スケジューリングポリシー] セクションで [計算リソース][ADB 計算リソースグループ]、および [スケジューリングリソースグループ] パラメーターを構成します。次に、[スケジューリングパラメーター] セクションでパラメーターを構成します。

  3. デバッグ設定を構成した後、image アイコンをクリックして SQL ノードを保存します。次に、image アイコンをクリックして SQL スクリプトをテストし、期待どおりに実行されることを確認します。

  4. スケジューリング構成が完了したら、データベースノードを本番環境に送信して公開できます。

  5. タスクを公開すると、構成されたパラメーターに基づいて定期的に実行されます。[オペレーションセンター] > [タスク O&M] > [定期タスク O&M] > [定期タスク] ページで、公開された定期タスクを表示および管理できます。詳細については、「オペレーションセンターの概要」をご参照ください。

DataWorks での Spark JAR ジョブのスケジューリング

ステップ 1: ADB Spark ノードの作成

  1. DataWorks コンソールの [ワークスペース] ページに移動します。上部のナビゲーションバーで、目的のリージョンを選択します。目的のワークスペースを見つけ、[アクション] 列で [ショートカット] > [Data Studio] を選択します。

  2. [プロジェクトフォルダー] の横にある image アイコンをクリックし、[新規ノード...] > [AnalyticDB] > [ADB Spark] を選択します。

  3. 表示されるダイアログボックスで、ノードの名前を入力して Enter キーを押します。

ステップ 2: ADB Spark ノードの開発

ADB Spark ノードは、Java/Scala および Python での開発をサポートしています。

Java/Scala 開発

  1. サンプル JAR パッケージの準備

    サンプル JAR パッケージ spark-examples_2.12-3.2.0.jar をダウンロードして、ADB Spark ノードを開発およびスケジューリングできます。

  2. サンプルコード spark-examples_2.12-3.2.0.jar を、AnalyticDB for MySQL クラスターと同じリージョンにある OSS バケットにアップロードします。詳細については、「コンソールを使用したファイルのアップロード」をご参照ください。

  3. ADB Spark ノードの構成

    言語

    パラメーター

    説明

    Java/Scala

    メイン JAR リソース

    OSS 内の JAR パッケージのストレージパス。例: oss://testBucketname/db_dome/spark-examples_2.12-3.2.0.jar

    メインクラス

    実行するメインクラスの名前。例: com.work.SparkWork

    パラメーター

    コードに渡すパラメーターを入力します。

    構成項目

    Spark アプリケーションの実行時パラメーターを構成します。詳細については、「Spark アプリケーションの構成パラメーター」をご参照ください。

    例:

    spark.driver.resourceSpec: medium

Python 開発

  1. テストデータの準備

    Spark を使用して読み取りたい data.txt という名前の TXT ファイルを作成します。ファイルに次の内容を追加します。

    Hello,Dataworks
    Hello,OSS
  2. サンプルコードの作成

    spark_oss.py という名前のファイルを作成します。spark_oss.py ファイルに次の内容を追加します。

    import sys
    
    from pyspark.sql import SparkSession
    
    # Spark を初期化します。
    spark = SparkSession.builder.appName('OSS Example').getOrCreate()
    # 指定されたファイルを読み取ります。ファイルパスは args によって渡された値で指定されます。
    textFile = spark.sparkContext.textFile(sys.argv[1])
    # ファイルの行数を計算して出力します。
    print("File total lines: " + str(textFile.count()))
    # ファイルの最初の行を出力します。
    print("First line is: " + textFile.first())
    
  3. テストデータ data.txt とサンプルコード spark_oss.py を、AnalyticDB for MySQL クラスターと同じリージョンにある OSS バケットにアップロードします。詳細については、「コンソールを使用したファイルのアップロード」をご参照ください。

  4. ADB Spark ノードの構成

    言語

    パラメーター

    説明

    Python

    メインプログラムパッケージ

    この例のステップ 3 の spark_oss.py の OSS パス。例: oss://testBucketname/db_dome/spark_oss.py

    パラメーター

    この例のステップ 3 の data.txt の OSS パス。例: oss://testBucketname/db_dome/data.txt

    構成項目

    Spark プログラムの実行時パラメーターを構成します。詳細については、「Spark アプリケーションの構成パラメーター」をご参照ください。

    例:

    spark.driver.resourceSpec: medium

ステップ 3: ADB Spark ノードの構成と実行

  1. 右側のペインで、[デバッグ構成] をクリックして、ADB Spark ノードの実行時パラメーターを構成します。

    パラメータータイプ

    パラメーター

    説明

    計算リソース

    計算リソース

    アタッチされている AnalyticDB for Spark 計算リソースを選択します。

    ADB 計算リソースグループ

    AnalyticDB for MySQL クラスターで作成したジョブリソースグループを選択します。

    DataWorks 構成

    リソースグループ

    AnalyticDB for Spark 計算リソースをアタッチしたときに接続性テストに合格した DataWorks リソースグループを選択します。

    計算 CU

    ノードはデフォルトの CU 値を使用します。CU を変更する必要はありません。

    スクリプトパラメーター

    パラメーター名

    ADB Spark JAR ジョブで構成したパラメーターの名前。

    説明

    システムは、ノードで構成されたパラメーター名を自動的に検出します。

    パラメーター値

    パラメーター値を構成します。実行時に、パラメーターは実際の値に動的に置き換えられます。

  2. (オプション) ノードタスクをスケジュールで実行するには、ノードの右側にある [スケジューリング構成] ペインの [スケジューリングポリシー] セクションで [計算リソース][ADB 計算リソースグループ]、および [スケジューリングリソースグループ] パラメーターを構成します。次に、[スケジューリングパラメーター] セクションでパラメーターを構成します。

  3. デバッグ設定を構成した後、image アイコンをクリックしてノードを保存します。次に、image アイコンをクリックしてスクリプトをテストし、期待どおりに実行されることを確認します。

  4. スケジューリング構成が完了したら、データベースノードを本番環境に公開できます。

  5. 公開された定期タスクは、構成されたパラメーターに基づいて定期的に実行されます。タスクは [オペレーションセンター] > [タスク O&M] > [定期タスク O&M] > [定期タスク] ページで表示および管理できます。詳細については、「オペレーションセンターの概要」をご参照ください。