当前位置: 首页 > news >正文

superset_config.py 配置文件的参数详解

1. 基础配置

# 基础安全配置
SECRET_KEY = 'your-secret-key-here'  # 必须更改,用于加密会话
AUTH_TYPE = AUTH_DB  # 认证类型:AUTH_DB, AUTH_OID, AUTH_OAUTH等# 数据库连接
SQLALCHEMY_DATABASE_URI = 'postgresql://username:password@localhost/superset'
SQLALCHEMY_TRACK_MODIFICATIONS = False# 功能开关
ENABLE_PROXY_HEADERS = True  # 启用代理头部
ENABLE_CORS = True  # 启用跨域
CORS_OPTIONS = {'supports_credentials': True,'allow_headers': ['*'],'resources': ['*'],'origins': ['http://localhost:8080']
}

2. 元数据数据库配置

# Superset 元数据数据库
DATABASE_DIALECTS = {'postgresql': 'psycopg2','mysql': 'mysqlclient','presto': 'pyhive','hive': 'pyhive','oracle': 'cx_oracle'
}# 连接池配置
SQLALCHEMY_POOL_SIZE = 5
SQLALCHEMY_MAX_OVERFLOW = 10
SQLALCHEMY_POOL_TIMEOUT = 30
SQLALCHEMY_POOL_RECYCLE = 3600  # 连接回收时间(秒)

3. 缓存配置

# Redis 缓存
CACHE_CONFIG = {'CACHE_TYPE': 'RedisCache','CACHE_DEFAULT_TIMEOUT': 300,'CACHE_KEY_PREFIX': 'superset_','CACHE_REDIS_HOST': 'localhost','CACHE_REDIS_PORT': 6379,'CACHE_REDIS_DB': 0,'CACHE_REDIS_URL': 'redis://localhost:6379/0'
}# 结果后端缓存
DATA_CACHE_CONFIG = {'CACHE_TYPE': 'RedisCache','CACHE_DEFAULT_TIMEOUT': 300,'CACHE_KEY_PREFIX': 'data_','CACHE_REDIS_URL': 'redis://localhost:6379/1'
}# 过滤器状态缓存
FILTER_STATE_CACHE_CONFIG = {'CACHE_TYPE': 'RedisCache', 'CACHE_DEFAULT_TIMEOUT': 86400,'CACHE_KEY_PREFIX': 'filter_','CACHE_REDIS_URL': 'redis://localhost:6379/2'
}# 探索表单状态缓存
EXPLORE_FORM_DATA_CACHE_CONFIG = {'CACHE_TYPE': 'RedisCache','CACHE_DEFAULT_TIMEOUT': 86400,'CACHE_KEY_PREFIX': 'explore_','CACHE_REDIS_URL': 'redis://localhost:6379/3'
}

4. 功能特性开关

FEATURE_FLAGS = {# 仪表板相关"DASHBOARD_CACHE": True,  # 仪表板缓存"DASHBOARD_RBAC": True,   # 基于角色的仪表板访问控制"DASHBOARD_NATIVE_FILTERS": True,  # 启用原生过滤器"DASHBOARD_CROSS_FILTERS": True,   # 启用交叉过滤# 数据探索相关"ENABLE_TEMPLATE_PROCESSING": True,  # Jinja2模板处理"ENABLE_EXPLORE_JSON_CSRF_PROTECTION": True,  # CSRF保护"ENABLE_ADVANCED_DATA_TYPES": True,  # 高级数据类型# 安全相关"ALERT_REPORTS": True,  # 警报报告"ROW_LEVEL_SECURITY": True,  # 行级安全"ALLOW_FULL_CSV_EXPORT": True,  # 允许完整CSV导出# 实验性功能"ESCAPE_MARKDOWN_HTML": True,  # Markdown HTML转义"DISPLAY_MARKDOWN_HTML": True,  # 显示Markdown HTML"VERSIONED_EXPORT": True,  # 版本化导出# 性能优化"PRESTO_EXPAND_DATA": False,  # Presto数据展开"GENERIC_CHART_AXES": True,   # 通用图表轴
}

5. 安全配置

