Impala は、ペタバイト規模のデータに対して高速でリアルタイムのインタラクティブ SQL クエリを実行できるエンジンです。このトピックでは、E-MapReduce(EMR)Impala ノードを作成してデータ開発を行う方法について説明します。
前提条件
EMR Impala ノードが作成されていること。
制限事項
このタイプのノードは、サーバーレス リソースグループまたは専用スケジューリングリソースグループでのみ実行できます。サーバーレス リソースグループを使用することをお勧めします。
DataWorks では、EMR Hadoop クラスタを DataWorks ワークスペースに関連付けることはできなくなりました。ただし、DataWorks ワークスペースに関連付けられている EMR Hadoop クラスタは引き続き使用できます。
手順
EMR Impala ノードの構成タブで、次の操作を実行します。
SQL コードを開発する
SQL エディターで、ノードコードを開発します。ノードコードでは、${変数} 形式で変数を定義し、ノードの構成タブの右側ナビゲーションウィンドウにある [プロパティ] タブの [スケジューリング パラメーター] セクションで、変数に値として割り当てられるスケジューリング パラメーターを構成できます。このようにして、ノードの実行がスケジュールされると、スケジューリング パラメーターの値がノードコードで動的に置き換えられます。サンプルコード:
SHOW TABLES ; CREATE TABLE IF NOT EXISTS userinfo ( ip STRING COMMENT'IP アドレス', uid STRING COMMENT'ユーザー ID' )PARTITIONED BY( dt STRING ); ALTER TABLE userinfo ADD IF NOT EXISTS PARTITION(dt='${bizdate}'); -- bizdate 変数に特定のスケジューリング パラメーターを割り当てることができます。 SELECT * FROM userinfo ;
説明ノードの SQL 文のサイズは 130 KB を超えることはできません。
(オプション)詳細パラメーターを構成する
[プロパティ] タブの [EMR ノード パラメーター] セクションで、特定のパラメーターを構成できます。パラメーターの構成方法の詳細については、「Spark の構成」を参照してください。次の表に、さまざまなタイプの EMR クラスタに対して構成できる詳細パラメーターを示します。
DataLake クラスタまたはカスタム クラスタ:EMR on ECS ページで作成
詳細パラメーター
説明
FLOW_SKIP_SQL_ANALYZE
SQL 文の実行方法。有効な値:
true
:複数の SQL 文が同時に実行されます。false
(デフォルト):一度に 1 つの SQL 文のみが実行されます。
説明このパラメーターは、DataWorks ワークスペースの開発環境でのテストにのみ使用できます。
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
に設定できます。priority
優先度。デフォルト値:1。
queue
ジョブがコミットされるスケジューリング キュー。デフォルト値:default。EMR YARN の詳細については、「YARN スケジューラ」をご参照ください。
Hadoop クラスタ:EMR on ECS ページで作成
詳細パラメーター
説明
FLOW_SKIP_SQL_ANALYZE
SQL 文の実行方法。有効な値:
true
:複数の SQL 文が同時に実行されます。false
(デフォルト):一度に 1 つの SQL 文のみが実行されます。
説明このパラメーターは、DataWorks ワークスペースの開発環境でのテストにのみ使用できます。
USE_GATEWAY
現在のノードでジョブをコミットするためにゲートウェイクラスタを使用するかどうかを指定します。有効な値:
true
:ゲートウェイクラスタを使用してジョブをコミットします。false
(デフォルト):ゲートウェイクラスタを使用せずにジョブをコミットします。ジョブはマスターノードに自動的にコミットされます。
説明ノードが属する EMR クラスタがゲートウェイクラスタに関連付けられていないが、USE_GATEWAY パラメーターが
true
に設定されている場合、ジョブのコミットに失敗する可能性があります。SQL 文を実行する
ノードの構成タブの右側ナビゲーションウィンドウにある [デバッグ構成] タブで、[コンピューティング リソース] セクションの [コンピューティング リソース] パラメーターと、「DataWorks の構成」セクションの [リソースグループ] パラメーターを構成します。
説明タスクの実行に必要なリソースに基づいて、[コンピューティング用 CU] パラメーターを構成することもできます。このパラメーターのデフォルト値は
0.25
です。インターネットまたは VPC(Virtual Private Cloud)経由でデータソースにアクセスする場合は、データソースに接続されているスケジューリング用リソースグループを使用する必要があります。詳細については、「ネットワーク接続ソリューション」をご参照ください。
ノードの構成タブの上部ツールバーにある [実行] をクリックして、SQL 文を実行します。
説明EMR Impala ノードを使用してデータをクエリする場合、最大 10,000 件のデータレコードが返され、返されるデータレコードの合計サイズは 10 MB を超えることはできません。
[保存] をクリックして、ノードを保存します。
ノードでタスクを定期的に実行する場合は、ビジネス要件に基づいてスケジューリング情報を構成します。
ノードを構成した後、ノードをデプロイします。詳細については、「ノード/ワークフローのリリース」をご参照ください。
ノードをデプロイした後、オペレーションセンターでノードのステータスを表示します。詳細については、「オペレーションセンターの概要」をご参照ください。