Presto(PrestoDB)は、標準 SQL 文を実行してビッグデータのインタラクティブな分析クエリを実行できる、柔軟でスケーラブルな分散 SQL クエリエンジンです。DataWorks は、Presto タスクを開発し、定期的にスケジュールするために使用できる E-MapReduce(EMR)Presto ノードを提供します。このトピックでは、EMR Presto ノードを使用してタスクを開発する手順と、関連する注意事項について説明します。
前提条件
EMR クラスタが作成され、クラスタが DataWorks に登録されていること。詳細については、「EMR クラスタを DataWorks に登録する」をご参照ください。
(RAM ユーザーを使用してタスクを開発する場合に必要)RAM ユーザーが DataWorks ワークスペースにメンバーとして追加され、[開発] ロールまたは [ワークスペース管理者] ロールが割り当てられていること。ワークスペース管理者ロールには、必要以上の権限があります。ワークスペース管理者ロールを割り当てる場合は注意してください。メンバーを追加する方法の詳細については、「ワークスペースメンバーを追加し、ロールを割り当てる」をご参照ください。
説明Alibaba Cloud アカウントを使用する場合は、この操作をスキップできます。
EMR Presto ノードが作成されていること。
制限事項
タスク開発用の EMR Presto ノードは、EMR Hadoop クラスタのみでサポートされています。EMR DataLake クラスタとカスタムクラスタは、EMR Presto ノードをサポートしていません。
このタイプのノードは、サーバーレスリソースグループまたは専用スケジューリングリソースグループでのみ実行できます。サーバーレスリソースグループを使用することをお勧めします。
データリネージ:EMR Presto ノードを使用して開発されたタスクは、データリネージの生成をサポートしていません。
手順
EMR Presto ノードの構成タブで、次の操作を実行します。
SQL コードを開発する
SQL エディターで、ノードコードを開発します。ノードコードで ${変数} 形式で変数を定義し、ノードの構成タブの右側ナビゲーションウィンドウにある [プロパティ] タブの [スケジューリングパラメーター] セクションで、変数に値として割り当てられるスケジューリングパラメーターを構成できます。このようにして、ノードの実行がスケジュールされると、スケジューリングパラメーターの値がノードコードで動的に置き換えられます。スケジューリングパラメーターの使用方法の詳細については、「スケジューリングパラメーターのサポートされている形式」をご参照ください。サンプルコード:
select '${var}'; -- var 変数に特定のスケジューリングパラメーターを割り当てることができます。 select * from userinfo ;
説明ノードの SQL 文のサイズは 130 KB を超えることはできません。
EMR Presto ノードを使用してデータをクエリする場合、最大 10,000 件のデータレコードを返すことができ、返されるデータレコードの合計サイズは 10 MB を超えることはできません。
(オプション)詳細パラメーターを構成する
[プロパティ] タブの [EMR ノードパラメーター] セクションで、特定のパラメーターを構成できます。パラメーターの構成方法の詳細については、「Spark Configuration」を参照してください。次の表に、さまざまなタイプの EMR クラスタに対して構成できる詳細パラメーターを示します。
Hadoop クラスタ:EMR on ECS ページで作成
詳細パラメーター
説明
DATAWORKS_SESSION_DISABLE
SQL 文が実行されるたびに Java Database Connectivity(JDBC)接続を確立するかどうかを指定します。このパラメーターは、DataWorks ワークスペースの開発環境でのテストに使用できます。有効な値:
true
:SQL 文が実行されるたびに JDBC 接続が確立されます。false
(デフォルト):同じノードに対して異なる SQL 文が実行されるときに、同じ JDBC 接続が使用されます。
説明DATAWORKS_SESSION_DISABLE パラメーターが
false
に設定されている場合、Hive のyarn applicationId
の値は表示されません。yarn applicationId
の値を表示する場合は、DATAWORKS_SESSION_DISABLE パラメーターをtrue
に設定できます。FLOW_SKIP_SQL_ANALYZE
SQL 文の実行方法。有効な値:
true
:複数の SQL 文が同時に実行されます。false
(デフォルト):一度に 1 つの SQL 文のみが実行されます。
説明このパラメーターは、DataWorks ワークスペースの開発環境でのテストにのみ使用できます。
priority
優先度。デフォルト値:1。
queue
ジョブがコミットされるスケジューリングキュー。デフォルト値:
default
。EMR YARN の詳細については、「YARN スケジューラ」をご参照ください。SQL 文を実行する
ノードの構成タブの右側ナビゲーションウィンドウにある [デバッグ構成] タブで、[コンピューティングリソース] セクションの [コンピューティングリソース] パラメーターと、DataWorks 構成セクションの [リソースグループ] パラメーターを構成します。
説明タスクの実行に必要なリソースに基づいて、[コンピューティング用 CU] パラメーターを構成することもできます。このパラメーターのデフォルト値は
0.25
です。インターネットまたは VPC 経由でデータソースにアクセスする場合は、データソースに接続されているスケジューリング用リソースグループを使用する必要があります。詳細については、「ネットワーク接続ソリューション」をご参照ください。
ノードの構成タブの上部ツールバーで、[実行] をクリックして SQL 文を実行します。
ノード上のタスクを定期的に実行する場合は、ビジネス要件に基づいてスケジューリング情報を構成します。
ノードを構成した後、ノードをデプロイします。詳細については、「ノード/ワークフローのリリース」をご参照ください。
ノードをデプロイした後、オペレーションセンターでノードのステータスを表示します。詳細については、「オペレーションセンターの概要」をご参照ください。