Trinoは、さまざまなデータソースのインタラクティブな分析クエリを実行するように設計されたオープンソースの分散SQLクエリエンジンです。 大量の多次元データを集計したり、レポートを分析したりするために、E-MapReduce(EMR)Trinoノードを作成できます。 詳細については、「Trinoの概要」をご参照ください。
前提条件
EMRクラスタが作成され、クラスタがDataWorksに登録されている。
EMRノードを作成し、DataWorksでEMRタスクを開発するためにEMRノードを使用する前に、EMRクラスタをDataWorksワークスペースに登録する必要があります。 詳細については、「DataStudio(旧バージョン):EMR計算リソースを関連付ける」をご参照ください。
(RAMユーザーを使用してタスクを開発する場合に必要) RAMユーザーがDataWorksワークスペースにメンバーとして追加され、[開発] ロールまたは [ワークスペース管理者] ロールが割り当てられている。 ワークスペース管理者ロールには、必要以上の権限があります。 ワークスペース管理者ロールを割り当てる場合は注意してください。 メンバーを追加する方法の詳細については、「ワークスペースメンバーを追加し、ロールを割り当てる」をご参照ください。
サーバーレスリソースグループが購入され、構成されている。 構成には、ワークスペースとの関連付けとネットワーク構成が含まれます。 詳細については、「サーバーレスリソースグループを作成して使用する」をご参照ください。
DataStudioでワークフローが作成されている。
DataStudioでは、さまざまなタイプの計算エンジンの開発操作がワークフローに基づいて実行されます。 したがって、ノードを作成する前に、ワークフローを作成する必要があります。 詳細については、「ワークフローを作成する」をご参照ください。
制限
EMR Trinoタスクは、サーバーレスリソースグループでのみ実行できます。
DataWorksでDataLakeまたはカスタムクラスタのメタデータを管理する場合、最初にクラスタでEMR-HOOKを構成する必要があります。 クラスタでEMR-HOOKを構成しないと、メタデータがリアルタイムで表示されず、監査ログが生成されず、DataWorksにデータ系列が表示されません。 EMRガバナンスタスクも実行できません。 EMR-HOOKの構成方法については、「Hive拡張機能を使用してデータ系列と履歴アクセス情報を記録する」をご参照ください。
TrinoでLightweight Directory Access Protocol(LDAP)認証を有効にする場合は、EMRクラスタのマスターノードにログインし、/etc/taihao-apps/trino-confディレクトリにあるキーストアファイルをダウンロードする必要があります。 次に、以下の手順を実行してキーストアファイルをアップロードします。 DataWorksコンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、目的のワークスペースを選択し、[管理センターに移動] をクリックします。 表示されるページの左側のナビゲーションウィンドウで、[クラスタ管理] をクリックします。 次に、目的のクラスタを見つけて、[アカウントマッピング] タブをクリックします。 タブの右上隅にある [アカウントマッピングの編集] をクリックします。 表示されるページで、[キーストアファイルのアップロード] をクリックして、キーストアファイルをアップロードします。
ステップ 1:EMR Trinoノードを作成する
DataStudioページに移動します。
DataWorksコンソールにログインします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。
目的のワークフローを見つけ、ワークフローの名前を右クリックし、 を選択します。
[ノードの作成] ダイアログボックスで、[名前]、[エンジンインスタンス]、[ノードタイプ]、[パス] パラメータを構成します。 [確認] をクリックします。 EMR Trinoノードの構成タブが表示されます。
説明ノード名には、文字、数字、アンダースコア(_)、ピリオド(.)を含めることができます。
ステップ 2:EMR Trinoタスクを開発する
作成したノードの名前をダブルクリックして、ノードの構成タブに移動し、次の操作を実行してタスクを開発します。
(オプション)EMRクラスタを選択する
ワークスペースに複数のEMRクラスタが登録されている場合は、ビジネス要件に基づいて、ノードの構成タブの上部にある [エンジンインスタンスEMR] ドロップダウンリストから1つ選択する必要があります。 ワークスペースに1つだけのEMRクラスタが登録されている場合は、そのEMRクラスタを使用してタスクが開発されます。

