すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:近似関数

最終更新日:Aug 23, 2024

このトピックでは、近似関数の構文について説明します。 このトピックでは、関数の使用方法の例も示します。

次の表に、Simple Log Serviceでサポートされているおおよその機能を示します。

重要

分析ステートメントで文字列を使用する場合は、文字列を単一引用符 (')で囲む必要があります。 二重引用符 (") で囲まれていない、または囲まれている文字列は、フィールド名または列名を示します。 例えば、 'status' はステータスの文字列を示し、status または "status" はステータスログフィールドを示します。

関数

構文

説明

SQLでサポート

SPLでサポート

approx_distinct関数

approx_distinct( x)

xの異なる値の数を推定します。 デフォルトの標準エラーは2.3% です。

×

approx_distinct( x, e)

xの異なる値の数を推定します。 カスタム標準エラーを指定できます。

×

approx_percentile関数

approx_percentile( x, percentage)

xの値を昇順でソートし、ほぼパーセントの位置にあるxの値を返します。

×

approx_percentile( x, array[ percentage01, percentage02 ...])

xの値を昇順でソートし、ほぼpercentage01percentage02の位置にあるxの値を返します。

×

approx_percentile( x, weight, percentage)

xの値と重みの積に基づいてxの値を昇順にソートし、ほぼパーセンテージの位置にあるxの値を返します。

×

approx_percentile( x, weight, array[ percentage01, percentage02 ...])

xの値と重みの積に基づいてxの値を昇順に並べ替え、おおよそpercentage01percentage02の位置にあるxの値を返します。

×

approx_percentile( x, weight, percentage, accuracy)

xの値と重みの積に基づいて、xの値を昇順にソートし、ほぼパーセンテージの位置にあるxの値を返します。 戻り値の精度を指定できます。

×

numeric_histogram関数

numeric_histogram( bucket, x)

バケットパラメーターで指定されたヒストグラムの列数に基づいて、xの近似ヒストグラムを返します。 戻り値はJSON型です。

×

numeric_histogram( bucket, x, weight)

バケットパラメーターで指定されたヒストグラムの列数に基づいて、xの近似ヒストグラムを返します。 戻り値はJSON型です。 xの値に重みを指定できます。

×

numeric_histogram_u関数

numeric_histogram_u( bucket, x)

バケットパラメーターで指定されたヒストグラムの列数に基づいて、xの近似ヒストグラムを返します。 戻り値には複数の行と列が含まれます。

×

approx_distinct関数

approx_distinct関数は、xの異なる値の数を推定します。

構文

  • 次の構文のapprox_distinct関数は、xの異なる値の数を推定します。 デフォルトの標準エラーは2.3% です。

    approx_distinct(x)
  • 次の構文のapprox_distinct関数は、xの異なる値の数を推定します。 カスタム標準エラーを指定できます。

    approx_distinct(x, e)

パラメーター

パラメーター

説明

x

このパラメーターの値は任意のデータ型です。

e

カスタム標準エラー。 有効な値: 0.0115〜0.26。

戻り値のデータ型

bigint型。

  • 例1: カウント関数を使用して、ページビュー (PV) の数を計算します。 次に、approx_distinct関数を使用して、client_ipフィールドの一意の値を一意の訪問者 (UV) の数として推定します。 標準エラーは2.3% です。

    • クエリ文

      * |SELECT count(*) AS PV, approx_distinct(client_ip) AS UV
    • クエリと分析結果 approx_distinct

  • 例2: count関数を使用してPVの数を計算します。 次に、approx_distinct関数を使用して、client_ipフィールドの一意の値をUVの数として推定します。 標準エラーは10% です。

    • クエリ文

      * |SELECT count(*) AS PV, approx_distinct(client_ip,0.1) AS UV
    • クエリと分析結果 approx_distinct

approx_percentile関数

approx_percentile関数は、xの値を昇順でソートし、おおよそパーセントの位置にあるxの値を返します。

構文

  • 次の構文のapprox_percentile関数は、xの値を昇順でソートし、おおよそpercentageの位置にあるxの値を返します。 戻り値はdouble型です。

    approx_percentile(x, percentage)
  • 次の構文のapprox_percentile関数は、xの値を昇順でソートし、percentage01とpercentage02の位置にあるxの値を返します。 戻り値は配列 (double,double) 型です。

    approx_percentile(x, array[percentage01, percentage02...])
  • 次の構文のapprox_percentile関数は、xの値と重みの積に基づいてxの値を昇順にソートし、おおよそパーセント位置にあるxの値を返します。 戻り値はdouble型です。

    approx_percentile(x, weight, percentage)
  • 次の構文のapprox_percentile関数は、xの値と重みの積に基づいてxの値を昇順でソートし、percentage01とpercentage02の位置にあるxの値を返します。 戻り値は配列 (double,double) 型です。

    approx_percentile(x, weight, array[percentage01, percentage02...])
  • 次の構文のapprox_percentile関数は、xの値と重みの積に基づいてxの値を昇順にソートし、おおよそパーセント位置にあるxの値を返します。 戻り値はdouble型です。 戻り値の精度を指定できます。

    approx_percentile(x, weight, percentage, accuracy)

パラメーター

パラメーター

説明

x

このパラメーターの値はdouble型です。

パーセンテージ

パーセント値。 値の範囲: [0 , 1]

精度

精度。 値の範囲: (0,1)

重量

体重。 重みは1より大きい整数でなければなりません。

重みを指定すると、xの値と重みの積に基づいて、xの値が昇順にソートされます。

戻り値のデータ型

doubleまたはarray(double、double) タイプ。

  • 例1: request_time列の値を昇順でソートし、ほぼ50% の位置にあるrequest_timeフィールドの値を返します。

    • クエリ文

      *| SELECT approx_percentile(request_time,0.5)
    • クエリと分析結果 approx_percentile

  • 例2: request_time列の値を昇順でソートし、ほぼ10% 、20% 、および70% の位置にあるrequest_timeフィールドの値を返します。

    • クエリ文

      *| SELECT approx_percentile(request_time,array[0.1,0.2,0.7])
    • クエリと分析結果 approx_percentile

  • 例3: request_time列の値と重みの積に基づいて、request_time列の値を昇順でソートし、ほぼ50% の位置にあるrequets_timeフィールドの値を返します。 request_timeの値が20未満の場合、重みは100である。 それ以外の場合、重量は10です。

    • クエリ文

      * |
      SELECT
        approx_percentile(
          request_time,case
            when request_time < 20 then 100
            else 10
          end,
          0.5
        )
    • クエリと分析結果 approx_percentile

  • 例4: request_time列の値と重みの積に基づいてrequest_time列の値をソートし、ほぼ80% と90% の位置にあるrequest_timeフィールドの値を返します。 request_timeの値が20未満の場合、重みは100である。 それ以外の場合、重量は10です。

    • クエリ文

      * |
      SELECT
        approx_percentile(
          request_time,case
            when request_time < 20 then 100
            else 10
          end,
          array [0.8,0.9]
        )
    • クエリと分析結果 approx_percentile

  • 例5: request_timeの値と重みの積に基づいてrequest_time列の値をソートし、ほぼ50% の位置にあるrequest_timeフィールドの値を返します。 精度は0.2です。 request_timeの値が20未満の場合、重みは100である。 それ以外の場合、重量は10です。

    • クエリ文

      * |
      SELECT
        approx_percentile(
          request_time,case
            when request_time < 20 then 100
            else 10
          end,
          0.5,
          0.2
        )
    • クエリと分析結果 approx_percentile

numeric_histogram関数

numeric_histogram関数は、バケットパラメーターで指定されたヒストグラム列の数に基づいて、xの近似ヒストグラムを返します。 戻り値はJSON型です。

構文

  • 次の構文のnumeric_histogram関数は、バケットパラメーターで指定されたヒストグラム列の数に基づいて、xの近似ヒストグラムを返します。

    numeric_histogram(bucket, x)
  • 次の構文のnumeric_histogram関数は、バケットパラメーターで指定されたヒストグラム列の数に基づいて、xの近似ヒストグラムを返します。 xの値に重みを指定できます。

    numeric_histogram(bucket, x, weight)

パラメーター

パラメーター

説明

バケット

ヒストグラムの列数。 このパラメーターの値はbigint型です。

x

このパラメーターの値はdouble型です。

重量

体重。 重みは0より大きい整数でなければなりません。

重みを指定すると、xの値と重みの積に基づいてxの値がグループ化されます。

戻り値のデータ型

JSON型。

  • 例1: POSTメソッドのリクエスト期間のおおよそのヒストグラムを返します。

    • クエリ文

      request_method:POST | SELECT numeric_histogram(10,request_time)
    • クエリと分析結果 numeric_histogram

  • 例2: request_timeフィールドの値と重みの積に基づいて、request_timeフィールドの値をグループ化し、POSTメソッドのリクエスト期間の近似ヒストグラムを返します。

    • クエリ文

      request_method:POST| SELECT numeric_histogram(10, request_time,case when request_time<20 then 100 else 10 end)
    • クエリと分析結果 numeric_histogram

numeric_histogram_u関数

numeric_histogram_u関数は、バケットパラメーターで指定されたヒストグラム列の数に基づいて、xの近似ヒストグラムを返します。 複数の行と列を含むテーブルが返されます。

構文

numeric_histogram_u(bucket, x)

パラメーター

パラメーター

説明

バケット

ヒストグラムの列数。 このパラメーターの値はbigint型です。

x

このパラメーターの値はdouble型です。

戻り値のデータ型

ダブルタイプ。

POSTメソッドのリクエスト期間のおおよそのヒストグラムを返します。

  • クエリ文

    request_method:POST | select numeric_histogram_u(10,request_time)
  • クエリと分析結果 numeric_histogram_u