概要
BIツールやデータベースクライアントなどの外部クライアントからTDVで公開したデータサービスに対してSELECT文などのデータ取得クエリを実行するときに、取得されるレコード件数を制限する方法について説明します。
ここでの「取得行数の制限」は、SELECT文のWHERE句を付加してフィルタ条件を適用するような絞り込みではなく、「LIMIT句やTOP句などによる先頭行からn件に制限」することを意味します。
本記事では、以下のケースについて説明します。
検証環境
製品 | バージョン |
---|---|
TDV Server |
8.5.4 |
TDV Studio | |
Spotfire Server |
12.0.4 |
Spotfire Analyst | |
DBeaver |
23.1.0 |
TDVのビューでSQLレベルで対応
TDV上で公開されるデータサービスのソースとなるビューや、その先で参照されているビューのSQLタブでSQLに{ option MAX_ROWS_LIMIT=<取得行数> }
オプションを付加することで取得行数を制限できます。
クライアント側で対応(Spotfire)
Spotfire ServerからインフォメーションリンクによりTDVからデータを取得する場合
インフォメーションリンクの編集画面でSQLボタンをクリックし、SQLにTOP句(TOP <取得行数>
)を付加することで取得行数を制限できます。
Spotfire Analystからデータ接続によりTDVからデータを取得する場合
以下の例のようにROW_NUMBER
関数を利用して行数を制限するカスタム クエリを作成することで取得行数を制限できます。
現時点でSpotfireのカスタム クエリにおいてTDV Serverに対して実行するSQLにTOP句を付加することはできません。
クライアント側で対応(DBeaver)
SQLにTOP句(TOP <取得行数>
)を付加することで取得行数を制限できます。