metatron-app / metatron-discovery Goto Github PK
View Code? Open in Web Editor NEWPowerful & Easy way for big data discovery
Home Page: https://metatron.app
License: Apache License 2.0
Powerful & Easy way for big data discovery
Home Page: https://metatron.app
License: Apache License 2.0
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Describe alternatives you've considered
<N/A>
Additional context
<N/A>
Describe the bug
데모 사이트에서 링크형 데이터소스 동작하지 않음. 수정되면 잠시 동작하다가, 항상 잘 동작하지 않는 문제가 있음(현재 Hive 에서만 발생하는 것으로 보임).
To Reproduce
현재 노출되 있는 데이터소스인 "link" datasource 를 이용할 경우 동작하지 않음.
2/2 단계에서 더 이상 진행 되지 않으며 아래와 같은 메시지만 반복적으로 출력됨.
2018-08-17 10:08:45.526 DEBUG [-] [BulkLoad-null-0] a.m.d.domain.engine.EngineLoadService : Check temporary datasource [2] : TEMP-fba34c06-969e-4703-82a9-3dd24ee031ef
2018-08-17 10:08:45.526 DEBUG [-] [BulkLoad-null-0] a.m.d.d.engine.AbstractEngineRepository : Request to engine : GET, http://metatron-hadoop-03:8082/druid/v2/datasources/local/test_arcts_zgvnb/coverage > {}
2018-08-17 10:08:45.529 DEBUG [-] [BulkLoad-null-0] a.m.d.domain.engine.EngineLoadService : load Datasource info :
2018-08-17 10:08:45.529 DEBUG [-] [BulkLoad-null-0] a.m.d.domain.engine.EngineLoadService : Send Progress Topic : /topic/datasources/TEMP-3862119c-b50a-4437-8026-62441e5eedcf/progress, ProgressResponse{progress=13, message='PROGRESS_LOAD_TEMP_DATASOURCE'}
워크벤치에서 Hive 연결에 대해 차트 그리기를 해도 동일한 현상이 발생하는 것을 확인
2018-08-17 10:29:00.225 DEBUG [-] [http-nio-8080-exec-8] a.m.d.d.w.util.WorkbenchDataSourceUtils : datasource Destroy : b59606b3-6a75-4bef-83de-8b67d6d17813 - d12n1s2l
app.metatron.discovery.prep.parser.exception.UnknownServerException: java.io.IOException: 연결이 상대편에 의해 끊어짐
at app.metatron.discovery.prep.parser.exception.GlobalExceptionHandler.handleAll(GlobalExceptionHandler.java:147)
at app.metatron.discovery.prep.parser.exception.GlobalExceptionHandler.exceptionHandler(GlobalExceptionHandler.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
Expected behavior
Screenshots
Desktop (please complete the following information):
On demo site
Additional context
Is your feature request related to a problem? Please describe.
timestamp 데이터의 locale 설정이 서버의 언어설정을 따라가기 때문에 서버 언어가 한글인 경우 Mon, Tue 등을 처리하지 못함.
Describe the solution you'd like
서버의 언어 설정과 관계없이 기본 locale을 영어로 설정.
Describe alternatives you've considered
Additional context
String을 TimeStamp로 변경할 때, TimeStamp를 String으로 변경할 때 모두 Locale.English 를 적용하여 처리.
Is your feature request related to a problem? Please describe.
현재 snapshot 생성시, 성공여부를 알 수가 없는 상태입니다.
Describe the solution you'd like
성공 여부를 나타내는 필드를 snapshot entity에 포함시키는 것이 좋겠습니다.
Additional context
그동안은 따로 status를 두지 않고, response중 finishTime 이라는 key가 있으면 SUCCEEDED, 없으면 RUNNING으로 처리했었습니다.
이제 스냅샷 생성이 cancel이 가능해지고, 실패시 바로 FAILED로 처리할 수 있게 하였기 때문에,
"종료 시간"은 성공, 실패, 중단 모든 경우에 의미가 있게 되었습니다.
finishTime의 위의 세 경우 모두 찍는 것으로 하고,
작업의 상태는 다음 중의 하나를 설정하는 것으로 하겠습니다.
INITIALIZING : 초기 상태
LOADING : 처음 grid를 구성하는 중일 때
RUNNING : 전수 변환 처리에 들어간 경우 (병렬 처리인 경우 그 중 하나라도)
WRITING : 파일 출력에 들어간 경우. Hive 스냅샷인 경우 테이블 생성 과정도 포함
SUCCEEDED: 마지막 WRITING까지 성공적으로 끝난 경우 (finishTime 설정됨)
FAILED : 에러가 발생해서 중단된 경우 (finishTime 설정됨)
CANCELING : 사용자가 중단을 요청한 경우. 그래서 작업들이 중단되고 있는 경우
CANCELED: 사용자 요청에 의해 중단된 경우 (finishTime 설정됨)
Describe the bug
데이터플로우 화면에서 스냅샷 리스트를 끊임없이 불러오는 문제
To Reproduce
Steps to reproduce the behavior:
1 . 데이터셋 생성 > 데이터플로우 생성 > wrangled dataset 생성 > wrangled dataset 편집 > 스냅샷 생성
2 . 스냅샷탭 활성화 > 룰 리스트 탭 활성화
3 . see error
Expected behavior
스냅샷 탭이 활성화되어있지 않으면 스냅샷 리스트를 불러오는 동작 Stop
Screenshots
Desktop (please complete the following information):
Additional context
Is your feature request related to a problem? Please describe.
현재, rule list의 끝에서만 add/edit/update를 할 수 있게 되어있습니다.
그런데, 일단 본 이슈에서는 edit/update에 대해서만 처리하고자 합니다. (UI 이슈)
Describe the solution you'd like
이제 중간에서도 add/edit/update를 할 수 있게 하고자 합니다.
Additional context
기존에 rule list 끝에서만 가능하게 했던 이유는 단지 구현의 단순함 때문이었습니다.
작업도 길어지고, 중간에 release branch도 바뀌어서,
너무 많은 conflict가 예상되기 때문에, add까지 처리하지 못하고, 일단 이슈를 merge하고 닫고자 합니다.
서버 구현은 add까지 모두 되어있습니다.
Is your feature request related to a problem? Please describe.
Snapshot 생성 중에 취소할 수 있는 기능이 없음.
Describe the solution you'd like
Snapshot 생성 취소 버튼을 만들어 선택 시 snapshot 생성이 중단 되도록 함.
Additional context
TeddyExcutor.applyRuleStrings 메소드에서 생성한 thread들을 jobList에 담아두고,
취소 요청이 왔을 때 해당 thread들을 cancel 처리해서 exception이 발생하도록 하여 전체 snapshot 생성을 취소처리 함.
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Additional context
Describe the bug
텍스트 위젯 편집시 일부 기능 오류가 발생합니다.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
색상이나, 폰트 설정이 리셋되지 않고 정상 동작 해야하며, Add Link 기능 적용되어야합니다.
Screenshots
동영상 파일은 내부 관리 이슈 METATRON-1121 내 참조
Desktop (please complete the following information):
Additional context
Describe the bug
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Desktop (please complete the following information):
<N/A>
Additional context
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Describe alternatives you've considered
None.
Additional context
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Describe alternatives you've considered
Additional context
Describe the bug
프리퍼레이션 화면에서 스냅샷을 생성하려고 시도하면 dp.alert.no.dataset 에러 발생.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
msg.dp.alet.no.dataset 에러 발생
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Describe alternatives you've considered
<N/A>
Additional context
<N/A>
Describe the bug
대시보드 생성 중 데이터 소스를 선택하는 목록 화면에 불필요한 라벨이 존재하여 제거가 필요합니다.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
데이터 소스 목록 상단에 "ingestion is limited to 1 million rows" 표시 제거
Screenshots
Desktop (please complete the following information):
Additional context
Is your feature request related to a problem? Please describe.
Github 리포지토리 최초 페이지에 대한 업데이트가 필요합니다.
Describe the solution you'd like
최초 페이지 구성에 대해 정의후 README.md 파일을 구성해주세요.
Describe alternatives you've considered
Additional context
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Describe alternatives you've considered
None.
Additional context
None.
Is your feature request related to a problem? Please describe.
스냅샷 생성 기능에 thread-safe 하지 못한 부분이 있어 동시에 여러개의 스냅샷을 생성하면 올바른 결과를 만들어내지 못함.
Describe the solution you'd like
TeddyExcutor.java 내의 snapshot 생성 관련 코드들을 thread-safe하게 변경.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
SSID와 관련된 변수들을 hash-map 형태로 관리하여 새로운 스냅샷을 생성할 때 변수들이 뒤섞이는 것을 방지.
Describe the bug
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Desktop (please complete the following information):
Additional context
Describe the bug
README 파일에 Apache Zeppline 으로 표기 된 것을 Apache Zepplin 으로 바꿔야 함
To Reproduce
Expected behavior
Screenshots
Desktop (please complete the following information):
Additional context
Describe the bug
hive 워크벤치에서 아래 쿼리를 실행할 때
dfs -ls /;
query 실행하는 라인 위에 공백이 잇는 상테어서 실행이 되면, 아래와 같은 에러 발생
org.apache.hive.service.cli.HiveSQLException: Error while processing statement: null
To Reproduce
Steps to reproduce the behavior:
Expected behavior
정상 쿼리 결과 출력
Screenshots
Desktop (please complete the following information):
Additional context
N/A
Is your feature request related to a problem? Please describe.
현재는 룰 리스트에 마지막 룰만 편집과 삭제할 수 있습니다.
이제는 모든 룰을 편집과 삭제할 수 있게 수정합니다.
Describe the solution you'd like
rule idx를 서버에 전달하여 룰 순서와 상관 없이 모든 룰을 편집, 삭제할 수 있게 수정합니다.
Describe alternatives you've considered
Additional context
Describe the bug
값 범위가 작은 경우 9색짜리 Gradient 로 했을 때 색 배분을 제대로 못하는 현상 발생
To Reproduce
다음 URL 참조
https://discovery.metatron.app/app/v2/workbook/57cad565-7616-40ba-a81d-a92fece63d99
Expected behavior
값 범위가 0 ~ 4 일 때 9색 Gradient 를 하면 0.4 씩으로 균등 배분을 기본으로 해주는 것이 맞을 것 같음
현재 테스트 결과 정수가 아닌 소수를 넣어도 잘 동작하고 있음
Desktop (please complete the following information):
demo site
Additional context
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Describe alternatives you've considered
Additional context
스냅샷 리스트에서도 진행 중인 스냅샷을 볼 수 있습니다
Describe the bug
특정 데이터 소스에서 샌키 차트가 제대로 표시되지 않습니다.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Sankey 차트가 조건에 의해 정상 표시되어야 합니다.
Desktop (please complete the following information):
Additional context
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Describe alternatives you've considered
Additional context
Is your feature request related to a problem? Please describe.
파이차트 내에서 표시할 항목이 많아 질경우 기존에는 2% 미만의 항목은 "other" 처리를 진행하였으나, 이에 대한 기준이 모호하여 개선이 필요합니다.
Describe the solution you'd like
기본은 모두 표시하는 것으로 하고, 사용자가 최대 표시할 개수를 지정하는 방향으로 진행합니다.
Describe alternatives you've considered
<N/A>
Additional context
<N/A>
Is your feature request related to a problem? Please describe.
Data Preparation에서 Window Function들을 추가로 지원합니다.
Describe the solution you'd like
'Window' Rule을 새롭게 추가하고, 필요한 기능들은 Fcuntion의 형태로 지원합니다.
Describe alternatives you've considered
Additional context
row_number, rank, rolling_sum, rolling_avg를 우선적으로 구현.
Is your feature request related to a problem? Please describe.
현재, WAS가 이중화 되어있는 경우 upload (import) 한 dataset의 내용을 찾을 수 없는 경우가 발생합니다.
Describe the solution you'd like
HDFS 연결이 가능한 경우 (이것을 체크하는 것도 일), HDFS 상의 특정 위치 (stagingBaseDir이면 될 듯)에 uploads와 previews를 저장하면 좋겠습니다.
Imported dataset의 내용을 읽을 필요가 있는 경우 (HDFS 연결이 가능한 경우) HDFS의 stagingBaseDir/uploads를 먼저 뒤지고, 거기에 없는 경우에 localBaseDir/uploads를 보면 좋겠습니다.
previews, snapshots도 마찬가지로 해야겠습니다.
Additional context
snapshot의 경우 애당초, HDFS로 완전 지정된 경우가 있어서 세심하게 잘 해줘야겠네요.
(HDFS 타입인 경우, stagingBaseDir에 없으면 없는 것으로. Local 파일 타입인 경우 localBaseDir도 보는 것으로)
Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Describe alternatives you've considered
None.
Additional context
None.
Is your feature request related to a problem? Please describe.
DB data를 ingestion 할때 DB가 metatron가 다른 네트워크 환경에 있는 경우 metatron에서 접속할 수 없는 경우가 대부분이다. 이 경우 DB 서버와 동일한 네트워크 구성에 있는 서버에 agent 를 실행하고 그 agent가 데이터를 전송하는 방식으로 ingestion 구성을 할 수 있다.
Describe the solution you'd like
Describe alternatives you've considered
None.
Additional context
None.
Is your feature request related to a problem? Please describe.
need query progress and log.
Describe the solution you'd like
add property to hive-site.xml
<!-- operation log -->
<property>
<name>hive.async.log.enabled</name>
<value>false</value>
</property>
/user/queue/workbench/{workbenchId}
CONNECT : already developed
DISCONNECT : already developed
LOG : relay log and progress
DONE : message when query executed.
{
"command" : "LOG", //command
"queryIndex" : 0, //order of query when execute queries.
"log" : [ //string array of log from hive
"Hive Log...",
"Hive Log..."
],
"progress" : { //Progress Information
"progress" : 60, //completed progress % (0~100)
"message" : "Map 1: 0/1 Map 4: 0(+1)/1 Reducer 2: 0/2 Reducer 3: 0/1"
}
}
{
"command" : "DONE", //command
"queryIndex" : 0 //order of query when execute queries.
}
Describe alternatives you've considered
N/A
Additional context
N/A
Describe the bug
The description is incorrect if you did not enter a password on the login page.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Please enter your password in English.
Desktop (please complete the following information):
Additional context
Describe the bug
시계열 차트에서 Prediction line 활성화 시 서버쪽에서 Unknown server error 발생함
To Reproduce
특정한 케이스에 발생한다고 보며 하단의 Prediction 시 오류 설정을 확인해 볼 필요가 있음.
Expected behavior
예측선이 그려져야 함
Desktop (please complete the following information):
https://discovery.metatron.app/app/v2/workbook/67cf1062-3fa8-453f-8be8-a737c7e67994
Additional context
Server log 참조
app.metatron.discovery.prep.parser.exception.UnknownServerException
at app.metatron.discovery.prep.parser.exception.GlobalExceptionHandler.handleAll(GlobalExceptionHandler.java:147)
at sun.reflect.GeneratedMethodAccessor2133.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver.doResolveHandlerMethodException(ExceptionHandlerExceptionResolver.java:384)
at org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver.doResolveException(AbstractHandlerMethodExceptionResolver.java:59)
at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:136)
at org.springframework.web.servlet.handler.HandlerExceptionResolverComposite.resolveException(HandlerExceptionResolverComposite.java:76)
at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1222)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1034)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at app.metatron.discovery.prep.parser.web.CommonLocalVariableFilter.doFilter(CommonLocalVariableFilter.java:58)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at app.metatron.discovery.prep.parser.web.LogbackMdcFilter.doFilter(LogbackMdcFilter.java:59)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:167)
at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:80)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at app.metatron.discovery.domain.datasource.data.result.PivotResultFormat.getAnalysisResult(PivotResultFormat.java:351)
at app.metatron.discovery.domain.datasource.data.result.PivotResultFormat.toResultSetByMatrixType(PivotResultFormat.java:291)
at app.metatron.discovery.domain.datasource.data.result.PivotResultFormat.makeResult(PivotResultFormat.java:197)
at app.metatron.discovery.domain.datasource.data.result.ChartResultFormat.makeResult(ChartResultFormat.java:126)
at app.metatron.discovery.domain.engine.EngineQueryService.search(EngineQueryService.java:286)
at app.metatron.discovery.domain.engine.EngineQueryService$$FastClassBySpringCGLIB$$f8f94d0e.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85)
at app.metatron.discovery.domain.engine.QueryServiceAspect.queryProcessing(QueryServiceAspect.java:90)
at sun.reflect.GeneratedMethodAccessor434.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
at app.metatron.discovery.domain.engine.EngineQueryService$$EnhancerBySpringCGLIB$$e9a314ca.search()
at app.metatron.discovery.domain.datasource.data.DataQueryController.searchQuery(DataQueryController.java:108)
at sun.reflect.GeneratedMethodAccessor766.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
... 88 more
Is your feature request related to a problem? Please describe.
chart zoom 배율을 변경 한 후에 minimap 의 on/off 상태를 바꾸면 배율이 리셋되는 현상이 있음
Describe the solution you'd like
minimap 옵션을 켜거나 끄더라도 chart zoom 배율은 그대로 있어야 함.
Describe alternatives you've considered
Additional context
Is your feature request related to a problem? Please describe.
Data source를 만들 때, (druid ingestion시) 즉석으로 data cleansing을 하고자 하는 요구가 있습니다.
Describe the solution you'd like
Dataprep 탭으로 이동하는 것이 아니라, 팝업을 띄워서, 처리하도록 지원할 예정입니다.
이를 위해, 이름없는 temporary dataset과 dataflow, snapshot을 만들고, 이것을 ingestion과 smooth하게 잇는 작업이 필요합니다.
Describe alternatives you've considered
Additional context
자세한 기획은 차후에 회의를 진행하여 정해질 것입니다.
Describe the bug
대시보드에서 2번의 차트 선택 후 마지막 차트의 선택을 취소하면 상단의 모든 필터가 사라지나 필터는 남아 있음
To Reproduce
Steps to reproduce the behavior:
다음 URL 에 접속해서 스크린샷 순서 대로 진행한다.
https://discovery.metatron.app/app/v2/workbook/57cad565-7616-40ba-a81d-a92fece63d99
Expected behavior
첫번째 필터가 남아 있어야 함
Screenshots
Desktop (please complete the following information):
데모 사이트
Additional context
Add any other context about the problem here.
Is your feature request related to a problem? Please describe.
현재 /preparationdatasets/{dsId}/transform/configuration GET이 SS_TYPE.FILE에 대해서만 사용이 되는데,
이것이 snapshot 생성 옵션 제한에도 사용되었으면 좋겠습니다.
Describe the solution you'd like
스냅샷 생성 팝업 화면에서,
SS_TYPE.HDFS 스냅샷을 만들 수 있는지 여부,
SS_TYPE.HIVE 스냅샷을 만들 수 있는지 여부
등을 알기 위해서 사용이 되면 좋을 것 같네요.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
HDFS 상에 실제로 write를 할 수 있는 상태인지, 또는 Hive schema가 실제로 조회되는 상태인지로 판단하는 것이 아니라, 관련한 "설정이 되어있는지"로 판단해야할 것 같습니다.
설정을 했음에도 불구하고 에러가 나는 것은 런타임 에러로 처리가 되는 것이 맞습니다.
차후 이러한 경우에 대한 방비가 필요하다면 다른 방식으로 보완하는 것이 좋겠습니다.일단 기본적으로는 application.yaml에 설정을 했는지 여부로 진행을 해주세요.
Describe the bug
I changed the password of the demo site administrator.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I thought the admin password would not be changed.
Screenshots
N/A
Desktop (please complete the following information):
Additional context
I didn't think the admin password would be changed on the demo site, but I don't think it's a good strategy to put conditional statements in order to ensure that only the demo site doesn't change the password.
I think it is the right thing to periodically reset the admin password through cron on the server.
This is a problem that can only occur on demo sites.
The admin password I changed is "admin!@#1234".
Describe the bug
워크스페이스에서 데이터소스 보기 Pane 에서 특정 데이터소스를 선택하고 상세보기를 누르면 javascript 에러가 발생함
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Desktop (please complete the following information):
Demo site
Additional context
다음과 같은 스크립트 오류 발생
ERROR TypeError: Cannot read property 'instance' of undefined
at Object.dn (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at Object.handleEvent (/resource/0.222cdc2ca9f966e93183.chunk.js:1)
at Object.M [as handleEvent] (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at Object.handleEvent (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at it (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at vendor.eed11a3ba70949cd4f9a.bundle.js:1
at HTMLDocument. (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at e.invokeTask (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at Object.onInvokeTask (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at e.invokeTask (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
M @ vendor.eed11a3ba70949cd4f9a.bundle.js:1
8vendor.eed11a3ba70949cd4f9a.bundle.js:1 ERROR Error: No provider for l!
at k (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at T (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at e._throwOrNull (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at e._getByKeyDefault (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at e._getByKey (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at e.get (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at Vt (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at e.get (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at Vt (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
at e.get (vendor.eed11a3ba70949cd4f9a.bundle.js:1)
Describe the bug
라인 차트로 차트를 그린 후에 색상 모드를 measure 로 하고 이 후 crossing point 값을 최저값에 근접하게 그리면 전체 색깔이 지정된 값 범위에 맞게 동작하지 않음.
추가적으로 areachart 에서 색 분배시 최소값과 최대값을 기준으로 색 분배가 맞는지 고려가 필요함. 개인적인 생각으로 최소값은 Crossing line 값과 최소값 중 작은 것을 선택하는 것이 맞을 것 같음.
To Reproduce
Steps to reproduce the behavior:
다음 url 참조 : https://discovery.metatron.app/app/v2/workbook/67cf1062-3fa8-453f-8be8-a737c7e67994
Expected behavior
색은 정의된 값의 범위에 맞게 처리되야 한다.
Desktop (please complete the following information):
demo site
Additional context
Add any other context about the problem here.
Describe the bug
원본데이터(차트/데이터소스 보기내) 다운로드 수행시 다운로드가 되지 않고 로딩이미지만 발생합니다.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Screenshots
Desktop (please complete the following information):
Additional context
Describe the bug
Color setting 을 커스텀으로 바꾸고 스크린샷처럼 0의 값을 흰색으로 지정하려 하나 0을 지정할 수 없음.
To Reproduce
Expected behavior
Desktop (please complete the following information):
http://52.231.184.135:8185/
Additional context
Is your feature request related to a problem? Please describe.
Association 단계는 main data source 에게만 허용되는 단계이므로 레이블을 바꾸는 것이 괜찮을 것 같음
Describe the solution you'd like
main data source 해당 하는 레이블을 개발하고(예: Tableau 에서는 Supersotre 라는 용어를 사용함)
"You need to establish relationships between data sources so that you can link charts" 이 문구에서 data sources 앞에 main 을 붙이거나 그에 준하는 레이블로 변경이 필요함
Describe alternatives you've considered
Describe the bug
FILE type snapshot이 나오지 않습니다.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Snapshot이 잘 생성되고, 내용을 읽을 수 있어야 함
Desktop (please complete the following information):
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.