摘要:
Apache Superset是一个开源的基于支流云原生技术构建的数据可视剖析平台Business Intelligence(BI),给用户提供轻量,直观,可定制的操作界面来对接各种数据源,实现数据的查问,编排和可视化。通过联合Amazon Elastic Container Service(Amazon ECS),Amazon Cloud Map等托管服务,咱们能够将Apache Superset疾速构建至托管的容器集群,而无需装置、操作和扩大额定的容器编排和集群治理基础设施,IT人员,数据分析师等角色能够专一于业务自身,更加高效的实现从数据驱动认知到数据驱动决策的转变。

  • Apache Superset:
    https://superset.apache.org/

要害音讯:
Business Intelligence(BI),容器技术;

要害服务:
Amazon Elastic Container Service(ECS),Amazon Cloud Map,Amazon Elastic File System(EFS);

前言

当今BI平台的技术演进向数据和剖析两端倒退,数据端通过ODBC/JDBC等SQL利用接口对接数据源,通过ETL加工后送入数据仓库实现云上,线下数据的对立治理,剖析端利用大数据,AI/ML,NLP等技术实现数据的智能查问,深度剖析和常识图谱等能力。随同云计算技术成熟和倒退,利用云服务厂商所提供的托管服务打造的根底平台,在业务可靠性,利用灵活性以及现有服务对接方面相较传统BI都存在较大劣势,以云托管服务为基础设施的一站式BI平台逐步成为趋势。

在数据ETL,数仓托管,数据挖掘,数据可视化环节,亚马逊云科技都提供了成熟牢靠的托管服务(如Amazon Glue,Amazon Redshift,Amazon EMR)来帮忙客户疾速搭建起自有的全自动化数据处理流水线,实现从原始数据获取到最终商业决策的疾速落地,同时针对BI平台将来智能化,自动化的技术趋势,亚马逊云科技也提供了从利用Amazon SaaS到基础设施的全AI/ML产品体系,以更好撑持各垂直行业如金融,电商,制作的细分畛域和具体利用。

架构概览

Amazon Apache Superset各功能模块采纳松耦合的形式独立开发迭代,模块间的通信通过Celery构建的分布式音讯队列实现,对于容器技术如Docker,Kubernetes的反对绝对欠缺。

  • Celery:
    https://docs.celeryproject.or...

其次要模块及采纳的技术栈如下所示:

  • web server(Gunicorn, Nginx, Apache)
  • metadata database engine(MySQL, Postgres, MariaDB, etc.)
  • message queue(Celery, Redis, RabbitMQ, SQS, etc.)
  • results backend(S3, Redis, Memcached, etc.)
  • caching layer(Memcached, Redis, etc.)

基于云原生技术开发的理念,用户能够依照本身需要灵便定制后端实现,如音讯队列方面,用户能够采纳默认的Redis,也能够对接Amazon SQS实现更为经济牢靠,弹性高效的队列性能。目前社区提供的容器版本通过Host Volume单节点运行的形式来实现利用的初始创立,数据挂载等性能,如下图所示:

为了最大水平适配原有Apache Superset的架构设计,咱们将其迁徙运行到亚马逊云科技的基本思路是将平台自身绝对独立的功能模块运行在Amazon ECS上,利用Amazon ECS Fargate实现资源的调度,服务的健康检查,各Amazon ECS服务自身通过Amazon Cloud Map创立的公有DNS进行服务发现,寻址和通信,各Amazon ECS服务本身的数据存储共享通过Amazon EFS实现,以获取更好的可用性,灵活性和低成本。网络布局咱们遵循亚马逊云科技最佳实际,用户上行inbound拜访流量通过Amazon Application Load Balancer对接到Amazon ECS集群的Superset Service,Superset Service的上行outbound流量如连贯内部数据源,获取示例数据等则通过Amazon NAT Gateway实现,联合Amazon VPC平安组实现网络流量的端口管制(如Superset默认的端口8088),整体计划的软件架构如下图所示:

相较于Apache社区版本,运行在亚马逊云科技上的Apache Superset存在如下劣势:

  • 外围模块(Superset,Cache,Database)高可用;
  • 业务数据(元数据,查问数据,交互数据)长久化;
  • 平台资源弹性伸缩,用户无需关怀底层资源调度;
  • 预装SQL,PostgreSQL,Redshift,Athena,ClickHouse数据源驱动,创立结束即可连贯已有数据
  • 预装时序预测算法,基于导入数据实现将来趋势预测
  • 可视化看板实时监控亚马逊云服务各项指标以及利用综合指标

创立步骤