コネクタを構成する
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} 形式で変数を定義し、[プロパティ] タブの [スケジューリングパラメータ] セクションで変数に値を割り当てることができます。 スケジューリングパラメータの構成方法とサポートされているスケジューリングパラメータの形式については、「スケジューリングパラメータを構成して使用する」および「サポートされているスケジューリングパラメータの形式」をご参照ください。
コード内の変数に割り当てられているスケジューリングパラメータを変更する場合は、上部のツールバーの [パラメータ付きで実行] をクリックします。 スケジューリングパラメータの値の割り当てについては、「実行、パラメータ付きで実行、開発環境でスモークテストを実行モードにおけるスケジューリングパラメータの値割り当てロジックの違いは何ですか?」をご参照ください。
Trinoタスクを実行する
上部ツールバーの
アイコンをクリックします。 [パラメータ] ダイアログボックスで、スケジューリング用に作成されたリソースグループを選択し、[実行] をクリックします。説明インターネットまたはVPCを介して計算リソースにアクセスする場合は、計算リソースに接続されているスケジューリング用のリソースグループを使用します。 詳細については、「ネットワーク接続ソリューション」をご参照ください。
後続の操作でリソースグループを変更する場合は、
(パラメータ付きで実行) アイコンをクリックして、[パラメータ] ダイアログボックスでリソースグループを変更できます。EMR Trinoノードを使用してデータをクエリする場合、最大 10,000 件のデータレコードを返すことができ、返されるデータレコードの合計サイズは 10 MB を超えることはできません。
アイコンをクリックして、SQL文を保存します。
(オプション)詳細パラメータを構成する
SQL文の実行モードを変更する場合は、右側のナビゲーションウィンドウで [詳細設定] をクリックし、次の表に示すパラメータを構成します。
パラメータ | 説明 |
FLOW_SKIP_SQL_ANALYZE | SQL文の実行方法。 有効な値:
|
DATAWORKS_SESSION_DISABLE | このパラメータは、DataWorksワークスペースの開発環境でのテストに適しています。 有効な値:
|
ステップ 3:タスクスケジューリングプロパティを構成する
システムでノード上のタスクを定期的に実行する場合は、ノードの構成タブで右側のナビゲーションウィンドウの [プロパティ] をクリックして、ビジネス要件に基づいてタスクスケジューリングプロパティを構成できます。 詳細については、「概要」をご参照ください。
タスクをコミットする前に、[プロパティ] タブで [再実行] パラメータと [親ノード] パラメータを構成する必要があります。
ステップ 4:タスクをコミットしてデプロイする
タスクを構成したら、タスクをコミットしてデプロイする必要があります。 タスクをコミットしてデプロイすると、システムはスケジューリング構成に基づいてノード上のタスクを定期的に実行します。
上部ツールバーの
アイコンをクリックして、ノードを保存します。上部ツールバーの
アイコンをクリックして、ノード上のタスクをコミットします。[送信] ダイアログボックスで、[変更の説明] パラメータを構成します。 次に、ビジネス要件に基づいて、タスクのコミット後にタスクコードを確認するかどうかを決定します。
説明タスクをコミットする前に、[プロパティ] タブで [再実行] パラメータと [親ノード] パラメータを構成する必要があります。
コードレビュー機能を使用して、タスクのコード品質を確保し、無効なタスクコードによって発生するタスク実行エラーを防ぐことができます。 コードレビュー機能を有効にすると、コミットされたノードコードは、コードレビューに合格した後でのみデプロイできます。 詳細については、「コードレビュー」をご参照ください。
標準モードのワークスペースを使用する場合は、タスクをコミットした後に本番環境にデプロイする必要があります。 ノード上のタスクをデプロイするには、ノードの構成タブの右上隅にある [デプロイ] をクリックします。 詳細については、「ノードをデプロイする」をご参照ください。
次のステップ
タスクをコミットしてデプロイすると、タスクはスケジューリング構成に基づいて定期的に実行されます。 ノードの構成タブの右上隅にある [オペレーションセンター] をクリックしてオペレーションセンターに移動し、タスクのスケジューリングステータスを表示できます。 詳細については、「自動トリガーされたタスクを表示および管理する」をご参照ください。