この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Query リソース

Salesforce Analytics Query Language (SAQL) で記述されたクエリを実行します。
リソース URL
1/wave/query
形式
JSON
使用可能なバージョン
36.0
使用可能なコンポーネント
HTTP のメソッド
POST
POST の要求パラメータ
パラメータ名 説明 必須か省略可能 使用可能なバージョン
name String クエリ名。 必須 41.0
query Object (Saql​Query​Input) JSON 形式のクエリ。 queryquery​String のいずれかが必要ですが、両方は必要ありません。 36.0
query​String String クエリ文字列。 queryquery​String のいずれかが必要ですが、両方は必要ありません。 40.0
timezone String クエリのタイムゾーン。 省略可能 44.0
SAQL リクエストボディの例
1{
2    "query":"q = load \"0Fbxx0000000006CAA/0Fcxx000000001dCAA\";
3     q = group q by 'FirstName';
4     q = foreach q generate 'FirstName' as 'FirstName', count() as 'count';
5     q = limit q 2000;"
6}
SQL リクエストボディの例
1{
2    SELECT City, sum(Sales) as TotalSales
3    From "em/SuperStoreSales"
4    GROUP BY City
5    LIMIT 10;"
6}
POST のレスポンスボディ
Literal JSON
SAQL レスポンスボディの例 (metadata を含まない)
1{
2  "action":"query",
3  "responseId":"3vy-E9YmX-TIWe0769juD-",
4  "results": {
5    "records":[
6      {"FirstName":"","count":1},
7      {"FirstName":"Admin","count":1},
8      {"FirstName":"Integration","count":1},
9      {"FirstName":"Security","count":1}
10    ]
11  },
12  "query":"q = load \"0Fbxx0000000006CAA/0Fcxx000000001dCAA\";
13           q = group q by 'FirstName';
14           q = foreach q generate 'FirstName' as 'FirstName', count() as 'count';
15           q = limit q 2000;",
16  "responseTime":544
17}
SAQL レスポンスボディの例 (metadata を含む)
1{
2  "action":"query",
3  "responseId":"3vy-E9YmX-TIWe0769juD-",
4  "results": {
5    "metadata": {
6      "columns":[
7        {"name":"FirstName", "type":"String"},
8        {"name":"count", "type":"Numeric"}
9      ],
10      "groups":["FirstName"]
11    },
12    "records":[
13      {"FirstName":"","count":1},
14      {"FirstName":"Admin","count":1},
15      {"FirstName":"Integration","count":1},
16      {"FirstName":"Security","count":1}
17    ]
18  },
19  "query":"q = load \"0Fbxx0000000006CAA/0Fcxx000000001dCAA\";
20           q = group q by 'FirstName';
21           q = foreach q generate 'FirstName' as 'FirstName', count() as 'count';
22           q = limit q 2000;",
23  "responseTime":544
24}
SQL レスポンスボディの例 (metadata を含む)
1"metadata": [
2  "columns": {
3    {
4      "columnLabel": "City",
5      "columnType": "varchar"
6    },
7    {
8      "columnLabel": "TotalSales",
9      "columnType": "numeric"
10    }
11  },
12  "timezone": "America/Los_Angeles", // if present
13  "queryLanguage": "SQL"
14]

columns キーには、クエリの射影の名前と型が含まれます。

SQL レスポンスボディの例 - 集計を含むグループ化クエリ

このクエリは、集計 avg(Sales)AvgSales として射影し、数値データを返します。メタデータでは、対応する列のデータ型が数値として返されます。

1"metadata": [
2  "columns": {
3    {
4      "columnLabel": "City",
5      "columnType": "varchar"
6    },
7    {
8      "columnLabel": "AvgSales",
9      "columnType": "numeric"
10    }
11  },
12  "queryLanguage": "SQL"
13]
SQL クエリおよびレスポンスボディの例 - 日付項目から日付要素を抽出

この例では、CloseDate 項目から年、月、日を数値として返します。このクエリには timezone 項目があり、メタデータで America/Los Angeles として返されます。

1SELECT EXTRACT(YEAR FROM CloseDate) as year,
2  EXTRACT(MONTH FROM CloseDate) as month,
3  EXTRACT(DAY FROM CloseDate) as day
4  From "OpportunityFiscalEM"
1"metadata": [
2  "columns": {
3    {
4     "columnLabel": "year",
5     "columnType": "numeric"
6    },
7     {
8     "columnLabel": "month",
9     "columnType": "numeric"
10    },
11    {
12      "columnLabel": "day",
13      "columnType": "numeric"
14    }
15  },
16  "timezone": "America/Los_Angeles",
17  "queryLanguage": "SQL"
18]
SQL クエリおよびレスポンスボディの例- DateTime 型の日付項目を射影

このクエリは、日付情報をタイムスタンプとして返します。

1SELECT CloseDate
2  From "OpportunityFiscalEM
1"metadata": [
2  "columns": {
3    {
4      "columnLabel": "CloseDate",
5      "columnType": "timestamp"
6    }
7  },
8  "timezone": "America/Los_Angeles",
9  "queryLanguage": "SQL"
10]
クエリの metadadta
クライアントがクエリを解析して、使用されているディメンションとグループを判断できますが、コストがかかる可能性があります。そのためほとんどの場合、クエリ応答には metadata セクションが含まれ、このセクションでグルーピングと列情報が提供されます。metadata セクションが存在する場合は、クエリ応答ペイロードの結果キーで見つけることができます。metadata セクションは、columns キーと groups キーで構成されます。
1"metadata":{
2  "columns":[{"name":"dim name", "type":"String"}],
3  "groups":["name","destination"]
4}
columns キーには、クエリの射影の名前と型が含まれます。groups キーには、クエリで使用されるグループのリストが含まれます。
  • metadata は、クエリが成功したときに追加されます。クエリの実行が失敗した場合、構文エラーがある場合、または認証コールバックが失敗した場合、metadata は結果に追加されません。
  • 列名に設定される値は、ディメンションの名前ではなく射影に付けられた別名です。
  • クエリが複雑ではなく、返されるグループ名が非決定的な (グループの名前がクエリの複数のストリームで使用されている) 場合、クエリで使用されるグループのリストが groups キーで返されます。これは、クエリが cogroup または union を使用する場合です。そのような場合、groups キーは空になります。

メモ

SAQL クエリの作成についての詳細は、『Analytics SAQL 開発者ガイド』および『Analytics SDK Guide (Analytics SDK ガイド)』を参照してください。