git clone https://github.com/apache/superset.git
cd superset
git checkout 3.1.0rc1
#SUPERSET_SECRET_KEY 생성
openssl rand -base64 42
#아래 파일을 열어 아래 키들을 세팅
#SUPERSET_SECRET_KEY=
#MAPBOX_API_KEY=
vi docker/.env-non-dev
#Port변경
# superset: 아래 ports: 변경 (port 충돌시)
#
lsof -i :8088
lsof -i :18088
vi docker-compose-non-dev.yml
TAG=3.1.0rc1 docker compose -f docker-compose-non-dev.yml pull
TAG=3.1.0rc1 docker compose -f docker-compose-non-dev.yml up
SHOW timezone;
Name |Value |
--------+----------+
TimeZone|Asia/Seoul|
ALTER ROLE supersetuser SET timezone TO 'Asia/Seoul';
아래와 같이 superset container에 timezone설정후 superset_app container를 재시작한다.
root@0c21664242bd:/app# docker exec -it 0c21664242bd bash
root@0c21664242bd:/app# cat /etc/timezone
Etc/UTC
root@0c21664242bd:/app# echo "Asia/Seoul" > /etc/timezone
root@0c21664242bd:/app# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
root@0c21664242bd:/app# cat /etc/timezone
Asia/Seoul
설정된 timezone에 superset webapp에도 제대로 적용되는 지를 확인하려면 날짜나 타임스탬프 필드의 filter 세팅팝업에서 Range type을 custom으로 넣고 END field를 Now로 선택할 때 Actual time range의 종료시각이 superset_app에 방금 세팅한 타임존의 시각인지로 판별한다.
ValueError: Invalid decryption key
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x85 in position 2: invalid start byte
- https://github.com/apache/superset/issues?q=is%3Aissue+is%3Aopen+ValueError%3A+Invalid+decryption+key
- https://github.com/apache/superset/issues/8538
- 다음의 명령어 실행으로 해결
docker-compose down -v
Error:
prophet
package not installed
1. 컨테이너에 직접 설치하기docker ps -a | grep superset_app # superset_app 컨테이너에 prophet 설치 docker exec -it f0fd7acb6666 bash pip install prophet
- Dockerfile에 사전 설치 스크립트 넣어두기
RUN pip install prophet
Data가 준비된 Postgresql에 superset에서 연결할 계정 생성
-- 특정 스키마에만 접근하는 사용자 생성
CREATE USER supersetuser WITH PASSWORD 'password123';
-- da 스키마에 대한 사용 권한 부여
GRANT USAGE ON SCHEMA da TO supersetuser;
-- da 스키마의 모든 현재 테이블에 대한 SELECT 권한 부여
GRANT SELECT ON ALL TABLES IN SCHEMA da TO supersetuser;
ALTER USER supersetuser SET search_path TO da;
-- da 스키마의 모든 미래 테이블에 대한 SELECT 권한 자동 부여
ALTER DEFAULT PRIVILEGES IN SCHEMA da GRANT SELECT ON TABLES TO supersetuser;
- preset의 자료 활용 : https://docs.preset.io/docs/preset-vs-superset
- chatgpt로 일반적인 지식 Q&A가능하며 최신 버전에 대한 내용을 잘 대답함.
Superset에서 기여도 모드를 사용할 때, "None", "Row", "Series"라는 세 가지 옵션이 시각화에서 기여도가 어떻게 계산되고 표시될지를 결정. 분석에서 데이터의 어떤 측면을 강조하고 싶은지에 따라 달라짐
None (없음):
이 옵션은 기여도 모드가 적용되지 않음을 의미. 시각화는 실제 값을 기여도나 백분율로 변환하지 않고 그대로 표시. 원시 데이터 값에 관심이 있을 때 이 옵션을 사용.
Row (행):
"Row"를 선택하면 각 데이터 포인트의 기여도가 해당 행의 전체에 대한 백분율로 계산됨. 데이터 테이블이 있고 각 요소가 행의 총합에 어떻게 기여하는지 보고 싶을 때 유용합. 예를 들어, 여러 지역에 걸친 다양한 제품의 매출 데이터가 있다면 "Row"를 선택하면 각 제품이 각 지역의 총 매출에 기여하는 정도를 보여줌.
Series (시리즈):
"Series"를 선택하면 각 데이터 포인트의 기여도가 해당 시리즈 또는 카테고리의 총합에 대한 백분율로 계산. 이 옵션은 시계열 데이터나 다양한 차원에서 카테고리를 비교할 때 자주 사용됨. 예를 들어, 여러 해에 걸친 월별 매출 데이터가 있다면 "Series"를 선택하면 각 월의 매출이 그 해의 총 매출에 어떻게 기여하는지 보여줌.
시간 간격 변경: resample을 사용하면 데이터를 다양한 시간 간격(예: 분, 시간, 일, 주, 월 등)으로 변경할 수 있습니다. 예를 들어, 일별 데이터를 월별 데이터로 집계하는 것과 같은 작업이 가능.
집계 연산: resample 후에는 sum(), mean(), median(), count() 등과 같은 표준 집계 함수를 적용하여, 각 시간 간격에 해당하는 데이터의 합계, 평균, 중앙값, 개수 등을 계산.
다운샘플링과 업샘플링:
TBD