#31482·superset

[SIP-150] 使用现有的 Athena Presto 功能来从 S3 下载大型文件

作者: william-fundrecs创建于 2024年12月16日更新于 2026年9月16日
标签change:backendsipchange:frontendextension-candidate

□ [SIP-150] 关于使用雅典娜·普雷斯托功能进行CSV大下载的建议

动机

Superset内置的下载功能对于更大的文件来说是缓慢的,试图从Presto Athena AWSDB从开始到完成只花9分钟就下载出100,000行CSV.

然而,这可以被大大地加速,对Superset(对于Presto DB用户)来说,几乎没有额外的间接费用. Presto DB可以被配置到自动持续到S3的查询结果,这需要几秒钟来查询DB,并在S3桶中保存CSV.

通过Athena API开始查询,然后查取CSV的输出位置,这个URL可以立即返回给用户,而无需原始结果,从而产生了我们拥有的真实世界使用案例,8分45次下载时间被缩短到11秒.

拟议变动

建议的更改是在功能上添加,当用户请求下载使用 Athena Presto DB 的图表时,只将现有的 CSV 文件输出 位置返回用户.

此更改将被保护, 特性标记只为 Presto DB 用户打开, 他们需要设置环境变量 。 AWS 区域/雅典娜工作组和雅典娜 DB 名称,下面的例子来自.env 文件

(原始内容存档于2018-10-21). Superset region=eu-west-. 1个 (原始内容存档于2017-09-26) (中文(简体) ). Superset WORKGROUP=superset-etl SUPERSET ATHENA DB=我的"超级集" db

功能旗是启用S3下载功能并隐藏现有的 CSV/XLSX 默认选项(S3下载比默认下载快),来自功能旗.ts

下载 CSV FromS3 = 'DOWNLOAD CSV FROM S3', ======================================== ======================================================================================================================================================================================================================

\ 选项将出现在右键上下文菜单\ \ \ \

!.图像.

UI现在对用户是相同的,如果设置了功能旗,如果数据库.后端是awsathena,功能会触发正常的CSV/Full CSV导出.

+++ 新建或已更改的公共界面

重用 CSV 和 XLSX 默认并全下载使用的现有数据端点.

在“ result location” 中传递, 需要指定导出文件是否在 Superset( 当前导出) 或 S3( Presto Athena 的新流量) 内构建 。

更改输出 位置的模型, 返回的预签名的 URL 用于指定 S3 桶内的文件 。

PR代码中所有其他的更改都会被更改.

新依赖关系

此处无更改

移徙计划和兼容性

无 DB 更改

++ 被拒绝的替代品

说明考虑和拒绝的替代办法。

使用lambda从S3获取文件并通过专有应用程序返回,因用户已经使用Superset而被拒绝,允许他们通过Superset UI下载大文件是有道理的.

内容来源: apache/superset