CData Python Connector for Google BigQuery

Build 24.0.9062

CACHE ステートメント

キャッシュが有効な場合、CACHE ステートメントを使用すると、キャッシュ対象のデータとキャッシュ先のテーブルを制御することができます。CACHE ステートメントでは、指定されたSELECT ステートメントが実行され、その結果がキャッシュデータベース内の同じ名前のテーブルまたは<cached_table_name> で指定されたテーブルにキャッシュされます。本製品 では、キャッシュ内に行が存在すれば更新され、存在しなければ行が挿入されます。このため、選択するカラムには、既存の行の識別に使用される主キーが含まれている必要があります。

さまざまなキャッシュストラテジーについての詳細は、データのキャッシュ を参照してください。

CACHE ステートメント構文

CACHE ステートメントには、その動作を変更する次のオプションを含めることができます。

CACHE [ <cached_table_name> ] [ WITH TRUNCATE | AUTOCOMMIT | SCHEMA ONLY | DROP EXISTING | ALTER SCHEMA ] <select_statement> 

WITH TRUNCATE

WITH TRUNCATE オプションを設定すると、本製品 は選択した行が追加される前に、キャッシュテーブルから既存の行を削除します。このオプションは、キャッシュテーブル全体をリフレッシュし、既存のスキーマは維持する場合に使用します。

AUTOCOMMIT

AUTOCOMMIT オプションを設定すると、本製品 は各行を個別にコミットします。このオプションは、何らかの理由でキャッシュできなかった行を無視する場合に使用します。デフォルトでは、結果セット全体が1つのトランザクションとしてキャッシュされます。

DROP EXISTING

DROP EXISTING オプションを設定すると、本製品 は新しい結果がキャッシュされる前に、既存のキャッシュテーブルを削除します。このオプションは、キャッシュテーブル全体をスキーマを含めてリフレッシュする場合に使用します。

SCHEMA ONLY

SCHEMA ONLY オプションを設定すると、本製品 はキャッシュテーブルをSELECT ステートメントに基づいて作成しますが、クエリは実行されません。

ALTER SCHEMA

ALTER SCHEMA オプションを設定すると、本製品 はキャッシュ内にある既存のテーブルのスキーマがSELECT ステートメントのスキーマと一致しない場合に、そのスキーマを変更します。このオプションを指定すると、キャッシュテーブルとSELECT ステートメントのスキーマが一致しない場合に、新しいカラムが作成されるか、カラムが削除されます。

一般的なクエリ

次のCACHE ステートメントを使用すると、テーブルのすべての行がキャッシュされます。

CACHE SELECT * FROM [publicdata].[samples].github_nested

次のCACHE ステートメントを使用すると、テーブルのすべての行がキャッシュテーブルCached[publicdata].[samples].github_nested にキャッシュされます。

CACHE Cachedgithub_nested SELECT * FROM [publicdata].[samples].github_nested

次のCACHE ステートメントを使用すると、インクリメンタルキャッシュが行われます。DateModified カラムは、すべてのテーブルに存在するわけではありません。キャッシュステートメントは、DateModified カラムがある場合に、インクリメンタルキャッシュがどのように実行されるかを示しています。また、この場合、WITH TRUNCATE およびDROP EXISTING オプションは特に除外されているため、既存の行がすべて削除されます。

CACHE Cachedgithub_nested SELECT * FROM [publicdata].[samples].github_nested WHERE DateModified > '2013-04-04'

次のCACHE ステートメントは、使用可能なカラムをすべて含むテーブルを作成し、その後いくつかのカラムのみをキャッシュする場合に使用します。一連のステートメントでは、キャッシュテーブルCached[publicdata].[samples].github_nested に[publicdata].[samples].github_nested 内のカラムがすべて含まれている場合でも、actor.attributes.email とrepository.name のみがキャッシュされます。

CACHE Cachedgithub_nested SCHEMA ONLY SELECT * FROM [publicdata].[samples].github_nested
CACHE Cachedgithub_nested SELECT actor.attributes.email, repository.name FROM [publicdata].[samples].github_nested

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9062