Notebook は、ジョブ編集、データ分析、データの可視化などの機能を提供するインタラクティブなデータ分析および開発プラットフォームです。 Notebook を使用して Spark SQL ジョブを開発する場合、データ管理 (DMS) の Notebook 機能を使用してジョブ開発を完了できます。
前提条件
AnalyticDB for MySQL Enterprise Edition、Basic Edition、または Data Lakehouse Edition クラスターが作成されていること。
AnalyticDB for MySQL クラスター用にジョブリソースグループが作成されていること。
AnalyticDB for MySQL クラスター用にデータベースアカウントが作成されていること。
Alibaba Cloud アカウントを使用する場合は、特権アカウントを作成するだけで済みます。
Resource Access Management (RAM) ユーザーを使用する場合は、特権アカウントと標準アカウントを作成し、標準アカウントを RAM ユーザーに関連付ける必要があります。
AnalyticDB for MySQL が、他のクラウドリソースにアクセスするために AliyunADBSparkProcessingDataRole ロールをアシュームするように承認されていること。
AnalyticDB for MySQL クラスター用に Spark アプリケーションのログストレージパスが構成されていること。
説明AnalyticDB for MySQL コンソールにログオンします。 管理するクラスターを見つけ、クラスター ID をクリックします。 左側のナビゲーションウィンドウで、 を選択します。 ログ設定 をクリックします。 表示されるダイアログボックスで、デフォルトパスを選択するか、カスタムストレージパスを指定します。 カスタムストレージパスを OSS のルートディレクトリに設定することはできません。 カスタムストレージパスに少なくとも 1 つのフォルダレイヤーが含まれていることを確認してください。
AnalyticDB for MySQL クラスターと同じリージョンに Object Storage Service (OSS) バケットが作成されていること。
制限事項
Notebook 機能は、中国 (杭州) リージョンでのみサポートされています。
手順
ワークスペースを作成して移動します。
- DMS コンソール V5.0 にログオンします。
左上隅にある
アイコンにポインターを移動し、 を選択します。
説明DMS コンソールを通常モードで使用している場合は、上部のナビゲーションバーで
を選択します。[ワークスペースの作成] をクリックします。 [ワークスペースの作成] ダイアログボックスで、[ワークスペース名] パラメーターと [リージョン] パラメーターを構成し、[OK] をクリックします。
ワークスペースに移動するには、ワークスペースの [アクション] 列にある [ワークスペースに移動] をクリックします。
(オプション) ワークスペースメンバーを追加する。 ワークスペースに複数のユーザーがいる場合は、この手順を実行して各ユーザーに異なるロールを割り当てる必要があります。
コードストレージを構成します。
タブで、[ストレージ管理] をクリックします。
[コードストレージ] セクションで OSS パスを構成します。
リソースを追加します。
タブで、[リソース構成] をクリックします。
リソースを追加リソースの追加 をクリックします。 パネルで、次の表に示すパラメーターを構成します。
パラメーター
必須
説明
[リソース名]
はい
リソースの名前。 カスタム名を入力できます。
[リソースの概要]
はい
リソースの説明。 リソースの目的を入力できます。
[イメージ]
はい
Spark3.5+Python3.9 のみがサポートされています。
AnalyticDB インスタンス
はい
AnalyticDB for MySQL クラスターの ID。
説明目的のクラスターが見つからない場合は、クラスターが DMS に登録されているかどうかを確認してください。
[AnalyticDB リソースグループ]
はい
ジョブリソースグループの名前。
[エグゼキューター仕様]
はい
Spark エグゼキューターのリソース仕様。 この例では、デフォルトの中程度の仕様が使用されています。
異なるリソースタイプは異なる仕様に対応しています。 詳細については、「Spark アプリケーションの構成パラメーター」トピックの「タイプ」列を参照してください。
[最大エグゼキューター数]
[最小エグゼキューター数]
はい
Spark エグゼキューターの数。
[Spark3.5+Python3.9] イメージを選択すると、[最小エグゼキューター数] パラメーターは自動的に 2 に設定され、[最大エグゼキューター数] パラメーターは自動的に 8 に設定されます。
[Notebook 仕様]
はい
Notebook の仕様。 この例では、General_Tiny_v1 (1 コア、4 GB) が使用されています。
[VPC ID]
はい
AnalyticDB for MySQL クラスターが存在する VPC (Virtual Private Cloud)。 これにより、Notebook が AnalyticDB for MySQL クラスターと通信できるようになります。
重要AnalyticDB for MySQL クラスターの VPC と vSwitch を変更する場合は、リソースの [VPC ID] パラメーターと [VSwitch ID] パラメーターを新しい VPC と vSwitch に変更する必要があります。 そうしないと、ジョブの送信が失敗する可能性があります。
[ゾーン ID]
はい
AnalyticDB for MySQL クラスターが存在するゾーン。
[VSwitch ID]
はい
AnalyticDB for MySQL クラスターが接続されている vSwitch。
[セキュリティグループ ID]
はい
使用可能なセキュリティグループ。 これにより、Notebook が AnalyticDB for MySQL クラスターと通信できるようになります。
[リソースの解放]
はい
リソースが自動的に解放されるまでのアイドル状態の期間。
[依存 JAR]
いいえ
JAR パッケージの OSS ストレージパス。 Python でジョブを送信し、JAR パッケージを使用する場合にのみ、このパラメーターを指定します。
[SparkConf]
いいえ
Apache Spark のパラメーターと同様の構成パラメーター。 パラメーターは
key: value
形式である必要があります。 Apache Spark のパラメーターとは異なる構成パラメーター、または AnalyticDB for MySQL 固有の構成パラメーターについては、Spark アプリケーションの構成パラメーターを参照してください。[保存] をクリックします。
リソースを起動するには、リソースの [アクション] 列にある [開始] をクリックします。
データを初期化します。
左上隅にある
アイコンにポインターを移動し、 を選択します。
[+新規] をクリックします。 [インスタンスの追加] ダイアログボックスで、次の表に示すパラメーターを構成します。
パラメーター
説明
[データソース]
[Alibaba Cloud] タブで、[OSS] を選択します。
[基本情報]
[ファイルとログのストレージ]
このパラメーターは自動的に [OSS] に設定されます。
[インスタンスリージョン]
AnalyticDB for MySQL クラスターが存在するリージョン。
[接続方法]
このパラメーターは自動的に [接続文字列アドレス] に設定されます。
[接続文字列アドレス]
値を [oss-cn-hangzhou.aliyuncs.com] に設定します。
[バケット]
バケットの名前。
[アクセスモード]
アクセス方法。 この例では、[セキュリティホスティング - 手動] が使用されています。
[AccessKey ID]
OSS にアクセスする権限を持つ Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID。
AccessKey ID と AccessKey シークレットを取得する方法については、アカウントと権限を参照してください。
[AccessKey Secret]
OSS にアクセスする権限を持つ Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey シークレット。
AccessKey ID と AccessKey シークレットを取得する方法については、アカウントと権限を参照してください。
[詳細情報]
オプションのパラメーター。 詳細については、「Alibaba Cloud データベースインスタンスを登録する」トピックの「詳細情報」セクションを参照してください。
上記のパラメーターを構成した後、左下隅にある [接続テスト] をクリックします。
説明接続テストが失敗した場合は、エラーメッセージに基づいてインスタンス情報を確認してください。
[接続成功] メッセージが表示されたら、[送信] をクリックします。
ワークスペースに移動し、
タブをクリックします。
[データレイクデータ] タブで、[OSS の追加] をクリックし、手順 b で指定したバケットを選択します。
Notebook を作成します。
タブで、
アイコンをクリックし、[Notebook] を選択します。
Notebook ページで Spark SQL ジョブを開発します。
説明Notebook ページのボタンについては、「Notebook を使用してデータをクエリおよび分析する」トピックの「Notebook UI」セクションを参照してください。
次のコマンドを実行して、Python 依存関係をダウンロードします。
pip install delta
セルのタイプを SQL に切り替え、次のステートメントを実行してデータベースを作成します。
説明手順 b で作成された db_delta データベースと手順 c で作成された
sample_data
外部テーブルは、AnalyticDB for MySQL クラスターに自動的に表示されます。 AnalyticDB for MySQL コンソールでsample_data
テーブルを分析できます。CREATE DATABASE db_delta LOCATION 'oss://testBucketName/db_delta/'; -- db_delta データベースのデータのストレージパスを指定します。
セルのタイプをコードに切り替え、次のコードを実行して
sample_data
という名前の外部テーブルを作成し、テーブルにデータを挿入します。sample_data
外部テーブルのデータは、手順 b で指定した OSS パスに格納されます。# -*- coding: utf-8 -*- import pyspark from delta import * from pyspark.sql.types import * from pyspark.sql.functions import * print("Starting Delta table creation") data = [ ("Robert", "Baratheon", "Baratheon", "Storms End", 48), ("Eddard", "Stark", "Stark", "Winterfell", 46), ("Jamie", "Lannister", "Lannister", "Casterly Rock", 29), ("Robert", "Baratheon", "Baratheon", "Storms End", 48), ("Eddard", "Stark", "Stark", "Winterfell", 46), ("Jamie", "Lannister", "Lannister", "Casterly Rock", 29), ("Robert", "Baratheon", "Baratheon", "Storms End", 48), ("Eddard", "Stark", "Stark", "Winterfell", 46), ("Jamie", "Lannister", "Lannister", "Casterly Rock", 29) ] schema = StructType([ StructField("firstname", StringType(), True), StructField("lastname", StringType(), True), StructField("house", StringType(), True), StructField("location", StringType(), True), StructField("age", IntegerType(), True) ]) sample_dataframe = spark.createDataFrame(data=data, schema=schema) sample_dataframe.write.format("delta").mode("overwrite").option('mergeSchema','true').saveAsTable("db_delta.sample_data") # デルタテーブルの作成を開始 # データ # スキーマ # サンプルデータフレーム # sample_data テーブルを上書きモードで保存
セルのタイプを SQL に切り替え、次のステートメントを実行して
sample_data
テーブルからデータをクエリします。SELECT * FROM db_delta.sample_data;
AnalyticDB for MySQL コンソールで Spark SQL を使用して
sample_data
テーブルを分析するには、次の手順を実行します。AnalyticDB for MySQL コンソールにログオンします。 コンソールの左上隅で、リージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 クラスターリスト ページで、エディションタブをクリックします。 管理するクラスターを見つけ、クラスター ID をクリックします。
左側のナビゲーションウィンドウで、
を選択します。 表示されるページで、Spark エンジンとインタラクティブリソースグループを選択します。sample_data
テーブルからデータをクエリします。SELECT * FROM db_delta.sample_data LIMIT 1000;
関連情報
Notebook: Notebook に関する情報を説明します。