2016-08-16 1 views
1

실시간으로 평온함을 통해 csv 데이터를 섭취하는 나의 유스 케이스에 대해 Druid를 평가 중입니다. 서버 구성은 다음과 같은 : -Truquility to Druid에 데이터를 보내지 않았습니다.

{ 
    "dataSources" : { 
    "audience" : { 
     "spec" : { 
     "dataSchema" : { 
      "dataSource" : "audience", 
      "parser" : { 
      "type" : "string", 
      "parseSpec":{ 
    "format" : "csv", 
    "timestampSpec" : { 
     "column" : "timestamp" 
    }, 
    "columns" : ["timestamp","partner_id","event_id","product_id","device_id","count"], 
    "dimensionsSpec" : { 
     "dimensions" : ["partner_id","event_id","product_id","device_id"] 
    } 
    } 
}, 
      "metricsSpec" : [{ "type" : "longSum", "name" : total, "fieldName" : "count" }], 
    "granularitySpec" : { 
    "segmentGranularity" : "HOUR", 
    "queryGranularity" : "HOUR", 
    "intervals" : [ "2013-08-31/2013-09-01" ] 
    } 

    }, 
     "ioConfig" : { 
      "type" : "realtime" 
     }, 
     "tuningConfig" : { 
      "type" : "realtime", 
      "maxRowsInMemory" : "100000", 
      "intermediatePersistPeriod" : "PT10M", 
      "windowPeriod" : "PT10M" 
     } 
     }, 
     "properties" : { 
     "task.partitions" : "1", 
     "task.replicants" : "1" 
     } 
    } 
    }, 
    "properties" : { 
    "zookeeper.connect" : "localhost", 
    "druid.discovery.curator.path" : "/druid/discovery", 
    "druid.selectors.indexing.serviceName" : "druid/overlord", 
    "http.port" : "8200", 
    "http.threads" : "8" 
    } 
} 

데이터로 파이썬 스크립트에 의해 무작위로 생성됩니다 -

1471336991,1,960,136,3ZLA7,1 
1471336991,1,369,367,8MP2B,1 
1471336991,2,544,550,C9ZG8,1 
1471336991,1,135,394,XFX31,1 
1471336991,2,590,552,VXMTL,1 
1471336991,1,493,615,0C2HR,1 
1471336991,2,435,710,HKYP0,1 
1471336991,1,394,483,V2HP9,1 
1471336991,2,441,376,J1LYO,1 

다음 명령은 데이터를 제출하고에 마지막으로 {"result":{"received":1000,"sent":0}}

python createData.py |curl -XPOST -H'Content-Type: text/plain' --data-binary @- http://localhost:8200/v1/post/audience. 

답변

0

수를 반환 문제를 풀다. 실제로 나는 Epoch 시간 형식으로 Druid에게 시간을 보냈지 만, ISO-8601 형식을 기대합니다. 파이썬에서 하나는 쉽게 그렇게함으로써 얻을 수 있습니다 : -

datetime.datetime.utcnow().isoformat() 
+0

이것은 귀하의 게시물에 대한 비판적인 질문입니다! 하지만 위의 실시간 섭취 스펙에서 'windowPeriod'와 'segmentGranularity'의 차이점을 알고 계십니까? 'windowPeriod' 또는'segmentGranularity'에서 제공하는 값에 기반한 세그먼트를 생성하는 것과 같은가? – CapturedTree

+0

예! 창 기간은 데이터와 관련성이 있으며 세그먼트 세분성은 데이터를 언제 롤업해야하는지 알려줍니다. –

+0

@MangatRaiModi 여기에서 질문 하시길 바랍니다. https://stackoverflow.com/questions/45206900/tranquility-server-would-not-send-data-to-druid 창 기간이 1 년인 서버에 데이터를 보내려고합니다. 평온은 데이터를 수신하지만 전송하지는 않습니다. 감사! –

0

드루이드는 "timestampSpec" 속성에 지정 될 수있는 여러 시간 형식을 지원합니다. Druid 문서에는 "iso, millis, posix, auto 또는 Joda 시간 형식"의 타임 스탬프 형식이 나열되어 있습니다.

예를 들어, 밀리 초 단위로 시간을 보내 :

"timestampSpec" : { 
    "column" : "timestamp", 
    "format" : "millis" 
} 
0

몇 가지

  1. 사용 ISO 8601 날짜 시간 형식
  2. 확인 서면 타임 스탬프의 +/- 10 분 내에 확인 현재 시간
+0

@rohitkochar 게시 내용보기. 사제는 다른 형식을 받아 들일 수 있습니다. –