Trino は、さまざまなデータソースに対してインタラクティブな分析を行うために設計された、オープンソースの分散 SQL クエリエンジンです。E-MapReduce (EMR) Trino ノードを作成して、大規模な多次元データ集約やレポート分析を実行できます。詳細については、「Trino」をご参照ください。
前提条件
EMR クラスターが作成され、ご利用の DataWorks ワークスペースに登録されていること。
EMR ノードを作成し、EMR タスクを開発するには、まず EMR クラスターをご利用の DataWorks ワークスペースに登録する必要があります。手順については、「DataStudio (レガシー):EMR 計算リソースの関連付け」をご参照ください。
(任意) RAM ユーザーを使用してタスクを開発する場合、その RAM ユーザーをワークスペースに追加し、[開発者] または [ワークスペース管理者] のロールを付与する必要があります。ワークスペース管理者ロールは広範な権限を持つため、慎重に付与してください。メンバーの追加方法については、「ワークスペースメンバーの追加」をご参照ください。
サーバーレスリソースグループを購入し、設定済みであること。設定には、リソースグループとワークスペースの関連付け、およびネットワーク接続のセットアップが含まれます。詳細については、「サーバーレスリソースグループの使用」をご参照ください。
DataStudio でワークフローを作成済みであること。
DataStudio では、ワークフローを使用して、さまざまなコンピュートエンジン向けの開発タスクを整理します。そのため、ノードを作成する前にワークフローを作成する必要があります。手順については、「ワークフローの作成」をご参照ください。
制限事項
EMR Trino タスクは、サーバーレスリソースグループでのみ実行できます。
DataWorks で DataLake またはカスタムクラスターのメタデータを管理するには、まずクラスターに EMR-HOOK を設定する必要があります。この設定がないと、DataWorks はリアルタイムメタデータの表示、監査ログの生成、データリネージの表示、または EMR 関連のガバナンスタスクを実行できません。EMR-HOOK の設定方法については、「Hive 用 EMR-HOOK の設定」をご参照ください。
Trino で Lightweight Directory Access Protocol (LDAP) 認証が有効になっている場合、EMR マスターノードにログインし、/etc/taihao-apps/trino-conf ディレクトリからキーストアファイルをダウンロードする必要があります。次に、DataWorks コンソールにログインします。左側のナビゲーションウィンドウで、 をクリックします。ドロップダウンリストから対象のワークスペースを選択し、[管理センターへ] をクリックします。左側のナビゲーションウィンドウで、[クラスター管理] をクリックします。対象の EMR クラスターを見つけ、[アカウントマッピング] タブに移動し、[アカウントマッピングの編集] をクリックしてから、[キーストアファイルのアップロード] をクリックしてファイルをアップロードします。
ステップ 1:EMR Trino ノードの作成
DataStudio ページに移動します。
DataWorks コンソールにログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発へ] をクリックします。
対象のワークフローを右クリックし、 を選択します。
[ノードの作成] ダイアログボックスで、[名前] を入力し、[エンジンインスタンス]、[ノードタイプ]、[パス] を選択します。[確認] をクリックしてノードエディターを開きます。
説明ノード名には、大文字、小文字、中国語文字、数字、アンダースコア (_)、ピリオド (.) を使用できます。
ステップ 2:EMR Trino タスクの開発
作成したノードをダブルクリックして、タスクエディターを開きます。
(任意) EMR クラスターの選択
ワークスペースに複数の EMR クラスターが登録されている場合は、ノードエディターの上部で適切なクラスターを選択できます。1 つしか登録されていない場合、DataWorks はデフォルトでそれを使用します。

