Trinoは、さまざまなデータソースのインタラクティブな分析クエリを実行するように設計された、オープンソースの分散SQLクエリエンジンです。 E-MapReduce (EMR) Trinoノードを作成して、大量の多次元データを集計したり、レポートを分析したりできます。 詳細については、「Trinoの概要」をご参照ください。
前提条件
EMRクラスターが作成され、クラスターがDataWorksに登録されています。
EMRノードを作成し、EMRノードを使用してDataWorksでEMRタスクを開発する前に、EMRクラスターをDataWorksワークスペースに登録する必要があります。 詳細については、「EMRクラスターをDataWorksに登録する」をご参照ください。
(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つ選択する必要があります。 ワークスペースにEMRクラスターが1つだけ登録されている場合は、その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:タスクをコミットしてデプロイする
タスクを構成したら、タスクをコミットしてデプロイする必要があります。 タスクをコミットしてデプロイすると、システムはスケジューリング構成に基づいてノードのタスクを定期的に実行します。
上部のツールバーの
アイコンをクリックして、ノードを保存します。
上部のツールバーの
アイコンをクリックして、ノードのタスクをコミットします。
[送信] ダイアログボックスで、[変更の説明] パラメーターを構成します。 次に、ビジネス要件に基づいて、タスクのコミット後にタスクコードを確認するかどうかを決定します。
説明タスクをコミットする前に、[プロパティ] タブで [再実行] パラメーターと [親ノード] パラメーターを構成する必要があります。
コードレビュー機能を使用して、タスクのコード品質を確保し、無効なタスクコードによって発生するタスク実行エラーを防ぐことができます。 コードレビュー機能を有効にすると、コミットされたノードコードは、コードレビューに合格した後でのみデプロイできます。 詳細については、「コードレビュー」をご参照ください。
標準モードのワークスペースを使用する場合は、タスクをコミットした後に本番環境にデプロイする必要があります。 ノードのタスクをデプロイするには、ノードの構成タブの右上隅にある [デプロイ] をクリックします。 詳細については、「ノードをデプロイする」をご参照ください。
次のステップ
タスクをコミットしてデプロイすると、スケジューリング構成に基づいてタスクが定期的に実行されます。 ノードの構成タブの右上隅にある [オペレーションセンター] をクリックしてオペレーションセンターに移動し、タスクのスケジューリングステータスを表示できます。 詳細については、「自動トリガーされたタスクを表示および管理する」をご参照ください。