亚马逊AWS官方博客

为共享和协作而优化的现代分析平台 –使用 Mode 和 Amazon Redshift建设分析堆栈

Original URL: https://amazonaws-china.com/solutions/case-studies/netflix-kinesis-streams/

Netflix 和 Airbnb 等行业领先的技术公司正在使用 AWS 构建解决方案,以解决数据生态系统最后一公里的问题。这些公司向我们展示了数据和分析技术可以实现的成果,但他们所遇问题的复杂性和规模并不常见。我们面临的日常挑战很少涉及到通过处理数十亿条记录向数百万个客户提供实时建议。更常见的情况是,我们努力整理现有数据,从中寻找并分享对数据的洞察,然后据此采取行动。现实中,专业的数据团队也可能会因缓慢的数据管道而进展困难,或者不得不改用手动处理方式以便使得相关方能够更容易地理解这些数据洞察。

通过本博文,您将了解:
  1. 商业智能 (BI) 现代化的发展各个阶段。此部分将介绍组织在没有真正对分析平台进行现代化改造的情况下采用现代 BI 工具时会出现的问题。
  2. 将使用仪表盘和notebook笔记本的解决方案与高效数据管道集于一体的云优先数据科学平台将会以何种方式呈现。
  3. 对上述平台进行快速复制的步骤。可以将协作分析解决方案(例如 ModeAmazon Redshift 合作伙伴之一)与基于 AWS 数据仓库、ETL 和数据探索服务的强大分析基础工具相结合。

BI 现代化的各个阶段

BI 的发展分为两个主要阶段:使用 Microsoft Excel 创建报告,以及使用仪表盘工具通过易于理解的方式共享对数据的洞察。

第 1 阶段:Excel 工作流

AWS 和 Mode 与数千家公司进行了交流,这些公司都希望从自身数据中获得更多价值。我们询问了他们目前处理数据的方式,以下是几种最常见的回答:

大多数公司都认为上图中的工作流有问题。数据管道无法管理,分析则需要人工来重现。最后,我们无法保证“budget_analysis_v3_final_revised_FINAL.xls”是否真的能够反映出最终的真实情况。

第 2 阶段:启用可视化BI工具

公司在寻求更高效的解决方案时,常常会转向使用 Tableau、Amazon QuickSight、PowerBI 和 Looker 等 BI 产品。这些产品要么诞生于云中,要么目前已对云技术进行了大量投资,可以使用这些工具创建和共享报告和仪表盘可以高效完成。最新的 URL 取代了电子邮件成为 KPI 的发送方式。这有助于确保所有人对整个公司的情况获得相同的数据。以下示例展示了 BI 流程:

尽管采用现代 BI工具 是公司向前发展迈出的重要一步,但这并不是一个完整的解决方案。可视化工具(仪表盘)可以展示正在发生的情况,但是如果公司想要将这些数据用于实际行动,还必须了解这些情况背后的原因。例如,一家公司在某个国家的某个地区出现销量下滑问题,那么该公司必须先了解销量下滑的原因。由于仪表盘展示的结果无法被轻易地修改、扩展或重复用于进一步分析,因此对于负责回答开放式、探索性问题的分析师和数据科学家而言,仪表盘工具往往并不适合。结果,数据基础设施仍然零零散散,分析和数据科学工作流仍需基于手动流程。

云优先的数据科学平台

对于现代数据科学团队来说,一个理想的技术堆栈应该能做到将前文中描述的两个阶段统一起来。仪表盘应该作为分析师研究探索性问题的开始,分析师的工作成果应该易于访问,并且平台应该能够促进数据科学家和公司相关方之间的紧密协作。

在领先的技术公司中,他们的先驱数据团队已开发出可以实现这些需求的内部解决方案。Uber 构建了一个数据科学工作台,用于数据探索、数据准备、临时分析、模型探索、工作流调度、提供仪表盘和协作。Netflix 最近推出了 Netflix 数据平台,用于自动执行和分配 Jupyter Notebook。Instacart 构建了 Blazer,用于浏览和共享数据。

