mirror of
https://github.com/apache/superset.git
synced 2026-04-07 18:35:15 +00:00
105 lines
2.7 KiB
Plaintext
105 lines
2.7 KiB
Plaintext
---
|
|
sidebar_position: 5
|
|
version: 1
|
|
---
|
|
|
|
import InteractiveSVG from '../../../src/components/InteractiveERDSVG';
|
|
import Mermaid from '@theme/Mermaid';
|
|
|
|
# Resources
|
|
|
|
## High Level Architecture
|
|
<div style={{ maxWidth: "600px", margin: "0 auto", marginLeft: 0, marginRight: "auto" }}>
|
|
```mermaid
|
|
flowchart TD
|
|
|
|
%% Top Level
|
|
LB["<b>Load Balancer(s)</b><br/>(optional)"]
|
|
LB -.-> WebServers
|
|
|
|
%% Web Servers
|
|
subgraph WebServers ["<b>Web Server(s)</b>"]
|
|
WS1["<b>Frontend</b><br/>(React, AntD, ECharts, AGGrid)"]
|
|
WS2["<b>Backend</b><br/>(Python, Flask, SQLAlchemy, Pandas, ...)"]
|
|
end
|
|
|
|
%% Infra
|
|
subgraph InfraServices ["<b>Infra</b>"]
|
|
DB[("<b>Metadata Database</b><br/>(Postgres / MySQL)")]
|
|
|
|
subgraph Caching ["<b>Caching Subservices<br/></b>(Redis, memcache, S3, ...)"]
|
|
direction LR
|
|
DummySpace[" "]:::invisible
|
|
QueryCache["<b>Query Results Cache</b><br/>(Accelerated Dashboards)"]
|
|
CsvCache["<b>CSV Exports Cache</b>"]
|
|
ThumbnailCache["<b>Thumbnails Cache</b>"]
|
|
AlertImageCache["<b>Alert/Report Images Cache</b>"]
|
|
QueryCache -- " " --> CsvCache
|
|
linkStyle 1 stroke:transparent;
|
|
ThumbnailCache -- " " --> AlertImageCache
|
|
linkStyle 2 stroke:transparent;
|
|
end
|
|
|
|
Broker(("<b>Message Queue</b><br/>(Redis / RabbitMQ / SQS)"))
|
|
end
|
|
|
|
AsyncBackend["<b>Async Workers (Celery)</b><br>required for Alerts & Reports, thumbnails, CSV exports, long-running workloads, ..."]
|
|
|
|
%% External DBs
|
|
subgraph ExternalDatabases ["<b>Analytics Databases</b>"]
|
|
direction LR
|
|
BigQuery[(BigQuery)]
|
|
Snowflake[(Snowflake)]
|
|
Redshift[(Redshift)]
|
|
Postgres[(Postgres)]
|
|
Postgres[(... any ...)]
|
|
end
|
|
|
|
%% Connections
|
|
LB -.-> WebServers
|
|
WebServers --> DB
|
|
WebServers -.-> Caching
|
|
WebServers -.-> Broker
|
|
WebServers -.-> ExternalDatabases
|
|
|
|
Broker -.-> AsyncBackend
|
|
|
|
AsyncBackend -.-> ExternalDatabases
|
|
AsyncBackend -.-> Caching
|
|
|
|
|
|
|
|
%% Legend styling
|
|
classDef requiredNode stroke-width:2px,stroke:black;
|
|
class Required requiredNode;
|
|
class Optional optionalNode;
|
|
|
|
%% Hide real arrow
|
|
linkStyle 0 stroke:transparent;
|
|
|
|
%% Styling
|
|
classDef optionalNode stroke-dasharray: 5 5, opacity:0.9;
|
|
class LB optionalNode;
|
|
class Caching optionalNode;
|
|
class AsyncBackend optionalNode;
|
|
class Broker optionalNode;
|
|
class QueryCache optionalNode;
|
|
class CsvCache optionalNode;
|
|
class ThumbnailCache optionalNode;
|
|
class AlertImageCache optionalNode;
|
|
class Celery optionalNode;
|
|
|
|
classDef invisible fill:transparent,stroke:transparent;
|
|
```
|
|
</div>
|
|
|
|
## Entity-Relationship Diagram
|
|
|
|
Here is our interactive ERD:
|
|
|
|
<InteractiveSVG />
|
|
|
|
<br />
|
|
|
|
[Download the .svg](https://github.com/apache/superset/tree/master/docs/static/img/erd.svg)
|