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

Newer Version Available

This content describes an older version of this product. View Latest

QueryBuilder クラス

QueryBuilder クラスは、Wave Analytics に渡す適切な形式の SAQL クエリを構築するためのメソッドを提供します。

Namespace (名前空間)

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 はこの Wave 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 クエリには qaqb の 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)

パラメータ

datasetID
型: String
データセットの ID。
datasetVersionID
型: String
データセットのバージョンを識別する ID。

戻り値

型: wave.QueryNode

count()

クエリ条件に一致する行数を計算します。

署名

public static wave.ProjectionNode count()

戻り値

型: wave.ProjectionNode

get(projection)

特定の属性を選択してクエリします。

署名

public static wave.ProjectionNode get(String proj)

パラメータ

proj
型: String
クエリする列の名前。

戻り値

型: wave.ProjectionNode

union(unionNodes)

複数の結果セットを 1 つの結果セットに結合します。

署名

global static Wave.QueryNode union(List<Wave.QueryNode> unionNodes)

パラメータ

unionNodes
型: List<wave.QueryNode>
結合するノードのリスト。

戻り値

型: wave.QueryNode

cogroup(cogroupNodes, groups)

共通グルーピングとは、2 つの入力ストリームが独立してグループ化され、横に並べて配置されることを意味します。両方のグループに存在するデータのみが結果に表示されます。

署名

global static Wave.QueryNode cogroup(List<Wave.QueryNode> cogroupNodes, List<List<String>> groups)

パラメータ

cogroupNodes
型: wave.QueryNode
グループ化するノードのリスト。
グループ
型: String
グルーピングの種別。

戻り値

型: wave.QueryNode