所有这些平台都有三个共同点:

  • 将可视化工具、交互式分析工具(例如 R Notebook 和 Python Notebook)和协作平台相结合。
  • 由现代数据仓库提供支持,经过扩展可以容纳任意大小的数据,供任意数量的分析师使用。
  • 具有可靠的 ETL 管道,可以让分析师和数据科学家在需要时访问所需数据。

构建云优先的数据科学平台

幸运的是,AWS 及合作伙伴提供的解决方案可以满足上述需求,并为无法自行构建平台的数据科学团队提供这样的功能。Amazon Redshift 和 Athena 等数据仓库服务都具备快速、可扩展的特点,并且只需掌握如何编写标准 SQL 就能使用。ETL 合作伙伴(如 Fivetran、Segment 和 Matillion)可提供可靠的一键式 ETL 服务,从数百种应用程序到 Amazon Redshift 和 Amazon S3,不一而足。最后,基于云的分析平台(如 Mode)将可视化工具、完全托管的 R Notebook 和 Python Notebook 以及分发平台结合在一起。

这种现代堆栈与 Netflix 或 Airbnb 中的工具一样强大,可提供全自动的 BI 和数据科学工具。它可以在几天之内完成部署,而成本远低于传统数据科学工具。

三步构建数据科学平台

通过以下三个步骤来实现此数据科学基础设施:

  1. 建立数据仓库。
  2. 用来自公司的数据填充数据仓库。
  3. 为数据仓库套用数据科学解决方案。

这些步骤不需要进行大量投资以聘请工程团队和制作定制软件。

此堆栈支持灵活多样的自定义,以满足您公司的需求。本部分仅介绍如何设置将 Amazon Redshift 用于数据仓库、将 Fivetran 用于 ETL,以及将 Mode 用于数据科学。

第 1 步:设置 Amazon Redshift

有关设置 Amazon Redshift 仓库的信息,请参阅Amazon Redshift 入门。您需要一个 AWS 账户,设置过程不需要编写代码,只需几分钟即可完成。

完成初始设置后,大多数配置选项(包括集群的大小)都支持后续调整。因此,没有必要一开始就将一切设置精确。如果之后发现了其他更合适的配置,也可以返回并更改大部分的 Amazon Redshift 设置。

第 2 步:用数据填充 Amazon Redshift

数据仓库的质量取决于其中数据的质量。好在许多 ETL 工具能够帮助提升从您的公司和您使用的应用程序中连续流式传输数据的效率。应用程序数据库、Salesforce 和 Zendesk 等第三方应用程序,甚至 CSV 文件,所有这些都可以轻松地馈送到 Amazon Redshift 中,而无需任何额外工作。

Fivetran 是 Amazon Redshift 合作伙伴,它就是这样一种 ETL 工具(这是我们 Mode公司 感到很满意的工具)。要将 Fivetran 连接到您的 Amazon Redshift 数据库,请首先配置您的数据库以允许 Fivetran 连接。Fivetran 支持多种连接选项,包括直接连接或使用 SSH 隧道进行连接。有关这些步骤的更多信息,请参阅连接选项

最后一步,为 Fivetran 创建 Amazon Redshift 用户。我们建议您使用Master主用户以外的用户。登录 Amazon Redshift 查询编辑器(或您选择的 SQL 客户端)并运行以下命令来创建用户:

CREATE USER fivetran PASSWORD <password>;

GRANT CREATE ON DATABASE <database> TO fivetran;

配置 Amazon Redshift 之后:

  1. 创建一个新的 Fivetran 账户
  2. 选择我已有仓库,然后选择 Redshift
  3. 使用您的 Amazon Redshift 凭证(credential)填写表单,如下例中所示,然后选择保存
  4. 在将Fivetran 连接到 Amazon Redshift 后,将其与您要提取到 Amazon Redshift 的数据源连接。现在,此过程更加高效。
  5. 在 Fivetran 中,选择连接器
  6. 选择添加连接器,然后选择要集成的数据源。虽然具体情况因数据源而异,但大多数都遵循相同的模式。
  7. 在 Amazon Redshift 中选择要向其写入数据的 schema,然后按照 Fivetran 自动引导您完成的授权流程进行操作。

以下是连接流的示例:

Salesforce 的连接流

Google Analytics 的连接流

