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

AnalyticDB:Spark SQL を使用して SQL Server データを読み書きする

最終更新日:Apr 18, 2025

AnalyticDB for MySQL では、Spark SQL ジョブを送信して、自己管理 SQL Server データベースまたはビューモードの ApsaraDB RDS for SQL Server にアクセスできます。このトピックでは、Spark SQL を使用して ApsaraDB RDS for SQL Server からデータにアクセスする方法について説明します。

前提条件

手順 1:データの準備

ApsaraDB RDS for SQL Server インスタンスにデータベースを作成し、データベースにテーブルを作成し、テーブルにデータを挿入します。サンプル文:

CREATE DATABASE db;

CREATE TABLE test (
    id INT NULL,
    first_name NVARCHAR(32) NULL,
    last_name NVARCHAR(32) NULL,
    age INT NULL
);

INSERT INTO test VALUES(1,'a','b',5);
INSERT INTO test VALUES(2,'c','d',6);
INSERT INTO test VALUES(3,'e','f',7);

手順 2:ApsaraDB RDS for SQL Server ドライバーのダウンロードとアップロード

  1. ApsaraDB RDS for SQL Server ドライバーをダウンロードする

  2. ダウンロードしたドライバー パッケージを解凍します。アップロード サフィックスが jre8.jar の JAR パッケージを Object Storage Service (OSS) の jars フォルダにアップロードします。

手順 3:Spark SQL ジョブの送信Spark SQL ジョブを送信する

  1. AnalyticDB for MySQL コンソール にログインします。コンソールの左上隅で、リージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 Enterprise Edition、Basic Edition、または Data Lakehouse Edition タブで、管理するクラスタを見つけ、クラスタ ID をクリックします。

  2. 左側のナビゲーションウィンドウで、ジョブを開発する > Sql開発 を選択します。

  3. [SQLConsole] タブで、Spark エンジンとジョブリソースグループを選択します。

  4. [[SQLConsole] タブで、アクセスモードに基づいてパラメータを設定します。タブで、アクセスモードに基づいてパラメーターを構成します。

    ADD jar oss://testBucketName/mssql-jdbc-12.8.1.jre8.jar;
    SET spark.adb.eni.enabled=true;
    SET spark.adb.eni.vswitchId=<vsw-bp1sxxsodv28ey5dl****>;
    SET spark.adb.eni.securityGroupId=<sg-bp19mr685pmg4ihc****>;   
    
    CREATE TEMPORARY VIEW table_tmp
    USING org.apache.spark.sql.jdbc
    OPTIONS (
      url '<jdbc:mysql://rm-t4nn744j34****.mssql.singapore.rds.aliyuncs.com:1433;databaseName=db;trustServerCertificate=true;encrypt=true;>',     // データベース名を設定します
      driver 'com.microsoft.sqlserver.jdbc.SQLServerDriver',
      dbtable '<tableName>',    // テーブル名を設定します
      user '<user>',       // データベースアカウント名を設定します
      password '<password>'      // データベースアカウントのパスワードを設定します
    );
    
    INSERT INTO table_tmp VALUES(4,'e','f',8);
    
    SELECT * FROM table_tmp;

    次の表にパラメータを示します。

    パラメータ

    必須

    説明

    JAR を追加

    はい

    ApsaraDB RDS for SQL Server ドライバーの OSS パス。

    この例では、 mssql-jdbc-12.8.1.jre8.jar ファイルの OSS パスが使用されています。この例では、OSS パスはファイルが使用されます。

    spark.adb.eni.enabled

    はい

    ENI を有効にするかどうかを指定します。 弾性ネットワークインターフェース (ENI)。

    データにアクセスする場合は、spark.adb.eni.enabled パラメーターを true に設定する必要があります。

    spark.adb.eni.vswitchId

    はい

    ApsaraDB RDS for SQL Server インスタンスの vSwitch ID。 vSwitch ID を表示するには、[データベース接続] ページで VPC にポインタを移動します。

    spark.adb.eni.securityGroupId

    はい

    ApsaraDB RDS for SQL Server インスタンスが追加されているセキュリティグループの ID。 詳細については、「セキュリティグループ設定の構成」をご参照ください。

    USING org.apache.spark.sql.jdbc

    はい

    このパラメータの値は自動的に USING org.apache.spark.sql.jdbc に設定されます。

    OPTIONS

    はい

    • url: ApsaraDB RDS for SQL Server インスタンスの内部エンドポイントとポート番号。形式: jdbc:sqlserver://rm-t4nn744j34****.mssql.singapore.rds.aliyuncs.com:1433;databaseName=db;trustServerCertificate=true;encrypt=true; databaseName パラメーターをデータベースの実際の名前に設定します。trustServerCertificate パラメーターと encrypt パラメーターを true に設定します。

    • ドライバー: このパラメーターの値は、com.microsoft.sqlserver.jdbc.SQLServerDriver に自動的に設定されます。

    • dbtable: ApsaraDB RDS for SQL Server インスタンス内のテーブルの名前。形式: db_name.table_name。この例では、db.test を使用します。

    • user: ApsaraDB RDS for SQL Server インスタンスのデータベースアカウント名。

    • password: データベースアカウントのパスワード

  5. クリック [実行]します。

  6. Spark ジョブを実行した後、Spark ジョブを実行した後、[Spark JAR 開発] ページに移動し、 ページで [クリック] ログ [アクション] 列の [アプリケーション] タブの [アクション] 列にある タブをクリックしてテーブルデータを表示します。詳細については、「Spark エディター をクリックして、テーブルデータを表示します。 詳細については、「」をご参照ください。