OSS-HDFS は、Trino などのビッグデータエンジンが OSS データに直接アクセスできるよう、HDFS 互換のインターフェイスを提供します。E-MapReduce (EMR) クラスター上に Trino をセットアップし、OSS-HDFS に格納されたデータに対して対話型 SQL クエリを実行します。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
Trino サービスが有効化された EMR V3.42.0 以降、または EMR V5.8.0 以降の EMR クラスター。詳細については、「クラスターの作成」をご参照ください。
OSS-HDFS が有効化され、必要なアクセス権限が付与されたバケット。詳細については、「OSS-HDFS の有効化とアクセス権限の付与」をご参照ください。
手順 1:EMR クラスターの作成
EMR コンソールにログインします。左側ナビゲーションウィンドウで、ECS 上の EMR をクリックします。
以下の設定で EMR クラスターを作成します。
パラメーター 必須値 製品バージョン EMR-3.46.2 以降、または EMR-5.12.2 以降 クラスターのルートストレージディレクトリ OSS-HDFS が有効化されたバケット その他のパラメーター デフォルト値 詳細については、「クラスターの作成」をご参照ください。
手順 2:Trino サーバーへの接続
Trino サーバーのアドレスおよびポートを取得します。
ECS 上の EMR ページで、ご利用のクラスター名をクリックします。
サービス > Trino > 設定 に移動し、サーバーアドレスおよびポートを確認します。
以下のコマンドを実行して Trino サーバーに接続します。
パラメーター 説明 <Trino_server_address>Trino サーバーの IP アドレスまたはホスト名。[設定] タブに表示されます。 <Trino_server_port>Trino サーバーのポート番号。[設定] タブに表示されます。 <catalog_name>接続先のカタログ(例: hive)。trino --server <Trino_server_address>:<Trino_server_port> --catalog <catalog_name>注:--catalogフラグには値を指定する必要があります。データソースに対応するカタログを指定してください。
手順 3:OSS-HDFS に格納されたデータのクエリ
Trino サーバーへの接続後、以下の SQL 文を実行してスキーマを作成し、データを読み込み、クエリを実行します。
OSS-HDFS の場所を指すスキーマを作成します。
create schema testDB with (location='oss://<Bucket>.<Endpoint>/<schema_dir>');プレースホルダーを実際の値に置き換えます。
プレースホルダー 説明 例 <Bucket>OSS-HDFS が有効化された OSS バケットの名称 my-data-bucket<Endpoint>ご利用のリージョン向け OSS-HDFS エンドポイント cn-hangzhou.oss-dls.aliyuncs.com<schema_dir>スキーマのディレクトリパス trino/testDB完全な URI は以下の形式になります。
oss://<Bucket>.<Endpoint>/<schema_dir>新規スキーマに切り替えます。
use testDB;テーブルを作成します。
create table tbl (key int, val int);テーブルにデータを挿入します。
insert into tbl values (1,666);テーブル内のデータをクエリします。
select * from tbl;期待される出力:
key | val -----+----- 1 | 666 (1 row)
結果
クエリにより、挿入した行が返されます。データは、スキーマで指定した OSS-HDFS の場所に格納されています。