Appearance
Query
Envelope の query は、その操作でデータをどう取り出そうとしたかを表します。 取り出し方の種類は type で表し、SQL の実行ではクエリの文字列が text に入ります。 取得する件数や開始位置は limit / offset で表します。
query が付くのは、データソースからデータを取り出す操作です。 テーブルやジョブの定義だけを読むメタデータの取得や、 キャンセルのようにデータ取得を伴わない操作には付きません。 どのイベントに付くかは、各イベントページの query で確認できます。
type には次の種類があります。
sql… データソースに対する SQL の実行。実行された SQL がtextに入りますtable… テーブルの直接読み取り。textは入らず、読み取る対象はresourceが表しますjob_result… クエリジョブの実行結果読み取り。textは入らず、対象のジョブはresourceが表します
クエリジョブの結果取得に text が入らないのは、クエリの文字列がジョブ作成時(type: sql)の イベントにすでに記録されているためです。ここには type: job_result と取得件数(limit / offset) だけが入り、元の SQL は resource.uid(ジョブの識別子)をたどって create のイベントから確認できます。
result.status が deny や failure のイベントにも query は入ります。 実際にはデータを取得できなかった場合でも、何を取り出そうとしたのかが分かるようにするためです。
1回の操作で複数のクエリを実行した場合は、クエリごとに1件ずつイベントを記録します。 1件の query に複数のクエリがまとまることはありません。
Objects
Query
その操作でデータをどう取り出そうとしたかの仕様です。
text は長さの上限を超えると切り詰められます。切り詰められた場合は truncated が true になり、 切り詰めがなかった場合は truncated フィールド自体が付きません(ChangedField のフラグモードと同じ規約)。 これにより「短いクエリ」と「切り詰められたクエリ」を取り違えずに読めます。
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
type | QueryType | 必須 | クエリの種類 |
text | string | 任意 | クエリの文字列。長さ上限を超える場合は切り詰められます。 sensitivity: confidential |
truncated | bool | 任意 | 長さ上限を超えて切り詰められた場合の true |
limit | int | 任意 | 取得件数の上限。API に渡された値であり、SQL 文中の LIMIT 句とは別のものです。 |
offset | int | 任意 | 取得開始位置。API に渡された値であり、SQL 文中の OFFSET 句とは別のものです。 |
Enums
QueryType
クエリの種類です。
| 値 | 説明 |
|---|---|
sql | データソースに対して実行される SQL |
table | テーブルの直接読み取り。text は入りません |
job_result | クエリジョブの実行結果読み取り。text は入りません |