JindoTable を使用して、テーブルとパーティションのアクセス頻度統計を収集し、これらの統計に基づいてコールドデータとホットデータを分離できます。 これにより、ストレージコストを削減し、キャッシュ使用効率を向上させることができます。
前提条件
E-MapReduce(EMR)クラスターが作成されていること。 詳細については、「クラスターの作成」をご参照ください。
背景情報
JindoTable を使用して、Hive テーブルのアクセス頻度統計を収集できます。 収集されたデータは、クラスターの SmartData サービスの名前空間に保存されます。
SmartData 3.2.X 以降では、JindoTable を使用して Spark、Hive、および Presto テーブルのアクセス頻度統計を収集できます。 この機能は、Spark および Presto ではデフォルトで有効になっています。 Spark または Presto でこの機能を無効にする場合は、「アクセス頻度統計の収集を無効にする」で説明されている操作を実行します。 この機能は、Hive ではデフォルトで無効になっています。 Hive でこの機能を有効にする場合は、「Hive のアクセス頻度統計の収集を有効にする」で説明されている操作を実行します。
アクセス頻度統計のクエリ
- 構文
jindo table -accessStat <-d [days]> <-n [topNums]>
days
とtopNums
を正の整数に設定します。 たとえば、days を 1 に設定し、topNums を指定しない場合、当日(00:00 から現在時刻まで)にアクセスされたすべてのテーブルまたはパーティションのアクセス頻度統計がクエリされます。 - 説明
このコマンドは、特定の期間内に最も頻繁にアクセスされた最初の N 個のテーブルまたはパーティション、およびそれぞれのアクセス回数をクエリするために使用されます。
- たとえば、次のコマンドを実行して、過去 7 日間に最も頻繁にアクセスされた最初の 20 個のテーブルまたはパーティション、およびそれぞれのアクセス回数をクエリできます。
jindo table -accessStat -d 7 -n 20
JindoTable の使用方法の詳細については、「JindoTable の使用」をご参照ください。
Hive のアクセス頻度統計の収集を有効にする
- Alibaba Cloud EMR コンソール にログインします。
- 上部のナビゲーションバーで、クラスターが存在するリージョンを選択し、ビジネス要件に基づいてリソースグループを選択します。
- [クラスター管理] タブをクリックします。
- [クラスター管理] ページで、クラスターを見つけて、[アクション] 列の [詳細] をクリックします。
- Hive パラメーターの設定を変更します。
- 左側のナビゲーションペインで、 を選択します。
- Hive サービスページで、[構成] タブをクリックします。
- hive.exec.post.hooks パラメーターを検索し、既存のパラメーター値の末尾に com.aliyun.emr.table.hive.HivePostHook を追加します。 フックはコンマ(,)で区切ります。
- 構成を保存します。
- [サービス構成] セクションの右上隅にある [保存] をクリックします。
- [変更の確認] ダイアログボックスで、[説明] を指定し、[構成の自動更新] をオンにします。
- [OK] をクリックします。
- 関連サービスを再起動します。
- Hive サービスページの右上隅で、 を選択します。
- [クラスターアクティビティ] ダイアログボックスで、[説明] を指定します。
- [OK] をクリックします。
- [確認] メッセージで、[OK] をクリックします。
アクセス頻度統計の収集を無効にする
- Alibaba Cloud EMR コンソール にログインします。
- 上部のナビゲーションバーで、クラスターが存在するリージョンを選択し、ビジネス要件に基づいてリソースグループを選択します。
- [クラスター管理] タブをクリックします。
- [クラスター管理] ページで、クラスターを見つけて、[アクション] 列の [詳細] をクリックします。
- 関連パラメーターの設定を変更します。
- Hive:
- 左側のナビゲーションペインで、 を選択します。
- Hive サービスページで、[構成] タブをクリックします。
- hive.exec.post.hooks パラメーターを検索し、パラメーター値から com.aliyun.emr.table.hive.HivePostHook を削除します。
- Spark:
- 左側のナビゲーションペインで、 を選択します。
- Spark サービスページで、[構成] タブをクリックします。
- spark.sql.queryExecutionListeners パラメーターを検索し、パラメーター値から com.aliyun.emr.table.spark.SparkSQLQueryListener を削除します。
- Presto:
- 左側のナビゲーションペインで、 を選択します。
- Presto サービスページで、[構成] タブをクリックします。
- event-listener.name パラメーターを検索し、パラメーター値を削除します。
- Hive:
- 構成を保存します。
- [サービス構成] セクションの右上隅にある [保存] をクリックします。
- [変更の確認] ダイアログボックスで、[説明] を指定し、[構成の自動更新] をオンにします。
- [OK] をクリックします。
- 関連サービスを再起動します。
- Hive:
- Hive サービスページの右上隅で、 を選択します。
- [クラスターアクティビティ] ダイアログボックスで、[説明] を指定します。
- [OK] をクリックします。
- [確認] メッセージで、[OK] をクリックします。
- Spark:
- Spark サービスページの右上隅で、 を選択します。
- [クラスターアクティビティ] ダイアログボックスで、[説明] を指定します。
- [OK] をクリックします。
- [確認] メッセージで、[OK] をクリックします。
- Presto:
- Presto サービスページの右上隅で、 を選択します。
- [クラスターアクティビティ] ダイアログボックスで、[説明] を指定します。
- [OK] をクリックします。
- [確認] メッセージで、[OK] をクリックします。
- Hive: