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のアクセス頻度収集の有効化
-
EMR コンソールにログインします。
-
上部メニューで、リージョン とリソースグループを選択します。
-
Clusters タブをクリックします。
-
Clusters ページで、対象のクラスターを見つけ、[Actions] 列の Details をクリックします。
-
Hive サービスの構成を変更します。
-
左側のナビゲーションペインで、 を選択します。
-
Hive サービスページで、Configure タブをクリックします。
-
hive.exec.post.hooks パラメーターを検索し、その値に com.aliyun.emr.table.hive.HivePostHook を追加します。
-
-
設定を保存します。
-
右上隅にある Save をクリックします。
-
変更する ダイアログボックスで、Execution Reason を入力し、[auto-update configuration] を有効にします。
-
OK をクリックします。
-
-
サービスを再起動します。
-
Hive サービスページで、右上隅にある を選択します。
-
[Execute Cluster Operation] ダイアログボックスで、Execution Reason を入力します。
-
OK をクリックします。
-
Confirm ダイアログボックスで、OK をクリックします。
-
アクセス頻度収集の無効化
-
EMR コンソールにログインします。
-
上部メニューで、リージョン とリソースグループを選択します。
-
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 を入力し、[auto-update configuration] を有効にします。
-
OK をクリックします。
-
-
サービスを再起動します。
-
Hive サービス:
-
Hive サービスページで、右上隅にある を選択します。
-
[Execute Cluster Operation] ダイアログボックスで、Execution Reason を入力します。
-
OK をクリックします。
-
Confirm ダイアログボックスで、OK をクリックします。
-
-
Spark サービス:
-
Spark サービスページで、右上隅にある を選択します。
-
[Execute Cluster Operation] ダイアログボックスで、Execution Reason を入力します。
-
OK をクリックします。
-
Confirm ダイアログボックスで、OK をクリックします。
-
-
Presto サービス:
-
Presto サービスページで、右上隅にある を選択します。
-
[Execute Cluster Operation] ダイアログボックスで、Execution Reason を入力します。
-
OK をクリックします。
-
Confirm ダイアログボックスで、OK をクリックします。
-
-