こんにちは。CData Software Japan リードエンジニアの杉本です。
今回はCData Drivers共通の強力な機能、「キャッシュ」について解説します。
キャッシュとは?
CData Drivers では全データソースでリクエスト結果を一時的に保持するキャッシュ機能を提供しており、この機能を使うことで、APIリクエスト数を削減したり、パフォーマンスの向上を見込むことが可能です。
cdn.cdata.com
キャシュ機能はいくつか使い方があるのですが、今回は一番シンプルな機能である、AutoCacheの使い方を解説します。
cdn.cdata.com
AutoCacheはどのように機能するのか?
AutoCacheは最初にデータをクエリした段階でバックグラウンドでデータを保持することにより、2回目以降の応答時間を短縮する機能です。
以下の図のように、この機能を有効化すると、CData Driverは初回クエリ実行時に取得したデータを一度ローカルのSQLite(もしくは任意のRDB)にクエリと取得したデータをキャッシュします。
この生成されたキャッシュDBを使って、2回目以降に同様のクエリ(もしくはキャッシュされたデータで賄うことができるクエリ)が発行されたら、キャッシュDBのデータをチェック、もし有効なデータが存在していた場合、そこからレスポンスを返すようになっています。
初めてクエリするテーブルやビュー、また後述するキャッシュの残存期間の敷居値を超えていた場合、再度データソース側にリクエストを投げます。
動作イメージ
少しわかりやすいように、Cacheを使った場合の動画を撮影してみました。
データソースはKintoneで、MS Accessから接続しており、Fiddlerを使って APIリクエストが行われているかどうかを判別します。
まず、AutoCacheがFalseの場合。
初回データ取得を行った後、データを表示する度にKintoneへのデータリクエストが行われていることが確認できます。
次に、AutoCache がTrueの場合。
初回リクエストではデータを取得していますが、2回目以降はAPIリクエストが行われていないことがわかりますでしょうか?
今回は少ないデータなので、どちらもレスポンス速度に大きな違いは発生しませんが、これが数十万件レベルだった場合、そのAPIリクエスト数や取得時間は大きな差になって現れるでしょう。
AutoCacheの使い方
Auto Cache 機能の有効化は使うDriverの種類によって少しだけ異なります。
ODBC・ADO.NET・Excel Add-inなどWindowsベースの場合は、AutoCache プロパティをTrueにするだけで利用可能になります。
cdn.cdata.com
JDBC Driverの場合はderbyを使う必要があります。詳しくは以下のページを参照してみてください。
cdn.cdata.com
今回はODBC Kintone Driver を例に設定方法を紹介します。
以下のようにODBC DSNを立ち上げて、対象の接続情報を開いたら「Auto Cache」の設定をTrueに変更します。
前述の通り、デフォルトではSQLiteが使用されます。
キャッシュDBが生成される場所は「Cache Location」に指定されている「%APPDATA%\CData\Kintone Data Provider」となっていて、キャッシュ生成後にフォルダを開くと以下のように「cache.db」というファイルが生成されていることが確認できます。
また、Cacheの有効期限はCache Toleranceプロパティにて、デフォルト600秒で定義されています。
cdn.cdata.com
あとはこの設定で、お好みのツールからアクセスするだけでキャッシュが利用されるようになります。
是非試してみてください!
もし、わからない点があれば、お気軽にテクニカルサポートまでどうぞ!
www.cdata.com
関連コンテンツ