すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:Lake Cache

最終更新日:May 09, 2025

AnalyticDB for MySQL は、Lake Cache 機能を提供し、頻繁にアクセスされる Object Storage Service(OSS)オブジェクトをハイパフォーマンス NVMe SSD にキャッシュして、OSS データの読み取り効率を向上させます。この機能は、繰り返しデータを読み取るために大きな帯域幅が必要なシナリオに適しています。たとえば、複数のユーザーがデータ分析のために同じデータのコピーをクエリする必要がある場合などです。このトピックでは、Lake Cache 機能の利点、シナリオ、および使用方法について説明します。

前提条件

AnalyticDB for MySQL Enterprise Edition、Basic Edition、または Data Lakehouse Edition クラスタが作成されていること。

概要

仕組み

次のセクションでは、Lake Cache 機能の仕組みについて説明します。

  1. Lake Cache クライアントが OSS に読み取りリクエストを送信すると、読み取りリクエストは Lake Cache マスターノードに転送され、オブジェクトのメタデータをリクエストします。

  2. Lake Cache マスターノードは、オブジェクトのメタデータを Lake Cache クライアントに返します。

  3. Lake Cache クライアントは、オブジェクトのメタデータを使用して、Lake Cache ワーカーノードに OSS オブジェクトのリクエストを送信します。

    • リクエストされたオブジェクトが Lake Cache ワーカーノードに保存されている場合、ワーカーノードはオブジェクトを Lake Cache クライアントに返します。

    • リクエストされたオブジェクトが Lake Cache ワーカーノードに保存されていない場合、Lake Cache 機能は OSS からオブジェクトを取得します。次に、Lake Cache 機能はオブジェクトを Lake Cache クライアントに返し、オブジェクトをキャッシュスペースに保存します。

利点

  • ミリ秒レベルのレイテンシ

    Lake Cache 機能で使用される NVMe SSD は、ミリ秒単位の読み取りレイテンシを提供できます。

  • スループットの向上

    Lake Cache 機能によって提供される帯域幅は、キャッシュサイズに比例して増加します。最大バーストスループットは数百 Gbit/s に達する可能性があります。

  • 高スループット密度

    Lake Cache 機能は、少量のデータに対して高いスループットを提供し、少量のホットデータに対するバースト読み取り要件を満たすことができます。

  • 柔軟なスケーリング

    Lake Cache 機能を使用すると、ビジネス要件に基づいてキャッシュスペースをスケールアップまたはスケールダウンできるため、リソースの無駄を回避し、コストを削減できます。キャッシュサイズは 10 GB ~ 200,000 GB の範囲で設定できます。

  • ストレージとコンピューティングの分離

    計算ノードのキャッシュスペースと比較して、Lake Cache 機能はストレージリソースとコンピューティングリソースを分離し、AnalyticDB for MySQL コンソールでキャッシュサイズを変更できます。

  • データの整合性

    Lake Cache 機能は、更新された OSS オブジェクトを自動的に識別してキャッシュし、コンピューティングエンジンが更新されたデータを読み取ることを保証できます。

パフォーマンスメトリックとキャッシュポリシー

パラメーター

説明

キャッシュ帯域幅

キャッシュ帯域幅は、次の式を使用して計算されます。5 × キャッシュサイズ(TB)。単位:Gbit/s。

たとえば、Lake Cache 機能のキャッシュサイズを 10 TB に設定した場合、読み取り帯域幅は次の式を使用して計算されます。(5 × 10)Gbit/s = 50 Gbit/s。

キャッシュサイズ

キャッシュサイズは 10 GB ~ 200,000 GB の範囲で設定できます。Lake Cache 機能は、指定したキャッシュサイズに基づいて、キャッシュデータの帯域幅を提供します。キャッシュサイズ 1 TB あたり最大 5 Gbit/s の帯域幅が利用可能です。Lake Cache 機能によって提供される帯域幅は、OSS によって提供される標準帯域幅によって制限されません。OSS

ビジネスでより大きなキャッシュサイズが必要な場合は、チケットを送信してください。

キャッシュエビクションポリシー

使用済みキャッシュスペースが指定したキャッシュサイズを超えると、システムは Least Recently Used(LRU)エビクションポリシーを使用してキャッシュデータを削除します。LRU エビクションポリシーにより、頻繁にアクセスされるデータは保持され、アクセス頻度の低いデータは優先的に削除されます。これにより、キャッシュの使用率が大幅に向上します。

パフォーマンステスト

このテストでは、TPC-H クエリを実行して、AnalyticDB for MySQL の Lake Cache 機能が OSS データアクセス効率を向上させることができるかどうかを確認します。OSS データへの直接アクセスと比較して、Lake Cache 機能はデータアクセス効率を 2.7 倍向上させます。次の表にテスト結果を示します。

