QueryBuilder クラス
名前空間
wave
使用方法
QueryBuilder とその関連付けられたクラス Wave.ProjectionNode および Wave.QueryNode を使用して、SAQL ステートメントを段階的に作成します。次に例を示します。
1public static void executeApexQuery(String name){
2 Wave.ProjectionNode[] projs = new Wave.ProjectionNode[]{
3 Wave.QueryBuilder.get('State').alias('State'),
4 Wave.QueryBuilder.get('City').alias('City'),
5 Wave.QueryBuilder.get('Revenue').avg().alias('avg_Revenue'),
6 Wave.QueryBuilder.get('Revenue').sum().alias('sum_Revenue'),
7 Wave.QueryBuilder.count().alias('count')};
8
9 ConnectApi.LiteralJson result = Wave.QueryBuilder.load('0FbD00000004DSzKAM', '0FcD00000004FEZKA2')
10 .group(new String[]{'State', 'City'})
11 .foreach(projs)
12 .execute('q');
13 String response = result.json;
14}例
QueryBuilder は CRM Analytics Apex SDK の第 1 フェーズの中核です。もっと詳しく見てみましょう。シンプルな count クエリを次に示します。
1Wave.ProjectionNode[] projs = new Wave.ProjectionNode[]{Wave.QueryBuilder.count().alias('c')};
2String query = Wave.QueryBuilder.load('datasetId', 'datasetVersionId').group().foreach(projs).build('q');この結果作成される SAQL クエリは次のようになります。
1q = load "datasetId/datasetVersionId";
2q = group q by all;
3q = foreach q generate count as c;union ステートメントを使用した、より複雑な例を次に示します。
1Wave.ProjectionNode[] projs = new Wave.ProjectionNode[]{Wave.QueryBuilder.get('Name'), Wave.QueryBuilder.get('AnnualRevenue').alias('Revenue')};
2Wave.QueryNode nodeOne = Wave.QueryBuilder.load('datasetOne','datasetVersionOne').foreach(projs);
3Wave.QueryNode nodeTwo = Wave.QueryBuilder.load('datasetTwo', 'datasetVersionTwo').foreach(projs);
4String query = Wave.QueryBuilder.union(new List<Wave.QueryNode>{nodeOne, nodeTwo}).build('q');この結果作成される SAQL クエリには qa と qb の 2 つの射影ストリームがあります。
1qa = load "datasetOne/datasetVersionOne";
2qa = foreach q generate Name,AnnualRevenue as Revenue;
3qb = load "datasetTwo/datasetVersionTwo";
4qb = foreach q generate Name,AnnualRevenue as Revenue;
5q = union qa, qb;QueryBuilder のメソッド
QueryBuilder のメソッドは次のとおりです。
load(datasetID, datasetVersionID)
署名
public static wave.QueryNode load(String datasetID, String datasetVersionID)
戻り値
get(projection)
union(unionNodes)
署名
global static Wave.QueryNode union(List<Wave.QueryNode> unionNodes)
パラメータ
- unionNodes
- 型: List<wave.QueryNode>
- 結合するノードのリスト。
戻り値
cogroup(cogroupNodes, groups)
署名
global static Wave.QueryNode cogroup(List<Wave.QueryNode> cogroupNodes, List<List<String>> groups)
パラメータ
- cogroupNodes
- 型: wave.QueryNode
- グループ化するノードのリスト。
- groups
- 型: String
- グルーピングの種別。