# 认证和授权
AUTH_ROLE_ADMIN = 'Admin'  # 管理员角色名
AUTH_ROLE_PUBLIC = 'Public'  # 公共角色名# 行级安全
ROW_LEVEL_SECURITY = True# CSRF保护
WTF_CSRF_ENABLED = True
WTF_CSRF_TIME_LIMIT = 3600# 会话配置
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_SECURE = True  # 生产环境启用
PERMANENT_SESSION_LIFETIME = 86400  # 会话有效期(秒)

6. 邮件配置

# 邮件服务器配置
ENABLE_EMAIL = True
EMAIL_NOTIFICATIONS = TrueSMTP_HOST = 'smtp.gmail.com'
SMTP_STARTTLS = True
SMTP_SSL = False
SMTP_USER = 'your-email@gmail.com'
SMTP_PORT = 587
SMTP_PASSWORD = 'your-password'
SMTP_MAIL_FROM = 'your-email@gmail.com'# 警报报告配置
ALERT_REPORTS_CRON_TIME = '0 * * * *'  # 每小时执行

7. 数据库连接配置

# 预配置数据库连接示例
PRE_CONFIGURED_DATABASES = {'production_pg': {'sqlalchemy_uri': 'postgresql://user:pass@localhost/prod_db','display_name': '生产PostgreSQL'},'analytics_mysql': {'sqlalchemy_uri': 'mysql://user:pass@localhost/analytics','display_name': '分析MySQL'}
}# 查询限制
QUERY_TIMEOUT = 600  # 查询超时时间(秒)
SQLLAB_QUERY_COST_ESTIMATE_TIMEOUT = 300
SQLLAB_VALIDATION_TIMEOUT = 300
SUPERSET_WEBSERVER_TIMEOUT = 300

8. SQL Lab 配置

# SQL Lab 设置
SQLLAB_CTAS_NO_LIMIT = True  # CTAS查询无限制
SQLLAB_BACKEND_PERSISTENCE = True  # 后端持久化
SQLLAB_ASYNC_TIME_LIMIT_SEC = 300  # 异步查询时间限制# 查询结果限制
DISPLAY_MAX_ROW = 100000  # 显示最大行数
SQL_MAX_ROW = 100000  # SQL返回最大行数
SQLLAB_LIMIT = 1000  # SQL Lab默认限制# 自动完成
DISABLE_SQL_VALIDATION = False  # 禁用SQL验证
SCHEDULED_QUERIES = True  # 计划查询

9. 国际化配置

# 语言和区域设置
BABEL_DEFAULT_LOCALE = 'zh'
LANGUAGES = {'en': {'flag': 'us', 'name': 'English'},'zh': {'flag': 'cn', 'name': '中文'},
}# 时区设置
DEFAULT_TIMEZONE = 'Asia/Shanghai'
ENABLE_TIMEZONE = True

10. 文件上传配置

# 文件上传
UPLOAD_FOLDER = '/path/to/upload/folder'
ALLOWED_EXTENSIONS = {'csv', 'xlsx', 'json'}
MAX_UPLOAD_SIZE = 50 * 1024 * 1024  # 50MB# CSV导入配置
CSV_TO_HIVE_UPLOAD_DIRECTORY = '/path/to/hive/upload'
CSV_TO_HIVE_UPLOAD_ALLOWED_DB = ['hive_db']

11. 性能优化配置

# 缓存超时设置
SUPERSET_CACHE_TIMEOUT = 300  # 默认缓存超时
DASHBOARD_CACHE_TIMEOUT = 300  # 仪表板缓存超时
CHART_CACHE_TIMEOUT = 300  # 图表缓存超时# 工作线程配置
SUPERSET_WORKERS = 4  # Celery工作线程数# 查询并行度
QUERY_PARALLELISM = 4  # 查询并行执行数

12. 监控和日志配置

# 日志配置
LOG_LEVEL = 'INFO'
LOG_FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s'
LOG_STDOUT = False# 性能监控
ENABLE_FLASK_PROFILER = False  # Flask性能分析器
STATS_LOGGER = 'superset.stats_logger'# 指标收集
ENABLE_TELEMETRY = False  # 遥测数据收集

13. 自定义配置

# 自定义CSS和JavaScript
APP_ICON = '/static/assets/images/superset-logo.png'
APP_ICON_WIDTH = 126
FAVICONS = [{'href': '/static/assets/images/favicon.png'}]# 自定义模板
CUSTOM_TEMPLATES = '/path/to/custom/templates'# 自定义安全管理器
CUSTOM_SECURITY_MANAGER = 'path.to.CustomSecurityManager'

