JindoTable のテーブルまたはパーティションのアクセス頻度を収集することで、コールドデータとホットデータを区別し、ストレージコストを削減し、キャッシュ効率を向上させることができます。
前提条件
Alibaba Cloud E-MapReduce (EMR) クラスターが必要です。詳細については、「クラスターの作成」をご参照ください。
背景
JindoTable は、Hive テーブルのアクセスレコードの収集をサポートしています。収集されたデータは、SmartData サービスの名前空間に保存されます。
SmartData 3.2.x 以降では、Spark、Hive、Presto エンジンのアクセス頻度収集をサポートしています。この機能は、Spark と Presto ではデフォルトで有効になっています。無効にするには、「アクセス頻度収集の無効化」をご参照ください。この機能は、Hive ではデフォルトで無効になっています。有効にするには、「Hive のアクセス頻度収集の有効化」をご参照ください。
データのクエリ
JindoTable コマンドを使用して、アクセス頻度をクエリできます。
-
構文:
jindo table -accessStat <-d [days]> <-n [topNums]>daysとtopNumsの値は正の整数である必要があります。daysを 1 に設定すると、コマンドは当日 (ローカルタイム) の 00:00 から現在時刻までのすべてのアクセスレコードをクエリします。 -
機能:
指定した期間内にアクセス頻度が最も高い上位 N 件のテーブルまたはパーティションをクエリします。
-
例:過去 7 日間でアクセス頻度が最も高い 20 件のテーブルまたはパーティションをクエリします。
jindo table -accessStat -d 7 -n 20
JindoTable の詳細については、「JindoTable ユーザーガイド」をご参照ください。
Hive のアクセス頻度収集の有効化
-
Alibaba Cloud E-MapReduce コンソールにログインします。
-
上部メニューバーで、リージョンとリソースグループを選択します。
-
Clusters タブをクリックします。
-
Clusters ページで、対象のクラスターを見つけ、[Actions] 列の Details をクリックします。
-
Hive サービスの設定を変更します。
-
左側のナビゲーションペインで、 を選択します。
-
Hive サービスページで、Configure タブをクリックします。
-
hive.exec.post.hooksパラメーターを検索し、その値に com.aliyun.emr.table.hive.HivePostHook を追加します。
-
-
設定を保存します。
-
右上隅の Save をクリックします。
-
変更する ダイアログボックスで、Execution Reason を入力し、[設定の自動適用] を有効にします。
-
OK をクリックします。
-
-
サービスを再起動します。
-
Hive サービスページで、右上隅にある を選択します。
-
[クラスター操作の実行] ダイアログボックスで、Execution Reason を入力します。
-
OK をクリックします。
-
Confirm ダイアログボックスで、OK をクリックします。
-
アクセス頻度収集の無効化
-
Alibaba Cloud E-MapReduce コンソールにログインします。
-
上部メニューバーで、リージョンとリソースグループを選択します。
-
Clusters タブをクリックします。
-
Clusters ページで、対象のクラスターを見つけ、[Actions] 列の Details をクリックします。
-
パラメーターの値を変更します。
-
Hive サービス:
-
左側のナビゲーションペインで、 を選択します。
-
Hive サービスページで、Configure タブをクリックします。
-
hive.exec.post.hooksパラメーターを検索し、その値から com.aliyun.emr.table.hive.HivePostHook を削除します。このパラメーターを見つけるには、[Configuration Search] ボックスにhive.exec.post.hooksと入力します。パラメーターは [hive-site] セクションにあります。
-
-
Spark サービス:
-
左側のナビゲーションペインで、 を選択します。
-
Spark サービスページで、Configure タブをクリックします。
-
spark.sql.queryExecutionListenersパラメーターを検索し、その値から com.aliyun.emr.table.spark.SparkSQLQueryListener を削除します。このパラメーターを見つけるには、[Configuration Search] ボックスにspark.sql.queryExecutionListenersと入力します。パラメーターは [spark-defaults] セクションにあり、現在の値はcom.aliyun.emr.table.spark.SparkSQLQueryListenerです。
-
-
Presto サービス:
-
左側のナビゲーションペインで、 を選択します。
-
Presto サービスページで、Configure タブをクリックします。
-
event-listener.nameパラメーターを検索し、その値をクリアします。
-
-
-
設定を保存します。
-
右上隅の Save をクリックします。
-
変更する ダイアログボックスで、Execution Reason を入力し、[設定の自動適用] を有効にします。
-
OK をクリックします。
-
-
サービスを再起動します。
-
Hive サービス:
-
Hive サービスページで、右上隅にある を選択します。
-
[クラスター操作の実行] ダイアログボックスで、Execution Reason を入力します。
-
OK をクリックします。
-
Confirm ダイアログボックスで、OK をクリックします。
-
-
Spark サービス:
-
Spark サービスページで、右上隅にある を選択します。
-
[クラスター操作の実行] ダイアログボックスで、Execution Reason を入力します。
-
OK をクリックします。
-
Confirm ダイアログボックスで、OK をクリックします。
-
-
Presto サービス:
-
Presto サービスページで、右上隅にある を選択します。
-
[クラスター操作の実行] ダイアログボックスで、Execution Reason を入力します。
-
OK をクリックします。
-
Confirm ダイアログボックスで、OK をクリックします。
-
-