슈퍼 세트 배포
Overview
기존 시스템의 데이터베이스에 액세스할 때까지(MySQL)
Environment
superset : 0.20.4
OS : Ubuntu Xenial
DB : MySQL 5.7.19
Python : 2.7.12
Installation
공식 문서에 따라 모바일 슈퍼셋에 필요한 패키지를 먼저 설치합니다.
Ubuntu의 경우sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev
문서에서 virtual env 를 사용했지만 이번에는 슈퍼셋용 가상 머신 실례를 준비했기 때문에 이 절차를 생략했다.
슈퍼셋 자체는 pip로 간단하게 설치할 수 있습니다.
https://superset.incubator.apache.org/installation.html#superset-installation-and-initialization
Superset runserver 명령을 실행할 때 기본적으로 8088 포트에서 Superset을 시작합니다.
http://127.0.0.1:8088 fabmanager create-admin --app superset
이 명령으로 만든 사용자가 로그인하면 잠시 완료됩니다.
Settings
상술한 방법을 통해 슈퍼세트 설치를 마쳤지만 실제 운용할 때 다음과 같은 변경을 하고 싶습니다.
superset : 0.20.4
OS : Ubuntu Xenial
DB : MySQL 5.7.19
Python : 2.7.12
Installation
공식 문서에 따라 모바일 슈퍼셋에 필요한 패키지를 먼저 설치합니다.
Ubuntu의 경우sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev
문서에서 virtual env 를 사용했지만 이번에는 슈퍼셋용 가상 머신 실례를 준비했기 때문에 이 절차를 생략했다.
슈퍼셋 자체는 pip로 간단하게 설치할 수 있습니다.
https://superset.incubator.apache.org/installation.html#superset-installation-and-initialization
Superset runserver 명령을 실행할 때 기본적으로 8088 포트에서 Superset을 시작합니다.
http://127.0.0.1:8088 fabmanager create-admin --app superset
이 명령으로 만든 사용자가 로그인하면 잠시 완료됩니다.
Settings
상술한 방법을 통해 슈퍼세트 설치를 마쳤지만 실제 운용할 때 다음과 같은 변경을 하고 싶습니다.
sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev
fabmanager create-admin --app superset
상술한 방법을 통해 슈퍼세트 설치를 마쳤지만 실제 운용할 때 다음과 같은 변경을 하고 싶습니다.
슈퍼셋에서 사용하는 데이터베이스를 sqlite에서 mysql로 변경
superset_config.py 만들기
cd /usr/local/lib/python2.7/dist-packages/superset # 環境によって異なります
touch superset_config.py
superset_config.py에 기록된 레코드 예제를 복사하여 SQLALCHEMY_DATABASE_URI 항목을 대상으로 변경합니다.기재 방법은
mysql://dbuser:dbpass@hostname/dbname
.연결 위치를 변경한 후 관리자 사용자와 데이터베이스 마이그레이션을 다시 수행합니다.
fabmanager create-admin --app superset
superset db upgrade
superset init
mysql에서 데이터베이스 문자 인코딩을utf8mb4로 설정하면supersetdbupgrade를 실행할 때 다음과 같은 오류가 발생하여 이전을 정상적으로 완성할 수 없습니다sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1071, 'Specified key was too long; max key length is 767 bytes') [SQL: u'\nCREATE TABLE clusters (\n\tcreated_on DATETIME NOT NULL, \n\tchanged_on DATETIME NOT NULL, \n\tid INTEGER NOT NULL AUTO_INCREMENT, \n\tcluster_name VARCHAR(250), \n\tcoordinator_host VARCHAR(255), \n\tcoordinator_port INTEGER, \n\tcoordinator_endpoint VARCHAR(255), \n\tbroker_host VARCHAR(255), \n\tbroker_port INTEGER, \n\tbroker_endpoint VARCHAR(255), \n\tmetadata_last_refreshed DATETIME, \n\tcreated_by_fk INTEGER, \n\tchanged_by_fk INTEGER, \n\tPRIMARY KEY (id), \n\tUNIQUE (cluster_name), \n\tFOREIGN KEY(created_by_fk) REFERENCES ab_user (id), \n\tFOREIGN KEY(changed_by_fk) REFERENCES ab_user (id)\n)\n\n']
"Specified key was too long; max key length is767bytes"에서 말한 바와 같이 키는 최대 767byte만 사용할 수 있습니다.PRIMARY 또는 UNIQUE에 대한 열이 varchar(256)로 설정된 경우 utf8에서도 같은 오류가 발생합니다.
이 경우 UNIQUE가 설정된 cluster_name 및 verbose_name의 varchar(250)가 걸린 것으로 여겨지기 때문에 이를 varchar(191) 등으로 변경하면 이전 자체가 정상적으로 완료됩니다.
그러나 소프트웨어의 동작 &superset에서 그림 문자와 같은 4바이트 문자를 사용하지 않을 수 있으므로 데이터베이스 문자 인코딩을utf8로 성실하게 변경하세요.
데이터 소스 추가
웹 페이지에 데이터 원본을 추가합니다.
공식 문서
SQLALchemy URI의 항목은 위 표식과 같습니다.
테스트 연결은 정상적으로 진행될 수 있지만 "This endpoint requires the datasource database_name, database or all_datasource_access permission" 으로 표시되며 내용을 표시하지 않습니다.
로그인한 사용자에게admin role를 주었기 때문에 처음에는 원인을 알 수 없지만 데이터베이스에 개별적인 권한을 주어야 할 것 같습니다.
또한 공식 문서에 라고 불리는 롤은 모든 데이터 원본에 대한 접근 권한을 가지고 있지만 내 환경에서는admin과public만 미리 준비되어 있다.
이번에는 슈퍼셋의 사용 목적이 결정돼 실행되지 않았지만 실행
superset load_examples
하면 제작될 수 있다.데몬으로 시작하고 싶어요.
superset runserver
명령은 데몬 프로세스에서 시작하는 옵션을 제공하지 않습니다.위 명령을 실행할 때
gunicorn -w 2 --timeout 60 -b 0.0.0.0:8088 --limit-request-line 0 --limit-request-field_size 0 superset:app
의 명령.따라서superset의 루트 디렉터리에 상기gunicorn 명령에 "-D"옵션을 추가하고 실행하면 수호 프로그램으로superset을 시작할 수 있습니다.
cd /usr/local/lib/python2.7/dist-packages/superset # 環境によって異なります
gunicorn -w 2 --timeout 60 -b 0.0.0.0:8088 --limit-request-line 0 --limit-request-field_size 0 superset:app -D
Reference
이 문제에 관하여(슈퍼 세트 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hermannsw/items/e6bd88a700834ee1bd2a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)