ビューのクエリ¶
[Query] タブからビューのクエリを実行できます。
このページは、以下の 2 つのセクションに分かれています。
ビューのすべてのデータを表示するには、出力する列をいくつか選択して をクリックします。ビューから取得するデータのフィルター条件を追加することもできます。
クエリの定義¶
クエリをグラフィカルに構築できます。以下の 2 つの領域に分かれています。
左側 (赤) には、操作対象のフィールドが表示されます。
Fields: ビューのすべてのフィールドのリストが表示されます (これらのフィールドは、アルファベット順にソートしたり、フィルターしたりできます)。フィールドを複数選択して右側にドラッグアンドドロップできます。ビューのフィールドのほかに、
NUMBER_OF_RECORDS
という特殊なフィールドを利用してcount(*)
フィールドを出力に簡単に追加することもできます。Relationship Fields: カーディナリティ 1 のアソシエーションの条件マッピングに使用されているフィールドのリストが表示されます。ここでは、結果に追加する関連ビューのフィールドを選択できます。
たとえば、「employee」ビューのクエリを実行する場合に、「department」ビューのデータを表示したいとします。このとき、「department」ビューのエンドポイントで「employee」と「department」間にカーディナリティ 1 のアソシエーションが存在する場合は、結果に追加する「department」ビューのフィールドを選択できます。選択したフィールドを基準にして結果を並べ替えることもできます。
右側 (緑) は作業領域です。左側から追加したフィールドをここで編集して最終的なクエリを構成できます。
Outputs: クエリの出力スキーマに一致するフィールドのリストと、それらのフィールドの表示順序が表示されます。順序を変更するには、フィールドをドラッグアンドドロップして目的の位置に並べ替えます。このセクションへのフィールドの追加後に編集を行い (コンテキストメニュー)、名前を変更したり、式を作成したりできます。
出力に新しいフィールドを追加するには、[Add new field] をクリックします。そのフィールドが 派生 フィールドか、 集計 フィールドかが、自動的に検出されます。
集計フィールドの場合は、
GROUP BY
式が自動的にクエリに追加されます。
注釈
展開されたフィールドの構文は
<role_name>/<field>
であるため、演算子として/
を使用することはできません。代わりに、関数DIV
を使用する必要があります。Filters: ビューのデータをフィルターするための複合条件。ビューに必須フィールドが含まれている場合は、ウィザードによって各必須フィールドのフィルターが自動的に作成されます。このフィルターを削除した場合は、そのフィールドに値を指定するための別のフィルターまたは式を作成する必要があります。ユーザーが行う必要があるのは式を完成させることだけです。
クエリ内で
date
、time
、およびtimestamp
のリテラルを使用できます。選択したフィールドが date 型の場合は、(そのフィールドの部分型を考慮して) 適切な形式の値の例が表示されます。Order by: 1 つ以上のフィールドを基準にして結果を並べ替えます。[Fields] のリストから、または [Outputs] からフィールドをドラッグアンドドロップできます。このセクションへのフィールドの追加後に、矢印をクリックして、そのフィールドの並べ替えモード (昇順/降順) を変更できます。
注釈
クエリの以下の場所では、(カーディナリティ 1 のアソシエーションの) 展開フィールド を使用できます。
Outputs
Filters
Order By
GROUP BY 句 (自動生成)
展開フィールドは、クエリ対象のビューのフィールドと同じように使用され、 <role_name>/<field>
という構文で表示されます。
クエリの構築が完了したら、 をクリックしてクエリを実行します。クエリの実行はいつでも停止することができます。
これらのウィザードの式エディターでは、オートコンプリート機能が提供されるとともに、式を構成する各エレメント (関数名、フィールド、リテラル、演算子など) が異なる色で強調表示されます。また、入力可能なエレメントタイプのいずれにも該当しない断片が赤で強調表示されます。
[Query Definition] バーの右側には、異なる 2 つのオプション (リンク) が表示される可能性があります。一方のリンク () では、前回のクエリ実行で取得された結果を表示できます。結果ページを表示しているときには別のリンク () が表示されます。このリンクをクリックすることで、必要に応じてクエリ編集セクションに戻り、クエリを編集して再実行できます。
クエリの編集ボタンや非表示ボタンの前には、結果を取得するために実行したクエリを保存するためのリンク () があります。保存されたクエリは、現在のユーザーおよびサーバーに関連付けられ、保存されたクエリのセクション (「 保存されたクエリ 」を参照) に表示されます。この機能は、実行したクエリが複雑で、この先も頻繁に実行する予定がある場合や、実行したクエリを Virtual DataPort サーバーにデプロイしたい場合に役立ちます。
をクリックすると、現在のクエリに対して生成される VQL を取得できます。
最後に、 をクリックすると、結果をファイルにエクスポートできます。以下を選択できます。
出力形式: CSV、HTML、Excel、Tableau。Tableau のエクスポートを有効にする方法については、ページ「 Tableau へのエクスポートの有効化 」を参照してください。管理者はこれらのオプションを無効にすることができます (「 エクスポート形式の構成 」を参照)。
エクスポートする結果の数:
すべての結果。
表示されている結果のみ。つまり、すべての結果のうち、現在表示中の結果のみ。
最初の n 個の結果のみ。
出力ファイルに列名付きのヘッダーを含める場合にチェックします。Tableau (.tde) ファイルと Tableau Hyper (.hyper) ファイルには、常にこのヘッダーが入ります。
管理者は、[Personalization] ページでデフォルトのオプションを変更できます。
注釈
複合フィールドや展開されたアソシエーション (「対多」のアソシエーション) がビューに含まれている場合 (詳細については「 アソシエーションの展開 」を参照)、それらのフィールドは JSON 文字列としてエクスポートされます。
注釈
Excel にエクスポートする場合、最大結果数は 1,048,576 です。
クエリの結果¶
結果については、次の 2 つの特殊ケースがあります。
複合フィールド: アイコンをクリックすると、そのサブフィールドの値がポップアップに表示されます。
バイナリフィールドは「[BINARY DATA]」として表示されます。このフィールドはダウンロードできません。
クエリ対象のビューに他のビューとのアソシエーションが存在する場合がありますが、このアソシエーションには、次の 2 種類があります。
「対 1」: 結果クエリのフィールドとして表示される関連ビューのフィールドを選択できます。
「対多」: 参照されるビューの 1 つのタプルが、関連ビューの複数のタプルに関連付けられている場合。この場合、このアソシエーションをたどって、メインビューのこのタプルに関連付けられているタプルをすべて表示できます。 をクリックすると表示できます。新しいポップアップが開いて、そこでアソシエーションの相手側のデータが表示されます。アソシエーションを展開することもできます (詳細については、「 アソシエーションの展開 」のセクションを参照)。
テーブルの個々のセルの内容が長すぎる場合、行の高さは拡大されませんが、ツールヒントを使用して残りの内容を表示できます。行の高さはすべての行で同じ高さに保たれます。
各行の最初の列には、アイコン () が表示されます。このアイコンをクリックするとダイアログ (「 Transposed table for first row 」) が開き、その行のデータが垂直形式で表示されます (これは、テーブルに非常に多くの列があり、その行全体の結果を確認しづらい場合に役立つことがあります)。
アソシエーションの展開¶
2 つのエンティティ間のアソシエーションの展開は、関連するタプルやエンティティが結果にインライン挿入されることを意味します。たとえば、Order と Customer という エンティティを含むシナリオについて考えてください (「 Expanding an association (“to One”) 」を参照)。 Order 内の各タプルは、(PK-FK 関係を通じて) Customer 内の 1 つのタプルと関連付けられています。この場合、ある注文に関するクエリの実行時に、発注者である顧客のデータを取得できます。同様に、ある顧客についてのクエリの実行時に、その顧客のすべての注文を取得できます。
この例に続いて、次の 2 つのシナリオを想定することができます。
「対 1」のアソシエーション: 前の例と同様に、1 つの注文が 1 人の顧客に (かつ 1 人の顧客のみに) 属している場合。これについては、「 Expanding an association (“to One”) 」で概念を示していますが、この場合、注文のデータの取得時に関連ビュー (Customer) から取得したいフィールドを選択できます。そのためには、展開するフィールドを選択する必要があります (「 Selecting fields from an association to be expanded 」を参照)。これにより、関連ビューのフィールドが結果に表示されるようになります (「 Association expanded 」を参照)。
「対多」のアソシエーション: ビュー内の 1 つのタプルが別のビューの 1 つ以上のタプルに関連付けられている場合。これは、顧客が複数の発注を行った可能性がある場合に該当します。この場合、そのアソシエーションを走査して、特定の顧客からのすべての注文を表示できます。そのためには、展開するフィールドを選択する必要があります (「 Selecting fields to expand the orders of a customer 」を参照)。それにより、アソシエーションを展開するためのアイコンがテーブルに追加されます (「 Link to expand the orders for a customer 」を参照)。このアイコン をクリックすると、新しいポップアップが開き、その顧客からの注文が表示されます。