Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add validation interval on ingestion stage #1092

Closed
kyungtaak opened this issue Dec 14, 2018 · 29 comments
Closed

Add validation interval on ingestion stage #1092

kyungtaak opened this issue Dec 14, 2018 · 29 comments
Assignees
Labels
@datasource Component Name : Datasource/Connection Management enhancement Request Change and Feature Enhancement p1 Priority 1
Milestone

Comments

@kyungtaak
Copy link
Contributor

kyungtaak commented Dec 14, 2018

Is your feature request related to a problem? Please describe.
Like #1089 issue, A large duration of intervals and a low segment granularity cause a big problem in the ingestion performance of the engine.

Describe the solution you'd like

  • Prevents selection of segment granularity less than HOUR unit.
  • The number of segment granularity units in the interval period must not exceed 10000.

Describe alternatives you've considered

  • Add interval property on file/database ingesetion stage
  • validate interval property
    • If the current time, the interval property needs to be hidden.

Additional context
(N/A)

@kyungtaak kyungtaak added @datasource Component Name : Datasource/Connection Management enhancement Request Change and Feature Enhancement awaiting feedback need to feedback labels Dec 14, 2018
@kyungtaak kyungtaak added this to the 3.2.0 milestone Dec 14, 2018
@kyungtaak
Copy link
Contributor Author

@AnnieHwang @deidera08 위의 내용 긴급하게 확인 부탁드립니다.

@kyungtaak kyungtaak self-assigned this Dec 14, 2018
@kyungtaak kyungtaak added the p1 Priority 1 label Dec 14, 2018
@deidera08
Copy link

deidera08 commented Dec 14, 2018

@kyungtaak @AnnieHwang

Segment granularity가 시간 단위 이하인 시간/분/ 초를 선택시에만 노출하는것으로 생각했습니다(기본 hide)
입력 UI는 Limited record count와 동일하게 구성하며, 기본으로 입력된 값은 없고 10000이상 입력시 경고문구 노출됩니다.

1092intervalperiodfile
1092intervalperioddb
추가: current time으로 지정했을 경우 이 설정 노출되지 않음

보완해야 할 점 있으면 가이드 부탁드립니다.

@kyungtaak
Copy link
Contributor Author

@deidera08 네 기획내용 감사합니다. 하지만, stageDB 와 동일하게 interval 기간을 지정할수 있는 공간이 필요합니다. (interval period 는 어떤목적이신지...) 그리고, 인터벌 기간 그리고 granularity 단위를 받아 이를 계산하여 단위가 10000 개가 넘는 경우 저 메시지가 나타나게끔 하는 것을 의도했어요. (기존 stagedb 도 마찬가지입니다.)

@deidera08
Copy link

@kyungtaak @AnnieHwang
초안의 interval period 는 유저가 Segment granularity unit를 입력함으로써 자동으로 Interval 기간이 자동 산출될것이라고 생각했습니다. 제가 상황 이해를 잘 못한듯 하네요.

질문이 있습니다.

  1. Segment granularity의 interval 기간은 데이터 범위(range)와 어떻게 다르나요?
  2. interval 기간 입력 필드와 granularity 단위 입력 필드 각각이 필요한가요?
    예시1)
    Interval period: [yyyy-MM-dd hh:mm:ss] ~ [yyyy-MM-dd hh:mm:ss]
    Segment granularity unit: [10,000] units

아니면 interval 기간에 따라 자동 granularity 단위가 산출되나요?
예시2)
Interval period: [yyyy-MM-dd hh:mm:ss] ~ [yyyy-MM-dd hh:mm:ss]
12,345 segment granularity units

모쪼록 가이드를 부탁드리겠습니다.

@deidera08
Copy link

@kyungtaak @AnnieHwang

다음과 같이 화면을 수정했습니다.
1092interval period file
1092interval period db
1092interval period stagingdb

표현이 잘못되었거나 부족한 부분 있으면 모쪼록 피드백/가이드 부탁드리겠습니다.

@koeun222
Copy link

