MaxCompute V2.0 は、Object Storage Service (OSS) および Tablestore に接続する外部テーブルをサポートしています。MaxCompute Studio は、カスタムハンドラクラスの作成を高速化するコードテンプレートを提供します。このトピックでは、MaxCompute Studio を使用して、OSS または Tablestore に保存されている非構造化データに対して、クエリの作成、デバッグ、パッケージ化、および実行を行う方法について説明します。
前提条件
開始する前に、以下をご確認ください:
接続済みの MaxCompute プロジェクト。詳細については、「プロジェクト接続の管理」をご参照ください。
MaxCompute Studio で作成された MaxCompute Java モジュール。詳細については、「MaxCompute Java モジュールの作成」をご参照ください。
仕組み
MaxCompute で非構造化データをクエリするには、4 つのステージが必要です:
ハンドラクラスの作成 — MaxCompute が外部ストレージからデータを読み取ったり、外部ストレージにデータを書き込んだりする方法を定義する
Extractor、StorageHandler、またはOutputerクラスを実装します。デバッグ —
examplesディレクトリ内のサンプルを使用して、ハンドラに対して単体テストを実行します。パッケージ化とアップロード — ハンドラを JAR パッケージに圧縮し、リソースとして MaxCompute にアップロードします。
クエリ — ハンドラと JAR リソースを参照する外部テーブルを作成し、SQL クエリを実行します。
StorageHandler、Extractor、または Outputer クラスの作成
ビジネス要件に基づいてハンドラクラスのタイプを選択します:
| クラス | 役割 |
|---|---|
Extractor | OSS または Tablestore から非構造化データを読み取るためのカスタムロジックを定義します |
Outputer | 外部ストレージに非構造化データを書き込むためのカスタムロジックを定義します |
StorageHandler | Extractor または Outputer クラスで定義されたロジックを実装します |
クラスを作成するには:
左側のナビゲーションウィンドウの [Project] タブで、[src] > [main] > [java] の順に選択し、[java] を右クリックして、[New] > [MaxCompute Java] の順に選択します。

[Name] フィールドにクラス名を入力します。パッケージがまだ存在しない場合は、
PackageName.ClassNameというフォーマットを使用します。MaxCompute Studio は自動的にパッケージを作成します。クラスタイプとして [Extractor]、[StorageHandler]、または [Outputer] を選択し、Enter キーを押します。
コードエディタでロジックを実装します。MaxCompute Studio はファイルにフレームワークコードを事前に入力します。ユースケースに合わせてロジックセクションを記述してください。
Extractor または Outputer クラスのデバッグ
examples ディレクトリ内のサンプルに基づいて単体テストを作成します。各サンプルは、テスト入力を構築し、ハンドラの出力を検証する方法を示しています。ハンドラをパッケージ化する前に、テストを実行して読み取りまたは書き込みロジックが正しいことを確認してください。

プログラムのパッケージ化とアップロード
ハンドラを JAR パッケージに圧縮し、リソースとして MaxCompute サーバーにアップロードします。次のステップで作成する外部テーブルは、このリソースを参照してクエリ時にハンドラを特定します。
詳細な手順については、「Java プログラムのパッケージ化、パッケージのアップロード、MaxCompute UDF の作成」をご参照ください。
非構造化データのクエリ
[Project] ツールウィンドウで、ご利用の MaxCompute プロジェクト配下にある [scripts] を右クリックし、[New] > [MaxCompute SQL Script] の順に選択します。

[Script Name] フィールドに名前を入力し、[MaxCompute Project] ドロップダウンリストからご利用の MaxCompute プロジェクトを選択して、[OK] をクリックします。

JAR リソースとハンドラクラスを参照する外部テーブルを作成する SQL ステートメントを入力し、
アイコンをクリックして実行します。別の MaxCompute SQL スクリプトを作成し、クエリ文を入力して、
アイコンをクリックしてクエリを実行します。