RECORD_IN_FAST_SAMPLEは、現在のレコードが指定した状態のレコードのサンプルにあるかどうかを示すブールを返す行関数です。
RECORD_IN_FAST_SAMPLE(<double_literal>)ここで、double_literalは、リクエストしたサンプルのサイズを、レコードの合計数の割合で指定します。サンプル・サイズは、0.0から1.0の間(0.0と1.0を含む)である必要があります。たとえば、値0.1は、状態内のレコードの約10%を返します。
RECORD_IN_FAST_SAMPLEは、DgraphからStudioに送信されるデータのサイズを小さくする(ヒート・マップなどの大まかなビジュアライゼーションを生成する場合など)ための高速で便利な関数です。ただし、この関数では真にランダムなサンプルは計算されません。つまり、コレクション内の各レコードが選択される確率が同じわけではなく、kレコードの各サブセットが選択される確率がkレコードの他のサブセットと同じわけではありません。
これらの制限の違反は、EQLチェック・エラーになります。
RETURN Results AS SELECT TotalSales AS Sales FROM SalesState WHERE RECORD_IN_FAST_SAMPLE(0.1)
RETURN Results AS SELECT TotalSales AS Sales FROM SalesState WHERE TotalSales IS NOT NULL AND RECORD_IN_FAST_SAMPLE(0.1)
DEFINE s1 AS SELECT ... FROM State1 WHERE RECORD_IN_FAST_SAMPLE(0.1); DEFINE s2 AS SELECT ... FROM State2 WHERE RECORD_IN_FAST_SAMPLE(0.1); RETURN s3 AS SELECT .. FROM s1 JOIN s2 ON (...)
s1およびs2の結果には、それぞれState1およびState2のレコードの約10%が含まれます。ただし、一般的には、前の文がサンプリングされていない場合、s3の結果には10%より大幅に少ないレコードが含まれます。