该计划Apache Superset的所有功能模块通过预约义好的Amazon CloudFormation模版实现创立启动,点击如下按键将跳转到Amazon CloudFormation控制台界面(Beijing)进行整体计划的一键部署。代码施行细节参见这里。

  • Amazon CloudFormation:
    https://aws.amazon.com/cn/clo...
  • 这里:
    https://github.com/aws-quicks...

部署到已有Amazon VPC: 
https://cn-north-1.console.am...

部署到新建Amazon VPC:
https://cn-north-1.console.am...

配置选项配置用于登陆Superset控制台的用户名和明码,其中“Pre-populate example dashboard”用于配置是否要获取官网内置示例数据集以及仪表板,”Install Prophet library”用于配置是否要装置Prophet软件包以实现数据的在线预测性能。

待Stack装置结束之后,咱们可跳转到Amazon ECS控制台查看所有的Superset组件是否失常启动运行,如下图所示,咱们能够看到所有的服务处于Active状态

点击其中蕴含SupersetService字样的Service,在Load Balancing一栏可查看所对接的Amazon ALB的Target Group,其默认凋谢的端口为8088,咱们之后的操作拜访页面也将通过这个端口;在Network Access一栏可查看Superset所在Amazon VPC的根本信息,包含子网,平安组等,在接下来的数据对接中,咱们须要确保创立的Amazon Redshift在同一个Amazon VPC;在Service discovery一栏可查看服务对应的外部DNS名称,该趣味的读者能够跳转至Amazon Route 53界面查看对应的Domain name和Record name以理解各服务之间如何发现,寻址和通信。

接下来咱们在浏览器中输出Outputs选项中输入的登陆Superset的地址。

输出之前创立利用时配置的用户名和明码,便能够开始应用Superset来进行数据分析。

数据对接

接下来咱们将创立一个Amazon Redshift,具体的集群创立,数据导入等流程在此不再赘述,可参考官方网站具体介绍。须要留神的是,咱们在此创立的Amazon Redshift所在Amazon VPC须要同创立Superset所在的Amazon ECS统一,以确保在不开启Amazon Redshift公共拜访权限的状况下,Superset依然可能通过外部Amazon VPC网络实现数据的关联。

  • 官方网站:
    https://docs.aws.amazon.com/r...

Amazon Redshift创立结束之后,记录下对应的Endpoint地址。

接下来切换到Superset操作界面,点选Data,下拉框抉择Databases开始连贯,URL格局为redshift+psycopg2://:@:5439/,更多其余数据源的URL格局能够参考Superset官网文档。

  • Superset官网文档:
    https://superset.apache.org/d...

连贯胜利后,点击Datasets查看对应的数据集是否失常显示,这里的示例数据是”daily”。

点击进去进行编辑,Visualization Type中抉择Time-series Chart,Time Range抉择No filter,Query中Column为要显示的数值,Aggregate抉择Sum操作,点击Run能够看到数据依照工夫序列绘制进去,同时在Data一栏展现了数据样本,留神上述配置须要依据理论数据进行批改。须要留神横向时间轴的最初工夫为2014-02-22

如果在创立Superset的选项咱们抉择了Install Prophet library为yes,咱们能够进一步体验Superset内置的工夫序列预测性能。点击Predictive Analytics,勾选Enable Forecast选项,其余选项默认,从新执行RUN。

能够看到Superset在之前的数据根底上对将来10天的数据走势进行了预测(此时横向时间轴的最初工夫为2014-03-04)并绘制出了数据的置信区间,其中紫色圆点为原始的工夫序列离散点,紫色实线为应用工夫序列拟合所失去的取值,实线四周的浅色区域则为数据的置信区间,即正当的上界和下界。在该操作中咱们须要输出的是蕴含工夫戳和值的原始数据,须要预测的工夫序列长度,失去的输入为将来工夫序列趋势以及对应的置信区间。

最初

利用Amazon Elastic Container Service(ECS)及其反对的无服务器计算个性(Fargate),咱们可将原有容器负载或新开发的云原生负载十分平滑的迁徙到亚马逊云科技平台,通过设计隔离各软件模块来进步服务的安全性和可靠性,而无需预置和治理服务器,联合Amazon Route 53,Amazon Cloud Map,Amazon Elastic File System实现服务通信和数据存储,Amazon CloudFormation实现服务部署和扩大,最终升高Amazon BI平台的应用门槛,IT人员,数据分析师等角色能够专一于业务自身,更加高效的实现从数据驱动认知到数据驱动决策的转变。

本篇作者

易珂

亚马逊云科技解决方案架构师

开源我的项目和新兴技术爱好者,负责亚马逊云科技解决方案的征询,构建和施行,领有近十年研发及技术团队治理教训,其技术畛域包含无服务器(Serverless),容器,AI/ML。