5

Łączę dokumenty, które mają znacznik czasu. Znacznik czasu to UTC, ale każda z nich ma lokalną strefę czasową ("timezone": "America/Los_Angeles"), która może się różnić w różnych dokumentach.Dynamiczne przesunięcie strefy czasowej w agregacji elastycznej?

Próbuję wykonać date_histogram aggregation w oparciu o czas lokalny, a nie UTC lub ustaloną strefę czasową (np. Za pomocą opcji "time_zone": "America/Los_Angeles").

Jak mogę przekonwertować strefę czasową dla każdego dokumentu na czas lokalny przed agregacją?

Oto prosta agregacja:

{ 
    "aggs": { 
    "date": { 
     "date_histogram": { 
     "field": "created_timestamp", 
     "interval": "day" 
     } 
    } 
    } 
} 
+0

Czy kiedykolwiek znalazłeś rozwiązanie tego problemu? Wiem, że to jest stare, ale jestem dokładnie na tym samym stanowisku i pomyślałem, że sprawdzę przed opublikowaniem w przeciwnym razie powielonego pytania. –

Odpowiedz

0

Nie jestem pewien, czy w pełni go zrozumieć, ale wydaje się, że time_zone property byłoby, że:

Wartość strefa akceptuje albo wartość liczbowa dla przesunięcia godzin, na przykład: "time_zone": -2. Przyjmuje również format godzin i minut, np. "Time_zone": "-02: 30". Inną opcją jest zapewnienie strefy czasowej zaakceptowanej jako jedna z wartości wymienionych tutaj.

0

Jeśli przechowuje się inne pole, które jest czasem lokalnym bez informacji o strefie czasowej, powinno działać.

Weź każdy znacznik czasu jaki masz (który jest w UTC), zamień go na datę w lokalnej strefie czasowej (będzie to zawierało informacje o strefie czasowej). Teraz po prostu upuść informacje o strefie czasowej z tej daty i godziny. Teraz możesz wykonywać akcje na tym nowym polu.

Załóżmy, że początek tego czasu UTC: '2016-07-17T01: 33: 52.412Z'

Teraz załóżmy, że jesteś w PDT można przekonwertować go do: „2016-07- 16T18: 33: 52.412-07: 00'

teraz włamać się do końca, więc skończyć z: '2016-07-16T18: 33: 52.412Z'

teraz można działać na tym polu .

Powiązane problemy