14. 完整配置示例

# -*- coding: utf-8 -*-
import os# 基础配置
SECRET_KEY = 'your-super-secret-key-change-this'
AUTH_TYPE = AUTH_DB# 数据库配置
SQLALCHEMY_DATABASE_URI = 'postgresql://superset:password@localhost/superset'
SQLALCHEMY_TRACK_MODIFICATIONS = False# 缓存配置
CACHE_CONFIG = {'CACHE_TYPE': 'RedisCache','CACHE_DEFAULT_TIMEOUT': 300,'CACHE_KEY_PREFIX': 'superset_','CACHE_REDIS_URL': 'redis://localhost:6379/0'
}DATA_CACHE_CONFIG = {'CACHE_TYPE': 'RedisCache','CACHE_DEFAULT_TIMEOUT': 300,'CACHE_KEY_PREFIX': 'data_', 'CACHE_REDIS_URL': 'redis://localhost:6379/1'
}# 功能特性
FEATURE_FLAGS = {"ENABLE_TEMPLATE_PROCESSING": True,"DASHBOARD_NATIVE_FILTERS": True,"DASHBOARD_CROSS_FILTERS": True,"ROW_LEVEL_SECURITY": True,"ALERT_REPORTS": True,
}# 国际化
BABEL_DEFAULT_LOCALE = 'zh'
LANGUAGES = {'en': {'flag': 'us', 'name': 'English'},'zh': {'flag': 'cn', 'name': '中文'},
}# 时区
DEFAULT_TIMEZONE = 'Asia/Shanghai'# 邮件配置
ENABLE_EMAIL = True
SMTP_HOST = 'smtp.gmail.com'
SMTP_USER = 'your-email@gmail.com'
SMTP_PORT = 587
SMTP_PASSWORD = 'your-password'
SMTP_MAIL_FROM = 'your-email@gmail.com'# 查询限制
QUERY_TIMEOUT = 600
SQLLAB_TIMEOUT = 300# 文件上传
UPLOAD_FOLDER = '/tmp/superset_uploads'
ALLOWED_EXTENSIONS = {'csv', 'xlsx', 'json'}
MAX_UPLOAD_SIZE = 50 * 1024 * 1024

重要说明

  1. 生产环境必须修改 SECRET_KEY
  2. 根据数据库类型 安装对应的驱动
  3. 缓存配置 对性能至关重要
  4. 功能开关 可以根据需求启用/禁用
  5. 定期备份 元数据数据库
http://www.dtcms.com/a/614062.html

相关文章:

  • 搭建本地deepseek大模型
  • 阳泉 网站建设合作网页设计心得体会2000字
  • 网站程序授权码电商网站经营性备案
  • 自动化测试任务或者定义AI AGENT(智能体)任务,通过使用它可以操作浏览器来执行特定操作,如访问网页、单击按钮、提取网页信息等。 ...
  • BFS 广度优先搜索算法
  • Jinja 模板引擎介绍文档
  • 深圳响应样式网站建设费用灵台县门户网
  • Excel工作簿自动销毁功能,使用时间到期后自动删除文件
  • Linux-信号2
  • 河南省两学一做网站官网建设的意义
  • 【Python TensorFlow】BiTCN-BiGRU双向时间序列卷积双向门控循环神经网络时序预测算法(附代码)
  • 公司网站策划书广州工商注册流程
  • C语言是一种编译器吗 | 探讨C语言及其编译原理
  • LeetCode热题100--39. 组合总和
  • 网站开发包含网站维护吗网站建设的技术保证怎么写
  • Java事件处理机制
  • 前端构建工具缓存策略,contenthash与chunkhash
  • 企业门户网站制作网站过期查询
  • 信阳网站优化免费的开源网站
  • Redis(125)Redis在社交网络中的应用有哪些?
  • 吴恩达新课程:Agentic AI(笔记10)
  • 随笔之工作方法的“高与低”
  • 栈+贪心
  • 快飞建站开发区网站建设方案
  • 基于MRI影像的脊髓区域检测与定位:YOLO11与SCcConv模型实战指南
  • 家乡网站怎么做设立网站
  • 快速上手大模型:深度学习5(实践:过、欠拟合)
  • 【ros2】ROS2 Python节点创建指南
  • 【MySQL】数据目录与日志开篇
  • 【深度学习新浪潮】什么是迁移学习?