AWS Step Functions 协调我们的管道
Posted: Sun Feb 02, 2025 4:28 am
为了协调我们的管道,我们使用 AWS Step Functions。
Step Functions 是一项完全托管的服务,这意味着您不需要配置任何实例。
Step 函数依赖于状态机的概念,并且可以作为 JSON 文档实现。除了许多其他功能外,它们还允许同步和异步运行作业、处理依赖关系、并行执行等。
当然,Glue、Lambda 和 Batch 与 Step Functions 完全集成。可以说,支持 DAG(有向无环图)的工具可能更适合复杂的批处理管道,但直到最近,AWS 中还没有提供此类工具作为托管服务。
AWS 现在提供 Apache Airflow作为托管的无服务器服务。当然,我们将来会对此进行评估,但事实是,Step 函数为我们提供了良好的服务。它们易于实施和维护,并提供我们需要的所有功能。
我们的云数据仓库
由于我们依赖 AWS,因此Redshift是我们数据仓库的自然选择。它具有许多 belarus电子邮件列表 优点和一些缺点,我不会详细介绍。
Redshift 适合我们的无服务器方法,因为它不需要服务器管理,并且垂直和水平扩展都是一个相对简单的过程。
此外,还提供工作负载管理和自动快照等类似生产的功能,使其成为 AWS 中支持我们的分析功能的绝佳解决方案。
此外,查询性能令人满意并能够支持我们的报告要求。
最近,我们还开始致力于将 AWS Spectrum 添加到我们的堆栈中。
Spectrum 允许查询外部数据,例如存储在 S3 中的数据,因此您不需要将数据导入数据库。
報告,報告!
我们的报告是通过基于云的分析服务Tableau Online完成的。它是我们 AWS 基础设施之外的唯一分析组件。
在 Tableau Online 上,我们可以创建和共享报告、安排摘录、创建临时分析,所有这一切都可以在一个非常舒适的用户界面中进行 - 这是分析师梦寐以求的(对吧?)。
无需赘述,它提供了我们所需的功能,无需管理任何服务器,而且可以无缝扩展。
正如预期的那样,Tableau 也存在挑战。主要是因为它与数据库直接连接,分析师可以使用任意 SQL 代码发布报告并安排其运行。
为了解决这个问题,我们实施了一些数据治理措施,例如在 Redshift 中为资源受限的 Tableau 用户提供单独的队列。
我们还启动了一项流程,将提取计划改为 ETL 的一部分(而不是使用 Tableau UI)。这样,我们将控制出于报告目的运行哪些查询以及在何时运行它们;这主要是通过 Tableau API 完成的。
我们的最终目标是将 Tableau 集成到我们的数据基础设施中,并像管理其他组件一样管理它。
我们的无服务器方法加速了我们的分析,这对未来的工作意味着什么
事实证明,我们的无服务器方法能够实现并加速分析在我们业务中的应用。
这并非没有其自身的挑战和局限性,但它确实可以在提供一致的质量和促进敏捷变更管理的同时节省大量成本。
Step Functions 是一项完全托管的服务,这意味着您不需要配置任何实例。
Step 函数依赖于状态机的概念,并且可以作为 JSON 文档实现。除了许多其他功能外,它们还允许同步和异步运行作业、处理依赖关系、并行执行等。
当然,Glue、Lambda 和 Batch 与 Step Functions 完全集成。可以说,支持 DAG(有向无环图)的工具可能更适合复杂的批处理管道,但直到最近,AWS 中还没有提供此类工具作为托管服务。
AWS 现在提供 Apache Airflow作为托管的无服务器服务。当然,我们将来会对此进行评估,但事实是,Step 函数为我们提供了良好的服务。它们易于实施和维护,并提供我们需要的所有功能。
我们的云数据仓库
由于我们依赖 AWS,因此Redshift是我们数据仓库的自然选择。它具有许多 belarus电子邮件列表 优点和一些缺点,我不会详细介绍。
Redshift 适合我们的无服务器方法,因为它不需要服务器管理,并且垂直和水平扩展都是一个相对简单的过程。
此外,还提供工作负载管理和自动快照等类似生产的功能,使其成为 AWS 中支持我们的分析功能的绝佳解决方案。
此外,查询性能令人满意并能够支持我们的报告要求。
最近,我们还开始致力于将 AWS Spectrum 添加到我们的堆栈中。
Spectrum 允许查询外部数据,例如存储在 S3 中的数据,因此您不需要将数据导入数据库。
報告,報告!
我们的报告是通过基于云的分析服务Tableau Online完成的。它是我们 AWS 基础设施之外的唯一分析组件。
在 Tableau Online 上,我们可以创建和共享报告、安排摘录、创建临时分析,所有这一切都可以在一个非常舒适的用户界面中进行 - 这是分析师梦寐以求的(对吧?)。
无需赘述,它提供了我们所需的功能,无需管理任何服务器,而且可以无缝扩展。
正如预期的那样,Tableau 也存在挑战。主要是因为它与数据库直接连接,分析师可以使用任意 SQL 代码发布报告并安排其运行。
为了解决这个问题,我们实施了一些数据治理措施,例如在 Redshift 中为资源受限的 Tableau 用户提供单独的队列。
我们还启动了一项流程,将提取计划改为 ETL 的一部分(而不是使用 Tableau UI)。这样,我们将控制出于报告目的运行哪些查询以及在何时运行它们;这主要是通过 Tableau API 完成的。
我们的最终目标是将 Tableau 集成到我们的数据基础设施中,并像管理其他组件一样管理它。
我们的无服务器方法加速了我们的分析,这对未来的工作意味着什么
事实证明,我们的无服务器方法能够实现并加速分析在我们业务中的应用。
这并非没有其自身的挑战和局限性,但它确实可以在提供一致的质量和促进敏捷变更管理的同时节省大量成本。