onaio.superset

Superset

Utiliza este rol para instalar, configurar y gestionar Apache Superset.

Por defecto, se instala la versión 0.28.1 de Superset. Para instalar una versión diferente, configura la variable superset_version.

Variables del Rol

superset_python_executable: Especifica qué binario de Python utilizar para instalar Superset. El rol actualmente admite python2.7 y python3.6.

superset_recreate_virtualenv: Configura como True si deseas que el rol recree el entorno virtual de Python donde se instala Superset.

Este rol crea un usuario y una base de datos para Superset. Para conectarte al host de la base de datos, configura:

  • superset_postgres_db_host: El host de la base de datos
  • superset_postgres_login_user: El usuario de Postgres utilizado para crear la base de datos y el usuario de Superset
  • superset_postgres_login_password: la contraseña del usuario de Postgres utilizado para crear la base de datos y el usuario de Superset
  • superset_postgres_db_name: El nombre de la base de datos de Superset (que se creará). Esta es la base de datos que usará Superset.
  • superset_postgres_db_user: Nombre de usuario de Postgres para Superset (que se creará)
  • superset_postgres_db_pass: Contraseña del usuario de Postgres para Superset
  • superset_pgpass_credentials: Una lista de credenciales de la base de datos que se usarán para conexiones sin contraseña en el formato hostname:port:database:username:password.

Otras variables por defecto se enumeran a continuación

# si reiniciar Superset después de hacer cambios; el valor por defecto es True, para un clúster puede que desees deshabilitar
superset_perform_restart: True

Idiomas disponibles

Esto te permite controlar qué idiomas están disponibles y cómo se etiquetan.

supeset_languages:
  - key: en
    flag: us
    name: Inglés
  - key: ja
    flag: jp
    name: Japonés

El valor por defecto es un subconjunto de los idiomas totales disponibles, revisa la carpeta /translations de la versión actual de Superset para ver qué otros idiomas están disponibles.

Métodos de Autenticación

Esto te permite configurar qué backend de autenticación utilizan los usuarios de Superset. El por defecto

superset_auth_type: AUTH_DB

usa Superset en la base de datos para gestionar usuarios. Actualmente, las opciones de configuración solo son compatibles con el tipo AUTH_OAUTH.

Si seleccionaste ese tipo de autenticación, puedes proporcionar detalles de configuración adicionales con

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:

donde request_token_params, si se proporciona, es un objeto JSON. Todos los valores excepto request_token_params, consumer_key y consumer_secret se muestran entre comillas. Normalmente configurarías consumer_key y consumer_secret para recuperar variables de entorno, por ejemplo, os.environ.get('OAUTH2_CLIENT_SECRET').

Puedes establecer tus variables de entorno para el servicio usando:

superset_service_env_vars:
  OAUTH2_CLIENT_SECRET: EL_SECRETO

Ten en cuenta que algunos proveedores de oAuth como onadata requieren que request_token_url, access_token_url y authorize_url terminen con un carácter /.

Rebranding

Este rol te permite hacer un rebranding de Superset permitiéndote cambiar el nombre de la aplicación Superset y las 'imágenes de marca', que son:

Los tamaños de archivo y dimensiones de estas imágenes deben ser lo más cercanas posible a las imágenes que estamos reemplazando, que se pueden encontrar en el directorio static/images de Superset.

Activa el rebranding configurando esta variable como True:

superset_white_label: True

Cambiar el Nombre de la App

superset_app_name: 'Mi App'

Usar archivos para cambiar la marca

Puedes utilizar archivos configurando las siguientes variables.

superset_white_label_use_filepaths: True
superset_favicon_path: "/ruta-a-/favicon.png"
superset_logo_path: "/ruta-a-/superset.png"
superset_2x_logo_path: "/ruta-a-/[email protected]"

Usar imágenes codificadas en base64 para cambiar la marca

Para evitar problemas con los archivos, puedes usar imágenes codificadas en base64 configurando las siguientes variables.

superset_white_label_use_base64: True
superset_favicon_base64: "favicon codificado en base64"
superset_logo_base64: "logo codificado en base64"
superset_2x_logo_base64: "logo 2x codificado en base64"

Carga de Activos

Superset, por defecto, activará las siguientes extensiones para cargas de datos:

superset_allowed_extensions:
  - csv

Revisa la configuración ALLOWED_EXTENSIONS en el config.py de Superset para ver la lista de extensiones soportadas.

Los directorios de carga de imágenes y archivos de datos (que se usarán por las extensiones de importación de datos) están configurados en:

superset_img_upload_dir: "{{ superset_home }}/images/"
superset_upload_dir: "{{ superset_home }}/uploads/"

Modificar el Límite de JSON

Modifica este valor para aumentar el límite de datos JSON de la posición del dashboard de Superset. Por defecto, esto está configurado en 2^16, en el siguiente ejemplo lo aumentamos a 2^24.

superset_dashboard_position_data_limit: 16777216

Superset-patchup (ketchup)

Este rol se puede configurar opcionalmente para incluir Superset-patchup, haciéndolo de esta manera:

superset_use_ketchup: True
superset_ketchup_version: "v0.1.0"

Superset-patchup mejora Superset agregando más características. Puedes leer más sobre este proyecto aquí: Documentación de Superset-patchup

Ten en cuenta que las versiones de las bindings de ansible-superset que incluyen esta advertencia son compatibles solo con superset-patchup v0.1.6 y superiores (debido a la lógica de inicialización modificada).

Caching en Superset

Para habilitar caching en Superset, proporciona CACHE_CONFIG que cumpla con las especificaciones de Flask-Cache y CACHE_DEFAULT_TIMEOUT que determina el período de calentamiento del caché.

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 día

Para permitir el calentamiento periódico del caché, configura la tarea de celery de Superset con la estrategia de calentamiento preferida. Habilita celerybeat y configura su diccionario así:

superset_enable_celerybeat: True
superset_celerybeat_schedule: |
  {
    'cache-warmup-hourly': {
      'task': 'cache-warmup',
      'schedule': crontab(minute=0, hour='*'),  # cada hora
      'kwargs': {
          'strategy_name': 'top_n_dashboards',
          'top_n': 5,
          'since': 'hace 7 días',
      },
    },
  }

Pruebas

Este proyecto viene con un Vagrantfile, esta es una forma rápida y fácil de probar cambios en el rol, inícialo con vagrant up.

Consulta documentación de vagrant para configurarte con vagrant.

Licencia

Apache 2

Autores

Ona Engineering

Acerca del proyecto

This role is used to install and configure Apache Superset

Instalar
ansible-galaxy install onaio.superset
Licencia
bsd-2-clause
Descargas
139
Propietario