koeun222 commented Dec 19, 2018

@AnnieHwang 디자인 공유드립니다.
image

@kyungtaak
Copy link
Contributor Author

@AnnieHwang @koeun222 Interval period 부분이 Segment Granularity 콤보 박스 바로 밑에 붙어 있어 좀 어색한것 같은데요.
둘다 동일레벨이어야할것 같아요. Query Granularity 를 맨위로 올리고 나머지 두개를 같은 레벨로 아래에 놓으면 어떨런지요?

@deidera08
Copy link

@kyungtaak @AnnieHwang

제가 잘 몰라서 재차 여쭙게 되어 송구합니다.
Interval period이 Segment Granularity가 hour단위 이하일때만(시, 분, 초) 노출되는 속성이 맞는지요?

@kyungtaak
Copy link
Contributor Author

@deidera08 아.. 놓쳤던 것을 짚어주셨네요. 이건 아래 timefilter와 동일한 조건으로 해야할것 같다는 생각이 듭니다.
image

@deidera08
Copy link

@kyungtaak @AnnieHwang
다음과 같이 수정하였습니다.

  1. 순서 변경
  • Query granularity
  • Segment granularity
  • Intervals (타이틀명 수정, Segment granularity 단위가 hour일때만 노출)
  1. 레벨 조정
    Intervals 설정을 Query/Segment granularity와 같은 레벨로 표현하였습니다.

  2. 가이드 문구 추가 (Segment granularity는 기존의 가이드에 추가 작성)
    3-1. What is Segment granularity?
    The granularity to create segments at.
    Druid data is stored in "datasources" and each datasource is partitioned by time. Each time range is called a "chunk" (for example, a single month, if your datasource is partitioned by month).
    Within a chunk, data is partitioned into one or more "segments". Each segment is a single file, typically comprising up to a few million rows of data.

세그먼트 단위는 무엇인가요?
세그먼트를 생성하기 위한 단위입니다.
데이터소스는 시간에 의한 분할되어 Druid에 저장됩니다. 이때 각 시간 범위를 "청크"라고 합니다(예. 월로 설정시 데이터소스는 월 단위로 분할됨).
청크 내에서 데이터는 하나 이상의 "세그먼트"로 분할됩니다. 각 세그먼트는 단일 파일로, 일반적으로 최대 수백개 행의 데이터로 구성됩니다.

3-2. What is Intervals?
This defines the time ranges to run the query over.
One segment file is created for each time interval.

간격이란 무슨 의미인가요?

쿼리를 실행할 시간 범위를 뜻합니다.
각 시간 간격마다 하나의 세그먼트 파일을 형성하게 됩니다.

1092intervals_file03
1092intervals_db03
1092intervals_stagingdb03

표현이 잘못되었거나 부족한 부분 있으면 피드백&가이드 부탁드리겠습니다!

@kyungtaak
Copy link
Contributor Author

진행시 #646 이슈도 함께 확인이 필요할것 같습니다. @deidera08 위 정책대로 한다면 상세 화면이나 최종 요약 화면에도 영향이 있는지 확인 부탁드립니다.

@deidera08
Copy link

deidera08 commented Jan 1, 2019

@kyungtaak @AnnieHwang

데이터소스 생성 마지막 단계와 데이터소스 상세화면 추가하였습니다.

StagingDB 생성 마지막 단계
2019-01-01 11 20 23

데이터소스 상세화면
2019-01-01 11 20 34

그 외 화면은 ppt로 첨부합니다.
#1092Intervals.pptx

@kyungtaak
Copy link
Contributor Author

@deidera08 제생각에는 duration 을 빼고 Interval 로 통일했으면 하는데요. 어떻게 생각하시는지요?

@AnnieHwang
Copy link
Contributor

@kyungtaak @deidera08 말씀하신 의미가 Data range 설정을 빼고, interval로 하자는 말씀이신가요? 그러면 Segment Granualrity를 선택해야지만 interval 단위가 맞춰지고 선택할수 있는데 괜찮은가요?

