'unique'에 해당되는 글 2건

  1. 2017.02.09 [Kibana] Unique Count 사용 시 threshold 스크립트 추가.
  2. 2013.03.12 C++ nano time

[Kibana] Unique Count 사용 시 threshold 스크립트 추가.

Elastic/Kibana 2017.02.09 12:54

기억력 극복을 위해 또 기록해 봅니다.


elasticsearch의 cardinality aggregation 을 kibana 에서는 unique count 로 사용 합니다.

여기에 정확도 조절을 위해 precision_threshold 를 설정할 수 있는데요.


참고문서)

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-cardinality-aggregation.html


QueryDSL)

{
    "aggs" : {
        "author_count" : {
            "cardinality" : {
                "field" : "author_hash",
                "precision_threshold": 100 
            }
        }
    }
}



Kibana Script)

{

"precision_threshold":40000

}


위와 같이 사용하시면 됩니다.

주의 하실 부분은 CPU와 Memory 사용에 민감하고 circuit breaker 설정도 확인하셔야 합니다.


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 : Comment 0

C++ nano time

ITWeb/개발일반 2013.03.12 11:35

Reference URL : http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/clibref/qnx/clock_gettime.html


clock_gettime()

get the current time of a clock

Synopsis:

#include <time.h>
int clock_gettime( clockid_t clock_id,
                   struct timespec *tp );

Description:

The clock_gettime() function gets the current time of the clock specified by clock_id, and puts it into the buffer pointed to by tp. The only supported clock ID is CLOCK_REALTIME.

The tp parameter points to a structure containing at least the following members:

time_t tv_sec
The number of seconds since 1970.
time_t tv_nsec
The number of nanoseconds expired in the current second. This value increases by some multiple of nanoseconds, based on the system clock's resolution.

Returns:

0
Success
-1
An error occurred. errno is set to indicate the error.

Errors:

EINVAL
The clock_id is not CLOCK_REALTIME.

Examples:

/*
 * This program calculates the time required to
 * execute the program specified as its first argument.
 * The time is printed in seconds, on standard out.
 */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.h>

#define BILLION  1000000000L;

int main( int argc, char **argv )
  {
    struct timespec start, stop;
    double accum;

    if( clock_gettime( CLOCK_REALTIME, &start) == -1 ) {
      perror( "clock gettime" );
      exit( EXIT_FAILURE );
    }

    system( argv[1] );

    if( clock_gettime( CLOCK_REALTIME, &stop) == -1 ) {
      perror( "clock gettime" );
      exit( EXIT_FAILURE );
    }

    accum = ( stop.tv_sec - start.tv_sec )
          + ( stop.tv_nsec - start.tv_nsec )
            / BILLION;
    printf( "%lf\n", accum ); 

    return( EXIT_SUCCESS );


[Prototype Code]

int64_t getUniqId() {

    timeb tb;

    ftime( &tb );

    struct timespec ts;

    clock_gettime(CLOCK_REALTIME, &ts);


    int64_t uniqId = tb.millitm + (tb.time * 1000) + (ts.tv_nsec * 1000000000);


    return uniqId;

}


신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 : Comment 0

티스토리 툴바