E-MapReduce (EMR) Trino ノードを使用して、大規模かつ多次元的なデータ集約やレポート分析を実行します。
前提条件
Alibaba Cloud E-MapReduce (EMR) クラスターを作成済みで、DataWorks に登録済みである必要があります。詳細については、「Data Studio: EMR コンピューティングリソースの関連付け」をご参照ください。
(オプション、RAM ユーザーには必須) タスク開発を担当する Resource Access Management (RAM) ユーザーをワークスペースに追加し、[デベロッパー] または [ワークスペース管理者] のロールを割り当てます。ワークスペース管理者ロールには広範な権限があるため、注意して付与してください。メンバーの追加について詳しくは、「ワークスペースへのメンバー追加」をご参照ください。
Alibaba Cloud アカウントをご利用の場合は、この手順をスキップできます。
制限事項
このタイプのノードは、Serverless リソースグループでのみ実行できます。
DataLake またはカスタムクラスターのメタデータを DataWorks で管理するには、クラスター上で EMR-HOOK を構成する必要があります。詳細については、「Hive の EMR-HOOK の構成」をご参照ください。
説明クラスター上に EMR-HOOK が構成されていない場合、DataWorks ではリアルタイムでのメタデータ表示、監査ログの生成、データリネージの表示、および EMR 関連のデータガバナンスタスクを実行できません。
Trino で LDAP 認証が有効になっている場合、EMR クラスターの Master ノードにログインし、
/etc/taihao-apps/trino-confディレクトリからキーストアファイルをダウンロードします。DataWorks コンソール にログインします。上部のナビゲーションバーで対象のリージョンに切り替え、ご利用のワークスペースを見つけ、操作 列の 管理 をクリックして 管理センター に移動します。左側のナビゲーションウィンドウで、コンピューティングリソース の下にあるご利用の EMR クラスターの アカウントマッピング を見つけます。右側の アカウントマッピングの編集 をクリックします。表示されたページで、キーストアファイルのアップロード をクリックしてファイルをアップロードします。
操作手順
EMR Trino ノードの編集ページで、以下の手順に従ってタスクを開発します。
コネクタの構成
MySQL のテーブルをクエリするには、組み込みの EMR Trino コネクタを構成します。詳細については、「MySQL コネクタ」をご参照ください。
Hive のテーブルをクエリするには、組み込みの EMR Trino コネクタを構成します。詳細については、「Hive コネクタ」をご参照ください。
その他のデータソースのテーブルをクエリするには、「コネクタの構成」を参照し、組み込みコネクタの構成方法をご確認ください。
SQL コードの編集
SQL エディターにタスクコードを記述します。コード内で
${variable_name}形式を使用して変数を定義し、ノード編集ページの右側にある スケジュール の下の スケジューリング引数 セクションで値を割り当てることができます。これにより、スケジュールされたタスクに動的にパラメーターを渡すことができます。スケジューリングパラメーターの使用方法の詳細については、「スケジューリングパラメーターのソースと式」をご参照ください。以下のコードはその例です。-- 使用方法 -- SELECT * FROM <catalog>.<schema>.<table>; -- 説明 -- <catalog>: 接続先のデータソース名。 -- <schema>: 使用するデータベース名。 -- <table>: クエリ対象のテーブル。 -- 例:Hive データソースの default データベース内の 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 文に対して新しい JDBC 接続を作成します。false(デフォルト):ノード内でユーザーが実行するすべての SQL 文に対して同じ JDBC 接続を再利用します。
SQL タスクの実行
コンピューティングリソース の下の Run Configuration で、コンピューティングリソース と DataWorks リソースグループ を選択・構成します。
説明タスクに必要なリソースに応じて、スケジューリング CU を構成します。デフォルト値は
0.25です。パブリックネットワークまたは VPC 内のデータソースにアクセスするには、データソースに正常に接続できるスケジューリングリソースグループを使用する必要があります。詳細については、「ネットワーク接続性ソリューション」をご参照ください。
ツールバーのパラメーターダイアログボックスで、作成済みのデータソースを選択し、実行 をクリックして SQL タスクを実行します。
説明EMR Trino ノードで実行されるクエリは、最大 10,000 行を返すことができ、合計サイズが 10 MB を超えてはなりません。
ノードタスクをスケジュールに基づいて実行するには、ビジネス要件に応じてスケジューリング設定を構成します。詳細については、「ノードスケジューリングの構成」をご参照ください。
ノードタスクの構成が完了したら、デプロイします。詳細については、「ノードおよびワークフローのデプロイ」をご参照ください。
タスクのデプロイ後、Operation Center で定期タスクのステータスを確認できます。詳細については、「オペレーションセンター入門」をご参照ください。
よくある質問
Q: ノードを実行すると接続タイムアウトエラーが発生するのはなぜですか?

A: リソースグループ と クラスター 間のネットワーク接続性を確認してください。コンピューティングリソースページに移動し、該当リソースを見つけて リソースの初期化 をクリックします。表示されたダイアログボックスで、再初期化 をクリックし、初期化が成功していることを確認します。

