apache / superset

Apache Superset is a Data Visualization and Data Exploration Platform
https://superset.apache.org/
Apache License 2.0
61.7k stars 13.49k forks source link

[SIP-144] Proposal to Integrate VisActor Visualization Plugin into Superset #29886

Open skie1997 opened 1 month ago

skie1997 commented 1 month ago

Please make sure you are familiar with the SIP process documented here. The SIP will be numbered by a committer upon acceptance.

[SIP-144] Proposal to Integrate VisActor Visualization Plugin into Superset

Motivation

About VisActor: VisActor is derived from a large number of visualization scenarios. While covering conventional visualization scenarios, it focuses on narrative visualization as a new point of emphasis and intelligent visualization as its goal. It has formed a visualization solution composed of multiple modules including rendering engine, visualization grammar, data analysis component, chart component, table component, GIS component, graph visualization component, and intelligent component. We believe it could be a valuable addition to Superset, providing users with more high-level visualization ability. Here is VisActor github address: https://github.com/VisActor Here is VisActor website: https://www.visactor.io/

Proposed Change

- Chart Plugin Based VChart: VChart is a charting component library in VisActor visualization system. It wraps the charting logic based on visual grammar library VGrammar and the component encapsulation based on visual rendering engine VRender. The core capabilities are as follows:

  1. Cross-platform: Automatically adapt to desktop, H5, and multiple small program environments
  2. Storytelling: Comprehensive annotation, animation, flow control, narrative templates, and other enhanced features for visual storytelling
  3. Scenes: Deliver visual storytelling capabilities to end-users, unlock developer productivity

VChart Demo: https://www.visactor.io/vchart/example

- Table Plugin Based VTable: VTable is based on visual rendering engine VRender. The core capabilities are as follows:

  1. Extreme performance: Supports fast computation and rendering of millions of data points.
  2. Multidimensional analysis: Automatically analyzes and presents multidimensional data.
  3. Strong expressiveness: Provides flexible and powerful graphic capabilities, seamlessly integrating with charts of VChart.

VTable Demo: https://www.visactor.io/vtable/example

- Intelligence Plugin Based VMind: @visactor/vmind is an intelligent chart component based on LLM provided by VisActor, including dialog-based chart generation and editing capabilities. It provides a natural language interaction interface, allowing you to easily create chart narrative works with @visactor/VMind with just one sentence, and edit them through continuous dialogue, greatly improving your efficiency in creating data visualization works.

VMind Cases: https://www.visactor.io/vmind/scenario/Chart_Assistant

New or Changed Public Interfaces

Describe any new additions to the model, views or REST endpoints. Describe any changes to existing visualizations, dashboards and React components. Describe changes that affect the Superset CLI and how Superset is deployed.

New dependencies

@visactor/vchart @visactor/vtable @visactor/vmind

License: MIT

Migration Plan and Compatibility

one-api:https://github.com/songquanpeng/one-api new-api:https://github.com/Calcium-Ion/new-api

Rejected Alternatives

Describe alternative approaches that were considered and rejected.

skie1997 commented 1 month ago

@rusackas @suddjian @craig-rueda @lilykuang @geido Hello everyone! I hope this message finds you well. I am a developer of project VisActor, our team are looking forward for cooperation with good visualization project. We noticed superset is a modern, enterprise-ready business intelligence web application and support plugin, such as echarts, etc. So I'd like to check,is there aollowed to access visuliazation pulgin to enrich superset visualization ability?

Here is our proposal:https://[github.com/apache/superset/issues/29886](http://github.com/apache/superset/issues/29886)

Best regards, VisActor Team

rusackas commented 4 weeks ago

Hi! Thank you for the proposal! VisActor is very slick looking. I suppose I have a few initial questions to ask:

1) Are you proposing this as a replacement for ECharts, or to augment existing ECharts plugins? 2) Are you proposing putting these in core Superset, or do you want to make an external (third party) set of plugins people can add to their Superset instances? 3) Do you intend to contribute this code, or is this a request for engineering support from the Superset community? 4) Is there any sort of document comparing/contrasting VisActor with ECharts? That might be helpful to assess the situation

It's also worth saying that there are perpetual discussions around how to make the process of developing visualization plugins simpler. I don't think that will happen immediately, but it is discussed from time to time. Only mentioning it since when the day comes, existing plugins might need additional rework to accommodate a (hopefully simpler) API.

skie1997 commented 2 weeks ago

Hi! Thank you for the proposal! VisActor is very slick looking. I suppose I have a few initial questions to ask:

  1. Are you proposing this as a replacement for ECharts, or to augment existing ECharts plugins?
  2. Are you proposing putting these in core Superset, or do you want to make an external (third party) set of plugins people can add to their Superset instances?
  3. Do you intend to contribute this code, or is this a request for engineering support from the Superset community?
  4. Is there any sort of document comparing/contrasting VisActor with ECharts? That might be helpful to assess the situation

It's also worth saying that there are perpetual discussions around how to make the process of developing visualization plugins simpler. I don't think that will happen immediately, but it is discussed from time to time. Only mentioning it since when the day comes, existing plugins might need additional rework to accommodate a (hopefully simpler) API.

@rusackas

  1. Compared to ECharts, as previously mentioned, our VisActor product not only includes the standalone VChart chart library but also includes the VTable table library, VMind intelligent components, and VStory narrative components. These visualizations encompass a complete ecosystem of visualization rendering, so we expect to develop three visualization plugins on par with ECharts based on VisActor, rather than as a supplement to ECharts.

  2. We hope to include high-frequency chart types or our unique capabilities into the core of Superset, such as chart annotations. Low-frequency chart types or component types can be placed into third-party plugins. Of course, this depends on your product definition of Superset.

  3. Our team has a complete set of visualization engineers, and we are confident in participating in and contributing to Superset. During this period, we hope to have good communication with the Superset team and to listen to your development suggestions.

  4. We have an internal comparison document with ECharts, which involves descriptions of chart types, feature capabilities, cross-platform compatibility, performance, package size, and other aspects. We will synchronize it with you after sorting it out later.

Please review and let me know if you need any adjustments or additional translations!

rusackas commented 2 days ago

We discussed this quite a bit on Slack, but I think the fork in the road is whether or not you want to contribute this to the Superset repo to be maintained by Superset Committers, or whether it's going to be published on a separate repo. We can even establish a repo for it, if we want to keep it on the side as an optional installation.

If you go with adding it to the codebase officially, the SIP needs to go through the DISCUSS process (as we discussed on Slack) on the ASF dev@superset.apache.org email list. We'll lay out all the requirements of being an official plugin (supporting various features, arch/code designs, license requirements, etc).

If you keep it as an optional or 3rd party plugin, then I think both the requirements AND the process lighten up quite a bit.