2017-02-18 6 views
0

Допустим, я создать индекс в elasticsearch и импорта данныхКак создать месяц через месяц новой компании гистограмме

PUT test 
{ 
    "mappings": { 
    "orders": { 
     "properties": { 
     "devices": { 
      "type": "integer" 
     }, 
     "location": { 
      "type":"geo_point" 
     }, 
     "time" : { 
      "type":"date", 
      "format": "epoch_second" 
     }, 
     "company" : { 
     "type":"keyword"  
     } 
     } 
    } 
    } 
} 

Что довольно просто сделать в kibana это получаю количество уникальных предприятий в месяц, что это хорошо, но недостаточно для того, чтобы получить ряд компаний, у которых был первый заказ в этом месяце. Возможно ли это в кибане или timelion? Если не знаете, как я должен сохранять данные в эластичном состоянии, чтобы получить этот номер? Я использую Kibana 5.1.2

ответ

0

Я добавил тип свойства в индекс, называемый sequence, который является номером последовательного порядка, поэтому, если это первый порядок, я дал ему 1, если второй 2 и так далее. .. Mapping выглядит следующим образом

PUT test 
{ 
    "mappings": { 
    "orders": { 
     "properties": { 
     "devices": { 
      "type": "integer" 
     }, 
     "email": { 
      "type":"keyword" 
     }, 
     "company": { 
      "type":"keyword" 
     }, 
     "location": { 
      "type":"geo_point" 
     }, 
     "sequence":{ 
      "type":"integer" 
     }, 
     "time": { 
      "type":"date", 
      "format": "strict_date_optional_time||epoch_second" 

     } 
     } 
    } 
    } 
} 

Так что для этой операции я выбрать Timelion, которая круто и позволяет вычислять значение. Формула для MoM% новых пользователей ...

(new users this month/cumulative users till previous month) 

Этот взгляд в выражении timelion как этот

.es(q=sequence:1,index=index,timefield=time,metric=cardinality:company) 
.divide(.es(index=index,timefield=time,metric=cardinality:company,offset=-1M) 
.cusum()).bars() 

Обратите внимание, что этот запрос все один запрос я только разрезать его на 3 части для облегчения readibility. И я добавил бары() только для удовольствия.

Смежные вопросы