翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
キャッシュテーブル
CACHE TABLE コマンドは、既存のテーブルのデータをキャッシュするか、クエリ結果を含む新しいテーブルを作成してキャッシュします。
注記
キャッシュされたデータはクエリ全体で保持されます。
構文、引数、およびいくつかの例は、Apache Spark SQL リファレンス
構文
CACHE TABLE コマンドは、次の 3 つの構文パターンをサポートしています。
AS (括弧なし): クエリ結果に基づいて新しいテーブルを作成してキャッシュします。
CACHE TABLEcache_table_identifierASquery;
AS と括弧の場合: 関数は最初の構文と似ていますが、括弧を使用してクエリを明示的にグループ化します。
CACHE TABLEcache_table_identifierAS (query);
AS なし: SELECT ステートメントを使用してキャッシュする行をフィルタリングし、既存のテーブルをキャッシュします。
CACHE TABLEcache_table_identifierquery;
コードの説明は以下のとおりです。
-
すべてのステートメントはセミコロン (;) で終わる必要があります
-
queryは通常、SELECT ステートメントです。 -
クエリを囲む括弧は AS ではオプションです
-
AS キーワードはオプションです
パラメータ
- cache_table_identifier
-
キャッシュされたテーブルの名前。オプションのデータベース名修飾子を含めることができます。
- AS
-
クエリ結果から新しいテーブルを作成してキャッシュするときに使用されるキーワード。
- query
-
キャッシュするデータを定義する SELECT ステートメントまたはその他のクエリ。
例
次の例では、キャッシュされたテーブルはクエリ全体に対して保持されます。キャッシュ後、cache_table_identifier を参照する後続のクエリは、sourceTable から再計算または読み取りを行うのではなく、キャッシュされたバージョンから読み取ります。これにより、頻繁にアクセスされるデータのクエリパフォーマンスを向上させることができます。
クエリ結果からフィルタリングされたテーブルを作成してキャッシュする
最初の例は、クエリ結果から新しいテーブルを作成してキャッシュする方法を示しています。このコマンドは、SELECTステートメントの周囲に括弧を付けずに ASキーワードを使用します。ステータスがcache_table_identifier「」である「」の行のみを含むsourceTable「」という名前の新しいテーブルが作成されますactive'。クエリを実行し、結果を新しいテーブルに保存し、新しいテーブルの内容をキャッシュします。キャッシュされたデータを使用するには、元の 'sourceTable' は変更されず、後続のクエリは 'cache_table_identifier' を参照する必要があります。
CACHE TABLEcache_table_identifierAS SELECT * FROMsourceTableWHERE status = 'active';
括弧で囲まれた SELECT ステートメントを使用してクエリ結果をキャッシュする
2 番目の例は、SELECTステートメントの周囲に括弧を使用して、クエリの結果を指定された名前 (cache_table_identifier) の新しいテーブルとしてキャッシュする方法を示しています。このコマンドは、ステータスがcache_table_identifier「」である「」の行のみを含むsourceTable「」という名前の新しいテーブルを作成しますactive'。クエリを実行し、結果を新しいテーブルに保存し、新しいテーブルの内容をキャッシュします。元の 'sourceTable' は変更されません。キャッシュされたデータを使用するには、後続のクエリでcache_table_identifier「」を参照する必要があります。
CACHE TABLEcache_table_identifierAS ( SELECT * FROMsourceTableWHERE status = 'active' );
フィルター条件を使用して既存のテーブルをキャッシュする
3 番目の例は、別の構文を使用して既存のテーブルをキャッシュする方法を示しています。この構文は、'AS' キーワードと括弧を省略し、通常、新しいテーブルを作成するのではなく、'cache_table_identifier' という名前の既存のテーブルから指定された行をキャッシュします。SELECT ステートメントは、キャッシュする行を決定するフィルターとして機能します。
注記
この構文の正確な動作は、データベースシステムによって異なります。必ず、特定の AWS サービスに適した構文を確認してください。
CACHE TABLEcache_table_identifierSELECT * FROMsourceTableWHERE status = 'active';