タイプ

キャッシュサイズ

データセットサイズ

Spark リソース仕様

実行時間

Lake Cache 機能有効

12 TB

10 TB

2 コア、8 GB(中間)

7,219 秒

OSS データへの直接アクセス

なし

10 TB

2 コア、8 GB(中間)

19,578 秒

課金ルール

Lake Cache 機能を有効にすると、従量課金制に基づいて、使用したキャッシュスペースに対して課金されます。詳細については、「Enterprise Edition および Basic Edition の料金」および「Data Lakehouse Edition の料金」をご参照ください。

使用上の注意

  • Lake Cache 機能は、次のリージョンでのみサポートされています。中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口)、中国 (深圳)、シンガポール、米国 (バージニア)、および インドネシア (ジャカルタ)。

    重要

    他の地域で Lake Cache 機能を使用する場合は、チケットを送信してください。

  • キャッシュハードウェアで障害が発生した場合、データクエリは中断されませんが、速度が低下します。キャッシュされたデータが OSS からプリフェッチされると、クエリ速度は復元されます。

  • Lake Cache 機能で使用されるキャッシュスペースが上限に達すると、Lake Cache 機能はキャッシュスペース内のアクセス頻度の低いオブジェクトをアクセス頻度の高いオブジェクトに置き換えます。キャッシュスペースに保存されているオブジェクトを置き換えたくない場合は、Lake Cache 機能のキャッシュサイズを増やすことができます。

Lake Cache 機能を有効にする

  1. AnalyticDB for MySQL コンソール にログインします。コンソールの左上隅で、リージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。Enterprise Edition、Basic Edition、または Data Lakehouse Edition タブで、管理するクラスタを見つけ、クラスタ ID をクリックします。

  2. クラスター情報 ページの 構成情報 セクションで、[Lake Cache] の横にある [構成] をクリックします。

  3. Lake Cache ダイアログボックスで、[Lake Cache] をオンにして、キャッシュサイズを指定します。

    キャッシュサイズの指定時にエラーが発生した場合は、チケットを送信してください。

  4. [OK] をクリックします。

    説明

    Lake Cache を有効にした後、上記の手順を実行することで、指定したキャッシュサイズを確認できます。

Lake Cache 機能を使用する

Lake Cache 機能を有効にした後、Spark ジョブの spark.adb.lakecache.enabled パラメーターを指定して、OSS データの読み取りを高速化できます。OSS サンプルコード:

Spark SQL 開発

-- これは LakeCache の使用例です。内容を変更して Spark プログラムを実行してください。
SET spark.adb.lakecache.enabled=true;

-- SQL 文をここに記述します
SHOW databases;

Spark JAR 開発

{
  "comments": [
    "-- これは LakeCache の使用例です。内容を変更して Spark プログラムを実行してください。" // 翻訳済み
  ],
  "args": ["oss://testBucketName/data/readme.txt"],
  "name": "spark-oss-test",
  "file": "oss://testBucketName/data/example.py",
  "conf": {
    "spark.adb.lakecache.enabled": "true"
  }
}
説明

XIHE エンジンと一緒に Lake Cache 機能を使用する場合は、チケットを送信してください。

Lake Cache 機能に関する監視情報を表示する

Lake Cache 機能を有効にした後、CloudMonitor コンソールで、送信された Spark アプリケーションが Lake Cache 機能を使用しているかどうかを確認できます。また、キャッシュスペースから読み取られるデータ量など、Lake Cache 機能に関する監視情報を表示することもできます。次の手順を実行します。

  1. CloudMonitor コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[クラウド リソース監視] > [クラウド サービス監視] を選択します。

  3. [AnalyticDB For MySQL] カードにポインターを移動し、[AnalyticDB For MySQL 3.0 - Data Lakehouse Edition] をクリックします。

  4. 監視する AnalyticDB for MySQL クラスタを見つけ、[アクション] 列の [監視チャート] をクリックします。

  5. [LakeCache メトリック] タブをクリックして、Lake Cache メトリックの詳細を表示します。

    次の表に、Lake Cache メトリックを示します。

    メトリック

    説明

    LakeCache キャッシュヒット率(%)

    キャッシュヒット率。式:キャッシュにヒットした読み取りリクエスト数 / 読み取りリクエストの総数。

    LakeCache キャッシュ使用量(B)

    使用済みキャッシュスペース。単位:バイト。

    LakeCache の履歴累積読み取りデータの総量(B)

    キャッシュスペースから読み取られたデータの総量。単位:バイト。