キャッシュテーブル
説明
CACHE TABLE
ステートメントは、テーブルの内容または指定した格納レベルを持つクエリの出力をキャッシュします。クエリがキャッシュされている場合、このクエリの一時ビューが作成されます。これにより、将来のクエリで元のファイルをスキャンする回数が削減されます。
構文
CACHE [ LAZY ] TABLE table_identifier
[ OPTIONS ( 'storageLevel' [ = ] value ) ] [ [ AS ] query ]
パラメータ
-
LAZY
テーブルが最初に使用されたときにのみキャッシュし、すぐにキャッシュするのではなく使用します。
-
table_identifier
キャッシュするテーブルまたはビューの名前を指定します。テーブル名またはビュー名は、オプションでデータベース名で修飾できます。
構文:
[ database_name. ] table_name
-
OPTIONS ( ‘storageLevel’ [ = ] value )
storageLevel
キーと値のペアでOPTIONS
句を使用します。storageLevel
以外のキーを使用すると警告が表示されます。storageLevel
の有効なオプションは次のとおりです。NONE
DISK_ONLY
DISK_ONLY_2
DISK_ONLY_3
MEMORY_ONLY
MEMORY_ONLY_2
MEMORY_ONLY_SER
MEMORY_ONLY_SER_2
MEMORY_AND_DISK
MEMORY_AND_DISK_2
MEMORY_AND_DISK_SER
MEMORY_AND_DISK_SER_2
OFF_HEAP
storageLevel
に無効な値が設定されると例外がスローされます。OPTIONS
句を使用してstorageLevel
が明示的に設定されていない場合、デフォルトのstorageLevel
はMEMORY_AND_DISK
に設定されます。 -
query
キャッシュする行を生成するクエリは、次のいずれかの形式で記載できます。
SELECT
ステートメントTABLE
文FROM
文
例
CACHE TABLE testCache OPTIONS ('storageLevel' 'DISK_ONLY') SELECT * FROM testData;