このトピックでは、Spark SQL を使用して外部テーブルでジョブ開発を実行する方法について説明します。
前提条件
AnalyticDB for MySQL Enterprise Edition、Basic Edition、または Data Lakehouse Edition クラスタが作成されている。
Object Storage Service (OSS) バケットが AnalyticDB for MySQL クラスタと同じリージョンに作成されている。
手順 1:Hudi 形式の OSS 外部テーブルを作成する
AnalyticDB for MySQL コンソール にログインします。コンソールの左上隅で、リージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。Enterprise Edition、Basic Edition、または Data Lakehouse Edition タブで、管理するクラスタを見つけ、クラスタ ID をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
[SQLConsole] タブで、Spark エンジンと、ジョブリソースグループまたは Spark 対話型リソースグループを選択します。
次の文を入力し、[実行(F8)] をクリックして、Hudi データを格納する
spark_external_dbという名前の外部データベースを作成します。この例では、oss://testBucketName/adb-test-1/パスが使用されています。CREATE DATABASE spark_external_db LOCATION 'oss://testBucketName/adb-test-1/';spark_external_dbデータベースにspark_hudi_tableという名前の外部テーブルを作成して、Hudi データを格納します。この例では、oss://testBucketName/adb-test-1/spark_external_db/パスが使用されています。CREATE TABLE spark_external_db.spark_hudi_table (id int, name string, score int, city string ) using hudi partitioned by (id) tblproperties (primaryKey = 'id', preCombineField = 'city') LOCATION 'oss://testBucketName/adb-test-1/spark_external_db/';データを挿入します。
INSERT OVERWRITE spark_external_db.spark_hudi_table PARTITION(id) VALUES (001,'Anna',99,'London'), (002,'Bob',67,'USA'), (003,'Cindy',78,'Spain'), (004,'Dan',100,'China');
手順 2:Hudi 形式の OSS 外部テーブルのデータをクエリする
次の文を入力し、[実行(F8)] をクリックして、
spark_hudi_tableテーブルのデータをクエリします。SELECT * FROM spark_external_db.spark_hudi_table;説明Data Lakehouse Edition クラスタに予約済みの計算リソースがある場合、または Enterprise Edition クラスタに予約済みのリソースがある場合は、XIHE MPP SQL を使用して外部テーブルでリアルタイムデータクエリを実行することもできます。この場合は、[SQLConsole] タブで XIHE エンジンと対話型リソースグループを選択します。
左側のナビゲーションウィンドウで、 を選択します。[アプリケーション] タブで、SQL 文を見つけ、[アクション] 列の [ログ] をクリックしてテーブルデータを表示します。