コネクタの設定
MySQL テーブルをクエリするには、EMR Trino の組み込みコネクタを設定する必要があります。詳細については、「MySQL コネクタの設定」をご参照ください。
Hive テーブルをクエリするには、EMR Trino の組み込みコネクタを設定する必要があります。詳細については、「Hive コネクタの設定」をご参照ください。
他のデータソースのテーブルをクエリするには、対応する組み込みコネクタを設定します。詳細については、「コネクタの設定」をご参照ください。
SQL コードの編集
SQL エディターにタスクコードを入力します。以下のコードは一例です。
-- 使用法
-- 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};DataWorks は、定期実行でコードに動的に引数を渡すための [スケジューリングパラメーター] を提供します。コード内で ${variable_name} 形式を使用して変数を定義できます。右側のナビゲーションウィンドウで、[プロパティ] > [スケジューリングパラメーター] に移動して、変数に値を割り当てます。サポートされているフォーマットと設定の詳細については、「スケジューリングパラメーターのフォーマット」および「スケジューリングパラメーターの設定と使用」をご参照ください。
実行時にパラメーター値を変更する必要がある場合は、ツールバーの [パラメーターを指定して実行] をクリックします。値の割り当てロジックの詳細については、「開発環境での実行、パラメーターを指定して実行、スモークテスト間の割り当てロジックの違い」をご参照ください。
SQL タスクの実行
ツールバーの
アイコンをクリックします。[パラメーター] ダイアログボックスで、スケジューリングリソースグループを選択し、[実行] をクリックします。説明パブリックインターネットまたは Virtual Private Cloud (VPC) 経由で計算リソースにアクセスするには、リソースとのネットワーク接続テストに合格したスケジューリングリソースグループを使用する必要があります。詳細については、「ネットワーク接続ソリューション」をご参照ください。
後続の実行でリソースグループを変更する必要がある場合は、[パラメーターを指定して実行]
アイコンをクリックし、別のスケジューリングリソースグループを選択します。EMR Trino ノードを使用してデータをクエリする場合、1 つのクエリで最大 10,000 レコードを返すことができ、合計データサイズは 10 MB を超えることはできません。
アイコンをクリックして SQL コードを保存します。
(任意) 詳細パラメーター
SQL ステートメントの実行方法を調整する必要がある場合は、右側のナビゲーションウィンドウで [詳細設定] をクリックしてパラメーターを設定します。
パラメーター | 説明 |
FLOW_SKIP_SQL_ANALYZE | SQL ステートメントの実行モード。有効な値:
|
DATAWORKS_SESSION_DISABLE | 開発環境でのテスト実行に適用されます。有効な値:
|
ステップ 3:タスクスケジューリングの設定
タスクをスケジューリングするには、右側の [スケジューリング設定] をクリックしてプロパティを設定します。詳細については、「概要」をご参照ください。
送信する前に、[再実行プロパティ] と [上流依存ノード] を設定してください。
ステップ 4:タスクの送信とデプロイ
タスクを設定した後、送信してデプロイします。デプロイされると、ノードはスケジューリング設定に従って定期的に実行されます。
ツールバーの
アイコンをクリックしてノードを保存します。ツールバーの
アイコンをクリックしてノードタスクを送信します。[送信] ダイアログボックスで、[変更の説明] を入力し、送信後にコードレビューを実行するかどうかを選択します。
説明ノードを送信する前に、[再実行] および [親ノード] プロパティを設定する必要があります。
コードレビューは、タスクコードの品質を確保し、誤ったコードが本番環境にデプロイされた場合に発生する可能性のあるエラーを防ぐのに役立ちます。コードレビューが有効になっている場合、送信されたコードは、デプロイされる前にレビュアーの承認を得る必要があります。詳細については、「コードレビュー」をご参照ください。
標準モードのワークスペースを使用している場合は、タスクを送信した後に本番環境にデプロイする必要があります。そのためには、ノードエディターの右上隅にある [デプロイ] をクリックします。手順については、「タスクのデプロイ」をご参照ください。
次のステップ
デプロイされると、タスクは設定に従って定期的に実行されます。ノードエディターの右上隅にある [オペレーションセンター] をクリックして、自動トリガータスクのスケジューリングステータスを表示できます。詳細については、「自動トリガータスクの管理」をご参照ください。
よくある質問
Q:接続タイムアウトが原因でノードの実行が失敗します。

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

