onaio.superset
Superset
この役割を使って、Apache Supersetをインストール、設定、管理します。
デフォルトではSupersetのバージョン0.28.1がインストールされます。別のバージョンをインストールするには、superset_version
変数を設定してください。
役割の変数
superset_python_executable
: Supersetをインストールする際に使用するPythonバイナリを指定します。この役割は現在python2.7
とpython3.6
をサポートしています。
superset_recreate_virtualenv
: SupersetがインストールされているPythonの仮想環境を再作成したい場合は、True
に設定します。
この役割では、supersetユーザーとデータベースを作成します。データベースホストに接続するためには、次の設定を行ってください:
superset_postgres_db_host
: データベースホストsuperset_postgres_login_user
: Supersetデータベースとユーザーを作成するために使用するPostgresユーザーsuperset_postgres_login_password
: Supersetデータベースとユーザーを作成するために使用するPostgresユーザーのパスワードsuperset_postgres_db_name
: Supersetが使用するデータベース名(作成されます)superset_postgres_db_user
: SupersetのPostgresユーザー名(作成されます)superset_postgres_db_pass
: SupersetのPostgresユーザーパスワードsuperset_pgpass_credentials
: パスワードなしで接続するために使用されるデータベース資格情報のリスト、フォーマットはhostname:port:database:username:password
です。
その他のデフォルト変数は以下に示します
# 変更後にSupersetを再起動するかどうか; デフォルトはTrue、クラスターの場合は無効にすることを推奨
superset_perform_restart: True
利用可能な言語
利用可能な言語とそのラベルを管理します。
supeset_languages:
- key: en
flag: us
name: 英語
- key: ja
flag: jp
name: 日本語
デフォルトは利用可能な言語のサブセットです。現在のSupersetリリースの/translations
フォルダーを確認して、他に利用可能な言語を確認してください。
認証バックエンド
Supersetのユーザーの認証バックエンドを設定できます。デフォルトは
superset_auth_type: AUTH_DB
SupersetのDBを使用してユーザーを管理します。現在のところ、AUTH_OAUTH
タイプの設定オプションのみがサポートされています。
その認証タイプを選択した場合は、次のように追加の設定詳細を提供できます。
superset_oauth_providers:
- name:
icon:
token_key:
consumer_key:
consumer_secret:
base_url:
request_token_params:
request_token_url:
access_token_url:
authorize_url:
access_token_method:
access_token_params:
access_token_headers:
custom_redirect_url:
ここで、request_token_params
が提供されている場合はJSONオブジェクトです。request_token_params
、consumer_key
、consumer_secret
を除くすべての値は引用符でレンダリングされます。通常、consumer_key
とconsumer_secret
は環境変数を取得するように設定します。例:os.environ.get('OAUTH2_CLIENT_SECRET')
。
サービスのために環境変数を設定するには、次のようにします。
superset_service_env_vars:
OAUTH2_CLIENT_SECRET: THE_SECRET
一部のoAuthプロバイダー(例:
onadata
)は、request_token_url
、access_token_url
、authorize_url
がすべて/
文字で終了する必要があります。
ホワイトラベリング
この役割では、Supersetのアプリ名や「ブランディング画像」を変更することで、ホワイトラベリングを行うことができます。変更できるものは以下の通りです:
- ファビコン:
favicon.png
- ロゴ:
superset.png
- 2倍のロゴ:
[email protected]
これらの画像のファイルサイズと寸法は、置き換える画像にできるだけ近いものであるべきです。画像はSupersetのstatic/images
ディレクトリにあります。
ホワイトラベリングを有効にするには、この変数をTrueに設定します:
superset_white_label: True
アプリ名の変更
superset_app_name: 'My App'
ブランディングを変更するためにファイルを使用
次の変数を設定することでファイルを使用できます。
superset_white_label_use_filepaths: True
superset_favicon_path: "/path-to-/favicon.png"
superset_logo_path: "/path-to-/superset.png"
superset_2x_logo_path: "/path-to-/[email protected]"
Base64エンコードされた画像を使用してブランディングを変更
ファイルを扱う手間を避けるために、次の変数を設定してBase64エンコードされた画像を使用できます。
superset_white_label_use_base64: True
superset_favicon_base64: "base64エンコードされたファビコン"
superset_logo_base64: "base64エンコードされたロゴ"
superset_2x_logo_base64: "base64エンコードされた2倍のロゴ"
アセットのアップロード
デフォルトでSupersetはデータアップロードのために次の拡張機能を有効にします:
superset_allowed_extensions:
- csv
サポートされる拡張機能のリストは、Supersetのconfig.pyのALLOWED_EXTENSIONS
設定を確認してください。
画像とデータファイル(データインポート拡張機能で使用)のアップロードディレクトリは次のように設定されています:
superset_img_upload_dir: "{{ superset_home }}/images/"
superset_upload_dir: "{{ superset_home }}/uploads/"
JSONリミットの変更
この値を修正して、Supersetダッシュボードの位置JSONデータリミットを増やします。デフォルトは2^16に設定されています。以下の例では2^24に増やします。
superset_dashboard_position_data_limit: 16777216
Superset-patchup (ketchup)
この役割ではSuperset-patchupをオプションで含めることができます。次のように設定します:
superset_use_ketchup: True
superset_ketchup_version: "v0.1.0"
Superset-patchupは、Supersetにさらなる機能を追加し、強化します。このプロジェクトについての詳細は、Superset-patchupドキュメントを参照してください。
この警告を含むAnsible-supersetバインディングのバージョンは、Superset-patchup v0.1.6以上とのみ互換性があります(初期化ロジックが変更されたため)。
Supersetキャッシング
Supersetでキャッシングを有効にするためには、Flask-Cacheの仕様に準拠したCACHE_CONFIG
と、キャッシュのウォームアップ期間を決定するCACHE_DEFAULT_TIMEOUT
を提供します。
superset_enable_cache: True
superset_cache_config: |
{
'CACHE_TYPE': 'redis',
'CACHE_KEY_PREFIX': 'superset_results',
'CACHE_REDIS_URL': 'redis://localhost:6379/0'
}
superset_cache_default_timeout: 60 * 60 * 24, # 1日
キャッシュの定期的なウォームアップを許可するために、SupersetのCeleryタスクを好みのウォームアップ戦略で構成します。Celerybeatを有効にし、次のように辞書を設定します。
superset_enable_celerybeat: True
superset_celerybeat_schedule: |
{
'cache-warmup-hourly': {
'task': 'cache-warmup',
'schedule': crontab(minute=0, hour='*'), # 毎時
'kwargs': {
'strategy_name': 'top_n_dashboards',
'top_n': 5,
'since': '7日前',
},
},
}
テスト
このプロジェクトにはVagrantfileが付属しています。これは役割の変更をテストするための簡単で高速な方法です。vagrant up
で起動できます。
Vagrantの設定については、Vagrantのドキュメントを参照してください。
ライセンス
Apache 2