CData Software Blog

クラウド連携のCData Software の技術ブログです。

CData Drivers キャッシュ機能の使い方:AutoCache

f:id:sugimomoto:20210106152015p:plain

こんにちは。CData Software Japan リードエンジニアの杉本です。

今回はCData Drivers共通の強力な機能、「キャッシュ」について解説します。

キャッシュとは?

CData Drivers では全データソースでリクエスト結果を一時的に保持するキャッシュ機能を提供しており、この機能を使うことで、APIリクエスト数を削減したり、パフォーマンスの向上を見込むことが可能です。

cdn.cdata.com

f:id:sugimomoto:20210106151956p:plain

キャシュ機能はいくつか使い方があるのですが、今回は一番シンプルな機能である、AutoCacheの使い方を解説します。

cdn.cdata.com

f:id:sugimomoto:20210106152006p:plain

AutoCacheはどのように機能するのか?

AutoCacheは最初にデータをクエリした段階でバックグラウンドでデータを保持することにより、2回目以降の応答時間を短縮する機能です。

以下の図のように、この機能を有効化すると、CData Driverは初回クエリ実行時に取得したデータを一度ローカルのSQLite(もしくは任意のRDB)にクエリと取得したデータをキャッシュします。

f:id:sugimomoto:20210106152015p:plain

この生成されたキャッシュDBを使って、2回目以降に同様のクエリ(もしくはキャッシュされたデータで賄うことができるクエリ)が発行されたら、キャッシュDBのデータをチェック、もし有効なデータが存在していた場合、そこからレスポンスを返すようになっています。

f:id:sugimomoto:20210106152021p:plain

初めてクエリするテーブルやビュー、また後述するキャッシュの残存期間の敷居値を超えていた場合、再度データソース側にリクエストを投げます。

動作イメージ

少しわかりやすいように、Cacheを使った場合の動画を撮影してみました。

データソースはKintoneで、MS Accessから接続しており、Fiddlerを使って APIリクエストが行われているかどうかを判別します。

まず、AutoCacheがFalseの場合。

初回データ取得を行った後、データを表示する度にKintoneへのデータリクエストが行われていることが確認できます。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/CDataBlog/cachefalse.gif

次に、AutoCache がTrueの場合。

初回リクエストではデータを取得していますが、2回目以降はAPIリクエストが行われていないことがわかりますでしょうか?

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/CDataBlog/cachetrue.gif

今回は少ないデータなので、どちらもレスポンス速度に大きな違いは発生しませんが、これが数十万件レベルだった場合、そのAPIリクエスト数や取得時間は大きな差になって現れるでしょう。

AutoCacheの使い方

Auto Cache 機能の有効化は使うDriverの種類によって少しだけ異なります。

ODBCADO.NETExcel Add-inなどWindowsベースの場合は、AutoCache プロパティをTrueにするだけで利用可能になります。

cdn.cdata.com

JDBC Driverの場合はderbyを使う必要があります。詳しくは以下のページを参照してみてください。

cdn.cdata.com

今回はODBC Kintone Driver を例に設定方法を紹介します。

以下のようにODBC DSNを立ち上げて、対象の接続情報を開いたら「Auto Cache」の設定をTrueに変更します。

f:id:sugimomoto:20210106152028p:plain

前述の通り、デフォルトではSQLiteが使用されます。

キャッシュDBが生成される場所は「Cache Location」に指定されている「%APPDATA%\CData\Kintone Data Provider」となっていて、キャッシュ生成後にフォルダを開くと以下のように「cache.db」というファイルが生成されていることが確認できます。

f:id:sugimomoto:20210106152035p:plain

また、Cacheの有効期限はCache Toleranceプロパティにて、デフォルト600秒で定義されています。

cdn.cdata.com

あとはこの設定で、お好みのツールからアクセスするだけでキャッシュが利用されるようになります。

是非試してみてください!

もし、わからない点があれば、お気軽にテクニカルサポートまでどうぞ!

www.cdata.com