Superset——数据集:文件数据
我之前写了一篇介绍Superset数据集的文章《Superset——数据集》,重点介绍了Superset如何连接数据库,并新建数据集。这篇文章是之前文章的一个扩展补充,给大家介绍下如何上传文件中的数据到Superset的数据集中。
我们实际的业务场景中,可能有一些数据是保存在Excel或者CVS文件中,如果我们想针对这些数据来制作图表进行BI分析,我们该如何操作呢?
这个时候,我们就可以使用Superset的文件上传功能,将数据文件中的数据导入到数据库中,形成数据集,然后就可以像操作数据集一样来用这些数据制作BI图表了。要使用文件上传数据,需要首先配置数据库,让数据库支持文件上传,配置的方式如下:
- 点击“数据“菜单下的”数据库“tab,进入数据库列表,找到我们之前配置的数据库testdb_mysql,点击“操作”栏下的“编辑”按钮
- 在打开的“数据库”编辑弹框中,选择“进阶”tab,展开其下的“Security”,找到“允许数据上传“勾选框,选中。
注意:选中“允许数据上传”勾选框后,还需要在“SCHEMAS ALLOWED FOR CVS UPLOAD”输入框中输入对应的数据库实例,我这里是testdb。如果想运营多个实例都可以上传文件,可以用逗号分割实例名。
配置完之后,点击“FINISH”完成,这样,数据库就可以支持文件数据上传了。
接着,我们看看如何将excel文件导入到数据库中。
我们选择“Upload file to database”下的“Upload Excel file”,在弹出的对话中,进行数据库相关的配置,并选择我们的excel数据文件。
我这里在图中标记了几个重点的配置项:
- 表名:数据导入到数据库中后,保存到哪个表中
- Excel文件:选择我们的excel数据文件
- Sheet名称:如果我们的excel有多个sheet,这里用来指定哪个sheet被导入到数据库中,如果不填值,默认为第一个sheet
- 数据库:指定要导入的数据库
- 模式:指定要导入的数据实例名
- 表已存在处理:这里有三个选项可供选择 “舍弃”(什么数据都不导入)、“替换”(删除表及其中的数据,然后重建表,并导入数据)、“追加”(保留原来的表,文件中的数据会追加到原数据之后)
- 标题行:即excel中哪一行作为列的名称。我的测试文件中,第一行标记了列名,所以,我这里填写了0
设置完之后,点击“保存”按钮,在系统完成导入后,会由导入成功的弹框。
并且在“数据集”列表,可以看到我们刚才新导入的表。
通过Superset的“SQL工具箱”,我们也可以查询到我们通过excel导入的数据。
使用同样的方法,我把我的测试文件中的第二个sheet中的数据也导入到了数据集中,方便后续使用。
附录
如果是第一次使用文件数据导入功能,可能会提示如下的错误信息
我们只需要使用pip安装对应的openpyxl的依赖包,然后重启Superset即可。
pip install openpyxl
我的测试数据的excel文件下载:《测试数据.xlsx》