JindoTable のテーブルまたはパーティションのコールドアクセスコレクション機能は、各テーブルまたはパーティションの最終アクセス時刻を記録します。これにより、最近アクセスされていないデータを特定し、データストレージ戦略を最適化し、コストを削減できます。たとえば、データ分析では、使用頻度の低いパーティションデータを低コストの記憶媒体に移動して費用を節約できます。
前提条件
バージョン 3.35.0 以降、またはバージョン 4.9.0 以降の EMR クラスターを作成します。詳細については、「クラスターの作成」をご参照ください。
背景情報
SmartData 3.5.x 以降のバージョンでは、Hive、Spark、および Presto コンポーネントのコールドアクセスコレクションがサポートされています。この機能はデフォルトで無効になっています。有効にするには、「Spark のコールドアクセスコレクションの有効化」、「Hive のコールドアクセスコレクションの有効化」、および「Presto のコールドアクセスコレクションの有効化」をご参照ください。
説明 コールドアクセスコレクションはホットアクセスコレクションと同じフックまたはリスナーを使用するため、コールドアクセスコレクションを有効にすると、ホットアクセスコレクションも有効になります。テーブルまたはパーティションのホットアクセスコレクションの詳細については、「JindoTable のテーブルまたはパーティションのホットアクセスコレクション」をご参照ください。
制限事項
- DLF データレイクメタデータはサポートされていません。
- Hive CLI、HiveServer2、Spark SQL CLI、Spark Thriftserver、および Presto サービスの IP アドレスには、基盤となるメタデータストレージ (MySQL または RDS) にアクセスするための権限が必要です。
- コールドアクセスコレクションは、Hive、Spark、および Presto コンポーネントでのみサポートされています。
データのクエリ
JindoTable は、コールドアクセス情報をクエリするためのコマンドラインメソッドを提供します。
- 構文
jindo table -leastUseStat -n <num> [-i/-ignoreNever]num は表示するエントリ数で、正の整数である必要があります。-i/-ignoreNever はオプションです。指定した場合、一度もアクセスされていないテーブルまたはパーティションは結果から除外されます。
- 機能
最も長期間アクセスされていないテーブルまたはパーティションを表示します。
- 例:最近アクセスされていないテーブルまたはパーティションを 20 件クエリします。
jindo table -leastUseStat -n 20次の図に示すように、3 つの列が返されます。
- 最初の列は、`database_name.table_name` のフォーマットでテーブル名を示します。
- 2 番目の列は、`partition_key_column1=value1/partition_key_column2=value2/...` のフォーマットでパーティション名を示します。このフィールドは、非パーティション化テーブルの場合は空です。
- 3 番目の列は、`yyyy-MM-dd HH:mm:ss` のフォーマットで最終アクセス時刻を示します。
説明 パーティションテーブルの場合、パーティションのみが表示されます。テーブル自体は別途リストされません。
JindoTable の使用方法の詳細については、「JindoTable の使用方法」をご参照ください。
Spark のコールドアクセスコレクションの有効化
- Spark ページに移動します。
- Alibaba Cloud E-MapReduce コンソールにログインします。
- 上部のメニューバーで、必要に応じてリージョンとリソースグループを選択します。
- Clusters タブをクリックします。
- Clusters ページで、対象クラスターの行にある Details をクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。
- Alibaba Cloud E-MapReduce コンソールにログインします。
- Spark サービスページで、Configure タブをクリックします。
- パラメーター spark.sql.queryExecutionListeners を検索します。その値に com.aliyun.emr.table.spark.SparkSQLQueryListener が含まれていることを確認します。複数のリスナーはカンマ (,) で区切ります。

- カスタム設定を追加します。
- Service Configuration ページで、[spark-defaults] タブをクリックします。
- 右上の Custom Configuration をクリックします。
- Add Configuration Item ダイアログボックスで、[キー] を spark.sql.query.update.access.time.enabled に、[値] を true に設定します。

- OK をクリックします。
- 設定を保存します。
- Save をクリックします。
- 変更する ダイアログボックスで、Execution Reason を入力し、OK をクリックします。
- すべてのコンポーネントを再起動します。
- 右上で、 を選択します。
- [クラスター操作の実行] ダイアログボックスで、Execution Reason を入力し、OK をクリックします。
- Confirm ダイアログボックスで、OK をクリックします。
Hive のコールドアクセスコレクションの有効化
- Hive ページに移動します。
- Alibaba Cloud E-MapReduce コンソールにログインします。
- 上部のメニューバーで、必要に応じてリージョンとリソースグループを選択します。
- Clusters タブをクリックします。
- Clusters ページで、対象クラスターの行にある Details をクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。
- Alibaba Cloud E-MapReduce コンソールにログインします。
- Hive サービスページで、Configure タブをクリックします。
- パラメーター hive.exec.post.hooks を検索します。その値に com.aliyun.emr.table.hive.HivePostHook が含まれていることを確認します。複数のフックはカンマ (,) で区切ります。

- カスタム設定を追加します。
- Service Configuration ページで、[hive-site] タブをクリックします。
- 右上の Custom Configuration をクリックします。
- Add Configuration Item ダイアログボックスで、[キー] を hive.hook.update.access.time.enabled に、[値] を true に設定します。

- OK をクリックします。
- 設定を保存します。
- Save をクリックします。
- 変更する ダイアログボックスで、Execution Reason を入力し、OK をクリックします。
- すべてのコンポーネントを再起動します。
- 右上で、 を選択します。
- [クラスター操作の実行] ダイアログボックスで、Execution Reason を入力し、OK をクリックします。
- Confirm ダイアログボックスで、OK をクリックします。
Presto のコールドアクセスコレクションの有効化
- Presto ページに移動します。
- Alibaba Cloud E-MapReduce コンソールにログインします。
- 上部のメニューバーで、必要に応じてリージョンとリソースグループを選択します。
- Clusters タブをクリックします。
- Clusters ページで、対象クラスターの行にある Details をクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。
- Alibaba Cloud E-MapReduce コンソールにログインします。
- Presto サービスページで、Configure タブをクリックします。
- パラメーター event-listener.name を検索します。その値に jindo-presto-post-event-listener が含まれていることを確認します。

- カスタム設定を追加します。
- Service Configuration ページで、[event-listener.properties] タブをクリックします。
- 右上の Custom Configuration をクリックします。
- Add Configuration Item ダイアログボックスで、[キー] を listener.update.access.time.enabled に、[値] を true に設定します。

- OK をクリックします。
- 設定を保存します。
- Save をクリックします。
- 変更する ダイアログボックスで、Execution Reason を入力し、OK をクリックします。
- すべてのコンポーネントを再起動します。
- 右上で、 を選択します。
- [クラスター操作の実行] ダイアログボックスで、Execution Reason を入力し、OK をクリックします。
- Confirm ダイアログボックスで、OK をクリックします。