Presto (PrestoDB とも呼ばれる) は、標準 SQL を使用して大規模なデータセットのインタラクティブな分析をサポートする、柔軟でスケーラブルな分散 SQL クエリエンジンです。DataWorks は、Presto タスクを開発し、定期的にスケジューリングするための EMR Presto ノードを提供します。このトピックでは、これらのタスクを開発するための主なワークフローと重要な考慮事項について説明します。
前提条件
Alibaba Cloud E-MapReduce (EMR) クラスターを作成し、DataWorks に登録済みであること。詳細については、「Data Studio: EMR コンピューティングリソースの関連付け」をご参照ください。
(オプション、RAM ユーザーに必須) タスク開発を担当する Resource Access Management (RAM) ユーザーをワークスペースに追加し、[開発者] または [ワークスペース管理者] ロールを割り当て済みであること。[ワークスペース管理者] ロールには広範な権限があるため、慎重に付与してください。メンバーの追加に関する詳細については、「ワークスペースへのメンバーの追加」をご参照ください。
Alibaba Cloud アカウントを使用している場合は、このステップをスキップできます。
制限事項
サポートされているのは、以前のバージョンのデータレイクハウス (Hadoop) クラスターのみです。新しいデータレイククラスター (DataLake) およびカスタムクラスター (Custom) はサポートされていません。
このタイプのタスクは、Serverless リソースグループ (推奨) または排他的スケジューリングリソースグループでのみ実行できます。
データリネージ:EMR Presto ノードタスクはデータリネージをサポートしていません。
操作手順
EMR Presto ノードの設定ページで、次の手順に従ってタスクを開発します。
SQL コードの開発
SQL エディターで、タスクのコードを記述します。コード内で変数を
${variable_name}フォーマットを使用して定義します。その後、[スケジュール] パネルの [スケジュールパラメーター] セクションで、これらの変数に値を割り当てることができます。これにより、タスクがスケジューリングされる際に、コードにパラメーターを動的に渡すことができます。スケジュールパラメーターの使用方法に関する詳細については、「スケジュールパラメーターのソースと式」をご参照ください。次のコードは一例です。select '${var}'; -- スケジュールパラメーターと併用できます。 select * from userinfo ;説明SQL 文の最大サイズは 130 KB です。
EMR Presto ノードで実行されるクエリは、最大 10,000 行を返すことができ、合計データサイズは 10 MB を超えることはできません。
(オプション) 詳細パラメーターの設定
ページの右側にある [スケジュール] パネルで、 セクションで次のプロパティを設定できます。
説明また、オープンソースの Presto プロパティ を、 パネルの [スケジュール] セクションで設定することもできます。
EMR on ECS
パラメーター
説明
DATAWORKS_SESSION_DISABLE
開発環境でのテスト実行に適用されます。有効な値:
true:SQL 文が実行されるたびに、新しい JDBC 接続が作成されます。false(デフォルト):同じノード内の複数の SQL 文に対して、同じ JDBC 接続が再利用されます。
説明このパラメーターを
falseに設定すると、Hive のyarn applicationIdは出力されません。yarn applicationIdを出力するには、このパラメーターをtrueに設定してください。FLOW_SKIP_SQL_ANALYZE
SQL 文の実行モード。有効な値:
true:複数の SQL 文が一度に実行されます。false(デフォルト):一度に 1 つの SQL 文が実行されます。
説明このパラメーターは、開発環境でのテスト実行でのみサポートされます。
priority
ジョブの優先度。デフォルト値は 1 です。
queue
ジョブがサブミットされる YARN キュー。デフォルトのキューは
defaultです。EMR YARN の詳細については、「基本的なキュー設定」をご参照ください。SQL タスクの実行
Run Configuration パネルで、[コンピューティングリソース] セクションに移動し、[コンピューティングリソース] と [DataWorks リソースグループ] を設定します。
説明タスクに必要なリソースに基づいて [スケジューリング CU] を設定することもできます。デフォルト値は
0.25です。パブリックネットワークまたは VPC ネットワーク経由でデータソースにアクセスするには、データソースとの接続テストに合格したスケジューリングリソースグループを使用する必要があります。詳細については、「ネットワーク接続ソリューション」をご参照ください。
ツールバーで、パラメーターダイアログボックスでデータソースを選択し、[実行] をクリックします。
ノードタスクを定期的に実行する必要がある場合は、ビジネス要件に基づいてそのスケジュールプロパティを設定します。設定の詳細については、「ノードのスケジューリング設定」をご参照ください。
ノードタスクを設定した後、デプロイする必要があります。詳細については、「ノードとワークフローのデプロイ」をご参照ください。
タスクがデプロイされた後、オペレーションセンターでそのステータスを表示できます。詳細については、「オペレーションセンター入門」をご参照ください。
よくある質問
Q: 「クエリの実行エラー」というメッセージが表示された場合はどうすればよいですか。

A: クラスタータイプが以前のバージョンのデータレイクハウス (Hadoop) クラスターであることを確認してください。
Q: ノードの実行時に接続タイムアウトエラーが発生した場合はどうすればよいですか。
A: リソースグループとクラスター間のネットワーク接続性を確認してください。コンピューティングリソースページに移動し、リソースを見つけて [リソースの初期化] をクリックします。表示されるダイアログボックスで、[再初期化] をクリックし、初期化が成功したことを確認します。

