乐趣区

关于存储:基于Amazon-ECS-Fargate构建Apache-Superset

摘要:
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。

退出移动版