AnalyticDB for MySQLは、頻繁にアクセスされるObject Storage Service (OSS) オブジェクトを高性能NVMe SSD上にキャッシュして、OSSデータの読み取り効率を向上させるレイクキャッシュ機能を提供します。 この機能は、繰り返されるデータ読み取りを処理するために大きな帯域幅が必要とされるシナリオに適しています。 例えば、複数のユーザは、データ分析のためにデータの同じコピーを照会する必要がある。 このトピックでは、lakeキャッシュ機能の利点、シナリオ、および使用方法について説明します。
前提条件
AnalyticDB for MySQLData Lakehouse Editionクラスターが作成されます。
概要
仕組み
次のセクションでは、lakeキャッシュ機能の動作について説明します。
レイクキャッシュクライアントがOSSに読み取り要求を送信すると、読み取り要求はレイクキャッシュマスターノードに転送され、オブジェクトメタデータが要求されます。
レイクキャッシュマスターノードは、オブジェクトメタデータをレイクキャッシュクライアントに返します。
lakeキャッシュクライアントは、オブジェクトメタデータを使用して、OSSオブジェクトの要求をlakeキャッシュワーカーノードに送信します。
要求されたオブジェクトがレイクキャッシュワーカーノードに格納されている場合、ワーカーノードはオブジェクトをレイクキャッシュクライアントに返します。
要求されたオブジェクトがlakeキャッシュワーカーノードに格納されていない場合、lakeキャッシュ機能はOSSからオブジェクトを取得します。 次に、レイクキャッシュ機能は、オブジェクトをレイクキャッシュクライアントに返し、オブジェクトをキャッシュスペースに格納します。
メリット
ミリ秒レベルの遅延
レイクキャッシュ機能で使用されるNVMe SSDは、ミリ秒以内の読み取りレイテンシを提供できます。
スループットの向上
レイクキャッシュ機能によって提供される帯域幅は、キャッシュサイズとともに線形に増加します。 最大バーストスループットは、数百Gbit/sであり得る。
高いスループット密度
レイクキャッシュ機能は、少量のホットデータに対するバースト読み出し要件を満たすために、少量のデータに対して高いスループットを提供することができる。
柔軟なスケーリング
レイクキャッシュ機能を使用すると、ビジネス要件に基づいてキャッシュスペースをスケールアップまたはスケールダウンして、リソースの無駄を防ぎ、コストを削減できます。 キャッシュサイズは、10 GB〜10テラバイトの範囲にすることができます。
分離されたストレージとコンピューティング
計算ノードのキャッシュスペースと比較して、レーキキャッシュ機能はストレージとコンピューティングリソースを分離し、AnalyticDB for MySQLコンソールでキャッシュサイズを変更できます。
データの整合性
レイクキャッシュ機能は、更新されたOSSオブジェクトを自動的に識別してキャッシュし、コンピューティングエンジンが更新されたデータを確実に読み取ることができます。
パフォーマンスメトリクスとキャッシュポリシー
パラメーター | 説明 |
キャッシュ帯域幅 | キャッシュ帯域幅は、次の式を使用して計算されます。 たとえば、レイクキャッシュ機能のキャッシュサイズを10テラバイトに設定した場合、読み取り帯域幅は次の式を使用して計算されます。(5 × 10) Gbit/s = 50 Gbit/s。 |
キャッシュサイズ | キャッシュサイズは、10 GB〜10テラバイトの範囲にすることができます。 lakeキャッシュ機能は、指定したキャッシュサイズに基づいて、キャッシュされたデータの帯域幅を提供します。 キャッシュサイズの1テラバイトで最大5 Gbit/sの帯域幅を使用できます。 レイクキャッシュ機能によって提供される帯域幅は、OSSによって提供される標準帯域幅によって制限されません。 ビジネスでより大きなキャッシュサイズが必要な場合は、 チケットを起票します。 |
Cache evictionポリシー | 使用したキャッシュ領域が指定したキャッシュサイズを超える場合、システムは最小最近使用 (LRU) 削除ポリシーを使用して、キャッシュされたデータを削除します。 LRUエビクションポリシーは、頻繁にアクセスされるデータが保持され、頻繁にアクセスされないデータが優先的に除去されることを保証する。 これは、キャッシュ利用を著しく改善する。 |
パフォーマンステスト
このテストでは、TPC-Hクエリを実行して、AnalyticDB for MySQLのレイクキャッシュ機能がOSSデータアクセス効率を向上できるかどうかを確認します。 OSSデータへの直接アクセスと比較して、レイクキャッシュ機能はデータアクセス効率を2.7倍向上させます。 次の表にテスト結果を示します。
タイプ | キャッシュサイズ | データセットサイズ | Sparkリソース仕様 | 実行時間 |
湖のキャッシュ機能が有効 | 12 TB | 10 TB | 2コア、8 GB (中) | 19,578s |
OSSデータへの直接アクセス | なし | 10 TB | 2コア、8 GB (中) | 7,219s |
課金ルール
レーキキャッシュ機能を有効にすると、従量課金の課金方法に基づいて、使用済みキャッシュスペースに対して課金されます。 詳細については、「
使用上の注意
レイクキャッシュ機能は、中国 (杭州) 、中国 (上海) 、中国 (北京) 、中国 (張家口) 、中国 (深セン) 、シンガポール、米国 (バージニア) のリージョンでのみサポートされています。
重要レイクキャッシュ機能を他のリージョンで使用する場合は、
チケットを起票します。
キャッシュハードウェアで障害が発生した場合、データクエリは中断されませんが、速度が低下します。 キャッシュされたデータがOSSからプリプリフェッチされると、クエリ速度が復元されます。
レイクキャッシュ機能によって使用されるキャッシュスペースが上限に達すると、レイクキャッシュ機能は、キャッシュスペース内のアクセス頻度の低いオブジェクトをアクセス頻度の高いオブジェクトに置き換えます。 キャッシュスペースに格納されているオブジェクトを置き換えたくない場合は、レイクキャッシュ機能のキャッシュサイズを増やすことができます。
レイクキャッシュ機能の有効化
AnalyticDB for MySQL コンソールにログインします。 ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
[Data Lakehouse Edition] タブで、管理するクラスターを見つけ、クラスターIDをクリックします。
クラスター情報 ページの 構成情報 セクションで、[Lake Cache] の横にある [設定] をクリックします。
[Lake Cache] ダイアログボックスで、[Lake Cache] をオンにし、キャッシュサイズを指定します。
[OK] をクリックします。
lakeキャッシュ機能を使用する
レイクキャッシュ機能を有効にした後、sparkジョブにSpark. adb.lakecache.enabled
パラメーターを指定して、OSSデータ読み取りを高速化できます。 サンプルコード:
Spark SQLの開発
-- Here is just an example of using LakeCache. Modify the content and run your spark program.
SET spark.adb.lakecache.enabled=true;
-- Here are your sql statements
SHOW databases;
Spark JAR開発
{
"comments": [
"-- Here is just an example of using LakeCache. Modify the content and run your spark program."
],
"args": ["oss://testBucketName/data/readme.txt"],
"name": "spark-oss-test",
"file": "oss://testBucketName/data/example.py",
"conf": {
"spark.adb.lakecache.enabled": "true"
}
}
レイクキャッシュ機能をXIHEエンジンと一緒に使用する場合は、
チケットを起票します。
lakeキャッシュ機能に関するモニタリング情報の表示
lakeキャッシュ機能を有効にすると、送信されたSparkアプリケーションがCloudMonitorコンソールでlakeキャッシュ機能を使用しているかどうかを確認できます。 また、キャッシュスペースから読み取られたデータの量など、レイクキャッシュ機能に関するモニタリング情報を表示することもできます。 以下の手順を実行します。
にログインします。CloudMonitorコンソール.
左側のナビゲーションウィンドウで、
を選択します。ポインタをAnalyticDB for MySQLカードの上に移動し、AnalyticDB for mysql 3.0 - Data Lakehouse Editionをクリックします。
監視するAnalyticDB for MySQLクラスターを見つけて、[操作] 列の [モニタリングチャート] をクリックします。
[LakeCacheメトリクス] タブをクリックして、レイクキャッシュメトリクスの詳細を表示します。
次の表に、レイクキャッシュのメトリックを示します。
メトリクス
説明
LakeCacheキャッシュヒット率 (%)
キャッシュヒット率。 式: キャッシュにヒットした読み取り要求の数 /読み取り要求の総数。
LakeCacheキャッシュの使用状況 (B)
使用済みキャッシュスペース。 単位はバイトです。
LakeCacheの履歴累積リードデータの合計量 (B)
キャッシュスペースから読み取られたデータの合計量。 単位はバイトです。