基本按官网安装步骤,但没有采用官网的python虚拟机安装方式,直接本地安装,根据官网及运行提示:此安装方式不适合生产环境使用。使用rocky linux 9.5最小安装,安装时系统dnf安装的默认Python 3.9.18版本
1、安装依赖,官网在这里一起安装wheel,但是安装时dnf提示没有wheel,所以这里没装下面使用pip安装
dnf install gcc gcc-c++ libffi-devel python3-devel python3-pip openssl-devel cyrus-sasl-devel openldap-devel
2、更新安装pip,可以不更
pip3 install --upgrade pip
3、使用pip安装未安装的依赖
pip3 install wheel pillow
4、安装superset,未使用官网python虚拟机方式,本来就是虚拟机装linux再来个虚拟机太麻烦
pip install apache-superset
5、新版本要求算key,并且编辑superset_config.py文件写入其中,算key
openssl rand -base64 42
算出来的key类似:C9eOwFWI2Acc4+HmHriq9pvblSZfb+/OdQ421mD8NMD5FLlSQYa/aoMt
在任意你喜欢的位置创建superset_config.py文件写入key的变量内容,我放在root用户目录下面了,所以文件完整路径:~/superset_config.py
SECRET_KEY = 'C9eOwFWI2Acc4+HmHriq9pvblSZfb+/OdQ421mD8NMD5FLlSQYa/aoMt'
输出superset_config.py文件的位置变量给bash:
export SUPERSET_CONFIG_PATH=~/superset_config.py
上面这变量最好写到 /etc/profile 里面去,要不每次重启或者关闭bash还得重新执行下面的命令给bash
6、我用的另一台电脑上的mysql,没有使用自带的sqlite,现在远程数据库上创建superset数据库,然后再在本机操作以下内容
安装mysql依赖,可能官方文档较老,这里有个问题使用mysqlclient无法连接远程数据库(安装时没注意,可能这玩意根本就装不上或者没有了),后来搜罗到使用mysql-connector-python,下面依赖里面仍有mysqlclient,装不上就删掉
pip3 install mysqlclient pymysql mysql-connector-python
编辑第5步中的superset_config.py,写入mysql远程数据库连接
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:xxxx@192.168.1.xxx/superset'
SQLALCHEMY_TRACK_MODIFICATIONS = False
上面两行抄来的,第二行不知道起不起作用,没试,都写到配置文件里了,目前这个文件有三行了。
还得再一次输出文件环境变量给bash
export SUPERSET_CONFIG_PATH=~/superset_config.py
7、先输出flask变量再执行其他命令,否则提示错误
export FLASK_APP=superset
8、搞数据库的命令,创建表啥的
superset db upgrade
9、创建用户的命令,你愿意可以改用户名,我都默认回车,创建的admin用户,最后一步需要输入两次密码,俩命令分开执行
superset fab create-admin
superset init
10、修改firewall防火墙,永久放行8088
firewall-cmd --zone=public --add-port=8088/tcp --permanent
firewall-cmd --reload
11、启动superset,官网那个命令启动后远程浏览器访问不了,改了下
superset run -h 0.0.0.0 -p 8088 --with-threads --reload --debugger
每次关闭bash或者重启都要来一次的环境变量输出
export FLASK_APP=superset
export SUPERSET_CONFIG_PATH=~/superset_config.py
把这两行加到/etc/profile里面可以避免每次都来一次,加入后执行下面命令,使当前没有变量的窗口生效
source /etc/profile
然后再重启superset
到这里就可以使用浏览器登录使用了,下面内容是汉化和连接外部数据库(连接需要分析的外部数据库,这里弄了mysql和oralce)
12、汉化,汉化这一步网上搜罗来的,试了可用,直接抄
在superset_config.py中加入内容
# Setup default language
BABEL_DEFAULT_LOCALE = 'zh'
# Your application default translation path
BABEL_DEFAULT_FOLDER = 'superset/translations'
# The allowed translation for you app
LANGUAGES = {
'en': {'flag': 'us', 'name': 'English'},
'zh': {'flag': 'cn', 'name': 'Chinese'},
}
在来一次变量输出,export SUPERSET_CONFIG_PATH=~/superset_config.py ,重启superset即可,重启后浏览器访问右上角有中英文切换,汉化不彻底,有地方还是英文,大多数中文,凑合用可以
13、连接mysql
安装依赖
pip install mysql-connector-python
安装完了,重启superset,重新给变量,然后浏览器登录,在右上角找到创建数据库,写入如下连接
mysql+mysqlconnector://root:bjtaihua@192.168.1.xxx/数据库名
反正我连上了
14、连接Oralce
复制oracle客户端到当前superset所在系统,配置oracle环境变量
Oralce客户端在这下
Instant Client for Linux x86-64 (64-bit) (oracle.com)
找到你需要的版本,我的11.2.0.4,我没下rpm的,rpm我怕安装又缺依赖,而且按照搜罗来的方法还得找文件安装位置,太麻烦,我把对应版本的zip文件都弄下来了,统一解压到默认的instantclient_11_2文件夹下面(我记得是直接解压缩到本地,这些zip应该是根据功能不同分开打包的,原来实际就是一个文件夹下的),传到superset所在的系统下任意位置,我怕以后误删又给它套了一层文件夹,我的路径:/database/instantclient_11_2
弄环境变量,编辑/etc/profile,拉倒最下面加入下面内容,oralce客户端路径根据需要调整,字符集自己改,多数内容抄来的,不知道最上面两行起不起作用,反正弄上了
PATH=$PATH:$HOME/bin
export PATH
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_HOME="/database/instantclient_11_2"
export TNS_ADMIN=$ORACLE_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$PATH:$HOME/bin:$ORACLE_HOM
在oracle客户端文件夹下,创建一个 tnsnames.ora文件,写上连接的远程oracle数据库实例连接内容,我的是这样的:
#tnsnames.ora Network Configuration File: /database/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
test =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.xxx)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)
test是实例名,还有数据库服务器IP地址和端口号等等
上面的都弄完可以用sqlplus试试能不能连接,反正我的不能,缺少依赖,sqlplus测试命令:
sqlplus 用户名/密码@test test是上面的tnsnames.ora文件中的实例名
我的提示缺少xxxxxxx.so无法运行,缺少啥安装啥,譬如我缺少这俩:
dnf install libnsl libaio
再用sqlplus试,可以了
安装superset的oralce连接件
pip install cx_oracle
按着上面第13步中的方法在superset里面创建连接,连接串
oracle+cx_orcle://用户名:密码@数据库名
反正我又行了
14、啰嗦
刚弄完的superset里面的sql工具箱(sql lab)没法用,不用管它,创建完连接后或者查询后就能用了,具体哪一步能用的忘了,还有cvs和excel上传那里是灰的也不用理他,弄个空的数据库连接上,然后在连接写字符串的配置过程中有个高级,安全,这下面有个允许上传的勾勾上就行了,你也可以在已有的数据库连接上改这个配置,找不到数据库连接在右上角设置里面有个测试连接(改中文改不回去了,懒得删配置文件内容,这里英文叫啥没注意),这里面有你创建的连接,也可在这改已有数据连接的配置。
postgresql我没有,没试,官方文档多数都是靠谱的,照着来基本没错,有错baidu和bing就能解决都用不到google。