Lookerにおける「上限値」について #looker
Lookerは、Webアプリケーションにログインし、そのWebアプリケーションで全ての作業を行うSaaSサービスです。その環境下でデータを扱う上で、Lookerには(データに関連する)制限が幾つか存在します。当エントリでは『制限』に関する情報についてその内容を確認してみたいと思います。
目次
行(Row)制限
エクスプローラ(Explore), Looks, Dashboards, SQL Runner
[エクスプローラ]ページで作成されたクエリは最大5000行の制限があります。これはLook、ダッシュボード、SQL Runnerで作成されたクエリにも適用されるものです。
ダウンロード
以下の条件を満たしていれば、殆どの場合は無制限に結果セットをダウンロード可能です。
- 結果セットがストリーミングされていること
- ダウンロードするユーザーにdownload_without_limit権限があること
これらの条件が満たされない場合、代わりにダウンロードモーダルでカスタムな制限を設定可能。この場合の制限は100,000行となります。
メニューから[Download]を選択すると、
以下の様にダウンロードに関するウインドウが起動します。制限(Limit)の項目も以下の様に選択可能です。
[All Results]を選択すると以下の様にアラートが表示されます。
[Custom]を選択すると行列件数をそれぞれ指定した上でダウンロードが可能です。
ダッシュボードからのダウンロードについては下記をご参照ください。
ダッシュボードに遷移し、メニューをクリックすると以下2つのダウンロードメニューが利用可能になっています。
PDFダウンロードの場合、幾つかの指定を合わせて行えます。
CSVダウンロードの場合はそのまま(ダウンロード)処理が実行されます。
スケジュールと配信
結果がストリーミングされている状況であれば、Eメールによるスケジュールで最大15MBのデータを送信可能です。[All Results]オプションが適用されたメールには15MBのサイズ制限が適用されます。
また、同様に結果がストリーミングされている状況であれば、以下の経路で送信されるスケジュールはデータサイズの制限はありません。
ファイルフォーマット
PDF及びPNGファイル形式の場合、コンテンツのダウンロードや送信・スケジュールにおいて、ブラウザでの行数制限である5,000(行)が適用されます。
マークダウン、テキスト、CSV、JSON(シンプル)、XLSX形式の場合、[All Results]オプションは通常スケジューリング、送信、ダウンロード用のHTML形式でのみ使用可能です。
データ配信のスケジューリングに関する詳細は下記ドキュメントをご参照ください。
また、送信オプションについては下記ドキュメントをご参照ください。
データのダウンロードについては下記ドキュメントをご参照ください。
API
API呼び出しは呼び出されるコンテンツと同じ制限が適用されます。
- Explore、Look、またはダッシュボードに基づくAPI呼び出しには、5,000行制限が適用
- 特定のダウンロードおよびスケジュールファイル形式は無制限
APIを介して無制限に結果をダウンロードする場合、適切なRun Callを指定した上で、limitパラメータを-1(負の値)に設定します。(-1はLookerが無制限の結果を表すために用います)
使用しているAPI呼び出しのタイプに応じて、上記のセクションで参照されている制限を確認してください。
ストリーミング
『ストリーミング』とは、データを一度に処理するのでは無く、チャンク単位で処理するLookerの機能です。Lookerが結果セットをストリーミング出来る場合、データを無制限にダウンロード出来ます。
ですが、以下2つの場合、ストリーミングは出来ません。
テーブル計算
テーブル計算を使うと、ストリーミングダウンロードは出来ません。データを無制限にダウンロードしたい場合はクエリからテーブル計算を外す必要があります。
データベース毎の制限
クエリにピボットが含まれている場合、一部のデータベースはストリーミングダウンロード出来ません。合致するデータベースの場合はピボットを削除する必要があります。
また、一部データベースはストリーミングダウンロード自体が出来ません。対応データベースの詳細については下記ドキュメント末尾の対応表をご参照ください。
列(Column)制限
ドキュメントによると、列の制限は200までと定められており、また列の数は50未満とする事が推奨されています。実際に挙動を確かめてみます。
エクスプローラで任意の条件、今回は列の数が増えるように指定を行いクエリを実行。
この時、列の制限(Column Limit)は特に指定していません。発行されたクエリを確認してみると、SQLのLIMIT句の数値が50を示していました。デフォルトで推奨値:50が指定されるようです。
次に、敢えて列指定を行ってみます。上限である200はクエリとして実行されましたが、
上限を超えた場合は上限値:200でクエリが実行される挙動になっているようです。
まとめ
という訳で、Lookerの『制限』に関する内容のご紹介でした。
Lookerでこのような『件数の制限』が為されていることに、『えっ、大量データを扱えないの?』と思われる方も居るかも知れません。ですが、Lookerが発しているメッセージを統合すると、そもそも『大量データをそのまま表示する必要は無いし、すべきではない』という事がわかります。ダッシュボードでは極力分かりやすく、シンプルに。またツール側、プラットフォーム側でデータを処理させるのでは無く、接続するデータベース・データウェアハウス側で処理させ、Lookerはその結果を表示する。...こういった部分は本来であればLookerに限らずBIツールを使う場合に心掛けるべきところなのですが、なかなか全ての環境・状況で思い通りに行っていないのがもどかしいところではあります。この辺りは上手くデータ分析環境を設計してスムーズ且つ効率の良い仕組みを・構築していきたいものですね。