Trino は、複数のデータソースにまたがる対話型分析クエリのためのオープンソースの分散 SQL クエリエンジンです。E-MapReduce (EMR) Trino ノードを開発・設定して、大規模な多次元データ集約やレポート分析を実行できます。
前提条件
Alibaba Cloud EMR クラスターを作成し、DataWorks にバインドしていること。詳細については、「DataStudio (新バージョン): EMR 計算リソースのバインド」をご参照ください。
(任意) Resource Access Management (RAM) ユーザーである場合は、タスク開発のためにワークスペースに追加され、[開発者] または [ワークスペース管理者] ロールが割り当てられていることを確認してください。ワークスペース管理者ロールには広範な権限があります。このロールは慎重に付与してください。メンバーの追加に関する詳細については、「ワークスペースへのメンバーの追加」をご参照ください。
Alibaba Cloud アカウントを使用している場合は、このステップをスキップできます。
制限事項
このタイプのタスクは、サーバーレスリソースグループでのみ実行できます。
DataWorks で DataLake またはカスタムクラスターのメタデータを管理するには、まずクラスターで EMR-HOOK を設定する必要があります。詳細については、「Hive 用に EMR-HOOK を設定する」をご参照ください。
説明クラスターで EMR-HOOK が設定されていない場合、DataWorks はメタデータをリアルタイムで表示したり、監査ログを生成したり、データリネージを表示したり、EMR 関連の管理タスクを実行したりできません。
Trino で LDAP 認証が有効になっている場合は、EMR Master ノードにログインし、/etc/taihao-apps/trino-conf ディレクトリから keystore ファイルをダウンロードします。次に、DataWorks コンソールにログインします。上部のナビゲーションバーで、ターゲットリージョンに切り替えます。ワークスペースを見つけ、[アクション] 列の [管理] をクリックして、[管理センター] に移動します。左側のナビゲーションウィンドウで、[計算リソース] を選択します。EMR クラスターを見つけ、[アカウントマッピング] をクリックします。[アカウントマッピングの編集] をクリックします。編集ページで、[Keystore ファイルのアップロード] をクリックしてファイルをアップロードします。
手順
EMR Trino ノードの編集ページで、次の手順を実行します。
コネクタの設定
MySQL テーブルをクエリする前に、組み込みの EMR Trino コネクタを設定する必要があります。詳細については、「MySQL コネクタ」をご参照ください。
Hive テーブルをクエリする前に、組み込みの EMR Trino コネクタを設定する必要があります。詳細については、「Hive コネクタ」をご参照ください。
他のデータソースからデータをクエリするには、組み込みコネクタの設定方法について「コネクタの設定」をご参照ください。
SQL コードの編集
SQL 編集エリアで、タスクのコードを記述します。`${variable_name}` 形式で変数を定義できます。これらの変数には、右側の [スケジュール設定] ペインの [スケジュールパラメーター] セクションで値を割り当てることができます。これにより、ノードがスケジュールされたときに動的にパラメーターを渡すことができます。スケジューリングパラメーターの詳細については、「サポートされているスケジューリングパラメーターのフォーマット」をご参照ください。以下に例を示します。
-- 使用法 -- SELECT * FROM <catalog>.<schema>.<table>; -- パラメーターの説明 -- <catalog> は接続するデータソースの名前です。 -- <schema> は使用するデータベースの名前です。 -- <table> はクエリするデータテーブルです。 -- たとえば、Hive データソースのデフォルトデータベースにある hive_table テーブルのデータを表示する場合 -- Hive テーブルのクエリ SELECT * FROM hive.default.hive_table; -- たとえば、MySQL データソースの自己管理 rt_data データベースにある rt_user テーブルのデータを表示する場合 -- MySQL テーブルのクエリ SELECT * FROM mysql.rt_data.rt_user; -- Hive テーブルと MySQL テーブルの結合 SELECT DISTINCT a.id, a.name,b.rt_name FROM hive.default.hive_table a INNER JOIN mysql.rt_data.rt_user b ON a.id = b.id; -- スケジューリングパラメーターを使用した Hive テーブルのクエリ SELECT * FROM hive.default.${table_name};(任意) 詳細パラメーターの設定
右側の [スケジュール設定] ペインで、 を選択し、次の表のプロパティを設定します。
説明その他のオープンソース Spark プロパティについては、右側の [スケジュール設定] ペインの セクションで設定できます。詳細については、「設定」をご参照ください。
パラメーター
説明
FLOW_SKIP_SQL_ANALYZE
SQL 文の実行メソッド。有効な値:
true: 一度に複数の SQL 文を実行します。false(デフォルト): 一度に 1 つの SQL 文を実行します。
DATAWORKS_SESSION_DISABLE
開発環境で直接テストを実行するシナリオに適用されます。有効な値:
true: SQL 文が実行されるたびに、新しい Java Database Connectivity (JDBC) 接続を作成します。false(デフォルト): ユーザーが同じノード内で異なる SQL 文を実行するときに、同じ JDBC 接続を再利用します。
SQL タスクの実行
[デバッグ設定] ペインの [計算リソース] セクションで、[計算リソース] と [DataWorks リソースグループ] パラメーターを設定します。
説明タスクに必要なリソースに基づいて [スケジュール CU] を設定することもできます。デフォルトの CU 値は
0.25です。パブリックインターネットまたは VPC 経由でデータソースにアクセスするには、データソースとの接続性テストに合格したスケジュールリソースグループを使用する必要があります。詳細については、「ネットワーク接続ソリューション」をご参照ください。
ツールバーで、パラメーターダイアログボックスでデータソースを選択し、[実行] をクリックします。
説明EMR Trino ノードを使用してデータをクエリする場合、クエリ結果には最大 10,000 行を含めることができ、合計データサイズは 10 MB を超えることはできません。
ノードタスクをスケジュールで実行するには、必要に応じてそのスケジューリングプロパティを設定できます。詳細については、「ノードのスケジューリング」をご参照ください。
ノードを設定した後、それを公開する必要があります。詳細については、「ノードとワークフローの公開」をご参照ください。
タスクが公開された後、オペレーションセンターで定期タスクの実行ステータスを表示できます。詳細については、「オペレーションセンターの概要」をご参照ください。
よくある質問
Q: 接続タイムアウトが原因でノードの実行が失敗します。

A: リソースグループとクラスター間のネットワーク接続を確認してください。計算リソースリストページに移動して、リソースを初期化します。表示されるダイアログボックスで、[再初期化] をクリックし、初期化が成功したことを確認します。