@kyungtaak
Copy link
Contributor Author

@AnnieHwang 제가 Data Range(Duration) 의 의미를 제대로 파악하지 못했네요.

  • segment granularity 는 무조건 선택이 되는것으로 알고 있습니다. 맞나요? 그리고, segment granularity 가 hour 인 경우만 나오는것은 어색합니다.
  • 그리고 상세 화면에서 적재 시점의 interval 값(사용자가 지정)과 상세의 Data Range(실제 데이터 범위) 는 다를 수 있겠지만, 두개의 값이 나와 버리면 무척 햇깔릴것 같아 말씀드린 것이었는데요. 위의 댓글은 무시해주시고요. 결론적으로 상세 에서는 interval 이 나오지 않아도 될것 같은데요. 검토 부탁드립니다.

@deidera08
Copy link

@kyungtaak @AnnieHwang
가이드 주셔서 감사합니다 :) 다음과 같이 정리하겠습니다.

  1. segment granularity 단위와 상관없이 interval 상시 노출
    segment granularity는 필수 선택이므로 무조건 노출됩니다.
    기존의 segment granularity 단위가 시/분/초 일 때 interval이 노출되는 것으로 기획하였으나 segment granularity 단위가 분/초 는 삭제되었으므로 시간일 경우만 interval이 노출되었습니다.
    가이드주신대로 꼭 시간일 경우만 interval 설정이 필요한 것은 아니므로 segment granularity 단위 상관없이 타임스탬프의 설정값으로 interval 또한 상시노출 하는것으로 수정하겠습니다.

  2. Data Range(Duration) 보존
    가이드 주신대로 Data Range와 interval 기간이 다를 수 있으므로 각각 유지하도록 하겠습니다.

  3. information에서 (상황에 따라) interval 노출
    대부분의 상황에서 Data Range와 interval 기간이 같겠습니다만, 유저가 일치하지 않도록 설정한 경우 information화면에서 노출시키면 좋을듯 합니다.
    유저가 임의설정한 값은 상세화면에서는 정보로써 알려줘야 할 듯 싶습니다.
    2019-01-02 2 09 10

수정한 화면 ppt로 첨부합니다.
#1092Intervals_20190102.pptx

@brandon-wonjune
Copy link
Contributor

brandon-wonjune commented Jan 8, 2019

@kyungtaak
제 댓글 마지막만 지우려다가 같이 지워졌네요... 죄송합니다.

말씀하신 것처럼

(종료시간 millis. - 시작시간 millis.) / granularity unit millis < 10000

로 적용하도록 하겠습니다.

@brandon-wonjune brandon-wonjune removed the awaiting feedback need to feedback label Jan 16, 2019
brandon-wonjune added a commit that referenced this issue Jan 16, 2019
@ufoscw ufoscw closed this as completed Jan 17, 2019
brandon-wonjune added a commit that referenced this issue Jan 18, 2019
alchan-lee pushed a commit that referenced this issue Jan 18, 2019
* #1077 Make database type icons into common component

* #1077 snapshot is using custom API controllers

* #1077 snapshot uses always default projection has all properties

* #1077 snapshot has the properties of abstracthistoryentity

* #1077 merger with master

* #1077 Snapshots can only change allowed properties

* #1077 work_list returns snapshots was not canceled

* #1077 Add ss type icon in snapshot list, fix svg icon component

* #416 #443 fix  error displaying alias in chart widget

* #1092 fix job property guide popup css

* #1092 Fix date range format (add T for time)

* #1092 remove data range in stagingDB(change to intervals)

* #1092 change default data range regex

* #1092 fix interval guide icon css error

* #1092 fixed guide info, fix granularity service

* #1092 add uppercase replace
alchan-lee pushed a commit that referenced this issue Jan 18, 2019
* #1092 if string unix type, convert to number type

* #1092 if second unix time, convert data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
@datasource Component Name : Datasource/Connection Management enhancement Request Change and Feature Enhancement p1 Priority 1
Projects
None yet
Development

No branches or pull requests

7 participants