JindoTable のテーブルまたはパーティションのコールドアクセスコレクション機能は、各テーブルまたはパーティションの最終アクセス時刻を記録します。これにより、最近アクセスされていないデータを特定し、データストレージ戦略を最適化して、コストを削減できます。例えば、データ分析において、使用頻度の低いパーティションデータを低コストの記憶媒体に移動することで、費用を節約できます。
前提条件
バージョン 3.35.0 以降、またはバージョン 4.9.0 以降の E-MapReduce (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 つの列が含まれます。tdb.t1 pid=20/qid=ten 2021-03-26 13:53:52 tdb.t2 2021-03-26 13:53:58- 最初の列は、`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 コンソールにログインします。
- 上部のメニューバーで、必要に応じてリージョンとリソースグループを選択します。
- [クラスター] タブをクリックします。
- [クラスター] ページで、対象クラスターの行にある [詳細] をクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。
- Alibaba Cloud E-MapReduce コンソールにログインします。
- Spark サービスページで、[設定] タブをクリックします。
- パラメーター spark.sql.queryExecutionListeners を検索します。その値に com.aliyun.emr.table.spark.SparkSQLQueryListener が含まれていることを確認します。複数のリスナーはカンマ (,) で区切ります。
- カスタム設定を追加します。
- [サービス設定] ページで、spark-defaults タブをクリックします。
- 右上隅にある [カスタム設定] をクリックします。
- [設定項目の追加] ダイアログボックスで、[キー] を spark.sql.query.update.access.time.enabled に、[値] を true に設定します。
- [OK] をクリックします。
- 設定を保存します。
- [保存] をクリックします。
- [確認] ダイアログボックスで、[実行理由] を入力し、[OK] をクリックします。
- すべてのコンポーネントを再起動します。
- 右上隅で、 を選択します。
- [クラスター操作の実行] ダイアログボックスで、[実行理由] を入力し、[OK] をクリックします。
- [確認] ダイアログボックスで、[OK] をクリックします。
Hive のコールドアクセスコレクションの有効化
- Hive ページに移動します。
- Alibaba Cloud E-MapReduce コンソールにログインします。
- 上部のメニューバーで、必要に応じてリージョンとリソースグループを選択します。
- Clusters タブをクリックします。
- [クラスター] ページで、対象クラスターの行にある [詳細] をクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。
- Alibaba Cloud E-MapReduce コンソールにログインします。
- Hive サービスページで、[設定] タブをクリックします。
- パラメーター hive.exec.post.hooks を検索します。その値に com.aliyun.emr.table.hive.HivePostHook が含まれていることを確認します。複数のフックはカンマ (,) で区切ります。
- カスタム設定を追加します。
- [サービス設定] ページで、hive-site タブをクリックします。
- 右上隅にある [カスタム設定] をクリックします。
- [設定項目の追加] ダイアログボックスで、[キー] を hive.hook.update.access.time.enabled に、[値] を true に設定します。
- [OK] をクリックします。
- 設定を保存します。
- [保存] をクリックします。
- [確認] ダイアログボックスで、[実行理由] を入力し、[OK] をクリックします。
- すべてのコンポーネントを再起動します。
- 右上隅で、 を選択します。
- [クラスター操作の実行] ダイアログボックスで、[実行理由] を入力し、[OK] をクリックします。
- [確認] ダイアログボックスで、[OK] をクリックします。
Presto のコールドアクセスコレクションの有効化
- Presto ページに移動します。
- Alibaba Cloud E-MapReduce コンソールにログインします。
- 上部のメニューバーで、必要に応じてリージョンとリソースグループを選択します。
- [クラスター] タブをクリックします。
- [クラスター] ページで、対象クラスターの行にある [詳細] をクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。
- Alibaba Cloud E-MapReduce コンソールにログインします。
- Presto サービスページで、[設定] タブをクリックします。
- パラメーター event-listener.name を検索します。その値に jindo-presto-post-event-listener が含まれていることを確認します。
- カスタム設定を追加します。
- [サービス設定] ページで、event-listener.properties タブをクリックします。
- 右上隅にある [カスタム設定] をクリックします。
- [設定項目の追加] ダイアログボックスで、[キー] を listener.update.access.time.enabled に、[値] を true に設定します。
- [OK] をクリックします。
- 設定を保存します。
- [保存] をクリックします。
- [確認] ダイアログボックスで、[実行理由] を入力し、[OK] をクリックします。
- すべてのコンポーネントを再起動します。
- 右上隅で、 を選択します。
- [クラスター操作の実行] ダイアログボックスで、[実行理由] を入力し、[OK] をクリックします。
- [確認] ダイアログボックスで、[OK] をクリックします。