通过使用类似的流,您还可以连接其他数据库(如 Amazon RDS Postgres 或 MySQL 数据库),或是直接上传 CSV。

设置这些连接后,数据会自动在您的数据源和 Amazon Redshift 之间同步。如果您想进行更多的控制,Fivarran 还允许您选择要同步的数据以及更新频率。

找不到您要查找的数据源? 其他 ETL 工具(包括 Stitch DataSegment 和 ETLeap)可提供类似的服务,并且也同样易于设置。

第 3 步:将 Amazon Redshift 连接到 Mode

最后,通过将 Mode 连接到 Amazon Redshift,您可以让整个公司在协作分析环境中访问您的数据。

要连接 Mode,请配置你的安全组,以便 Mode 可以访问 Amazon Redshift。如果您将 Mode 直接连接到集群,请按照上面链接的安全组文档向用户授权访问以下 IP 地址:

54.68.30.98/32

54.68.45.3/32

54.164.204.122/32

54.172.100.146/32

如果您无法修改防火墙,Mode 还提供其他连接方式

完成这些步骤后,您只需在 Mode 的 数据源连接页面上输入凭证,如下例中所示:

建立连接后,选择组织中可以访问该连接的人员。然后,您可以立即查询数据并通过 Mode 编辑器为您的团队构建分析平台,如下例中所示:

除 SQL 环境和可视化构建器之外,Mode 还提供集成的 Python 和 R  notebook笔记本。在左侧导航栏中选择新建notebook笔记本,以启动一个新的 Python 或 R 实例,该实例将自动将您的查询结果作为 DataFrames 的输入。这使数据科学家能够无缝地创建分析并直接与公司内的每个人进行共享。最终,这种方法可让您构建最灵活的平台来满足您的分析需求。您的业务分析师和数据科学家现在可以在同一环境中工作。他们可以无缝协作,并随时访问相同的数据。

小结

使用这种全新架构,组织能够更快地处理更多数据。使用 Python 和 R 的数据团队不仅可以共享静态数据仪表盘和报告,还可以使用流行的预测和机器学习库,例如 Prophet 和 TensorFlow。这些库可帮助团队找到他们通过其他方式无法找到的见解。这让团队能够定期提供更新,让每个人都了解最新情况,并回答推动关键决策的战略性和高价值的问题。此外,Mode 还会使企业内的每个人都可以访问这些分析结构。由于Notebook笔记本完全托管,因此数据科学家可以直接与相关方共享自己的工作,而无需 IT 部门进行任何额外工作。

通过将 Mode 与 Amazon Redshift 相结合,数据团队还消除了将数据加载到 Amazon Redshift 的数据集成、清理或 ETL 流程中的常见瓶颈。借助 Amazon Redshift Spectrum,他们可以直接从 Mode 控制面板或Notebook笔记本查询 Amazon S3 数据湖中的数据。此外,他们还可以将这些查询与已加载到数据仓库中的数据结合使用。

动手尝试

我们为您提供了一个演示环境,让您可以亲身感受上述这些技术栈。如果您认为它适用于您的案例,只需几分钟即可开始使用 Mode 和 Amazon Redshift。如果您尚未使用 Amazon Redshift,可以开启 2 个月的免费试用,并按照建议部署解决方案。通过将 Mode 连接到 Amazon Redshift,您可以立即开始探索数据或尝试使用其中的公开数据集。

关于作者

Benn Stancil 是 Mode 的联合创始人兼首席分析师,Mode 是一家为数据科学家和分析师构建协作工具的公司。Benn 负责监督 Mode 的内部分析工作,同时也是数据科学社区的积极贡献者。此外,Benn 还是产品领导团队的成员,为 Mode 的产品发展方向提供战略性指导。

Ayush Jain 是 Amazon Web Services 的产品营销人员。他喜欢发展云服务,并帮助客户从云部署中获得更多价值。他在软件开发、产品管理和产品营销领域从事开发和数据服务工作,并且拥有多年经验。

Himanshu Raja 是 Amazon Redshift 的高级产品经理。Himanshu 喜欢解决数据难题,当数据与直觉相悖时,他爱不忍释。在业余时间,Himanshu 喜欢烹饪印度美食和观看动作电影。