Skip to content

Latest commit

 

History

History
93 lines (47 loc) · 5.28 KB

build-streaming-semistructured-analytics-platform-snowflake.md

File metadata and controls

93 lines (47 loc) · 5.28 KB

如何在 Snowflake 上构建流式半结构化分析平台

原文:www.kdnuggets.com/2023/07/build-streaming-semistructured-analytics-platform-snowflake.html

如何在 Snowflake 上构建流式半结构化分析平台

编辑者图片

介绍


我们的前三大课程推荐

1. Google 网络安全证书 - 快速进入网络安全职业。

2. Google 数据分析专业证书 - 提升你的数据分析技能

3. Google IT 支持专业证书 - 支持你的组织 IT


Snowflake 是一种 SaaS,即软件即服务,特别适合对大量数据进行分析。该平台极其易于使用,非常适合业务用户、分析团队等从不断增长的数据集中获得价值。本文将深入探讨在 Snowflake 上为医疗数据创建流式半结构化分析平台的组件。我们还将讨论此阶段的一些关键考虑因素。

背景

医疗行业支持多种不同的数据格式,但我们将考虑最新的半结构化格式,即 FHIR(快速医疗互操作资源)来构建我们的分析平台。这种格式通常将所有以患者为中心的信息嵌入到一个 JSON 文档中。该格式包含大量信息,如所有医院接触、实验室结果等。当分析团队拥有一个可查询的数据湖时,可以提取有价值的信息,例如有多少患者被诊断为癌症等。假设所有这些 JSON 文件每 15 分钟通过不同的 AWS 服务或端 API 端点推送到 AWS S3(或其他公共云存储)。

架构设计

如何在 Snowflake 上构建流式半结构化分析平台

架构组件

  1. AWS S3 到 Snowflake RAW 区域:

  2. 数据需要不断地从 AWS S3 流式传输到 Snowflake 的 RAW 区域。

  3. Snowflake 提供 Snowpipe 管理服务,可以以连续流式方式读取 S3 中的 JSON 文件。

  4. 在 Snowflake RAW 区域中需要创建一个具有变体列的表,以保存原生格式的 JSON 数据。

  5. Snowflake RAW 区域到流:

  6. Streams 是一种管理更改数据捕获服务,能够捕获所有新到达的 JSON 文档到 Snowflake RAW 区域

  7. Streams 应指向 Snowflake RAW Zone 表,并应设置为 append=true

  8. Streams 就像任何表一样,易于查询。

  9. Snowflake 任务 1:

  10. Snowflake 任务类似于调度程序。查询或存储过程可以使用 cron 作业符号安排运行。

  11. 在此架构中,我们创建任务 1 来从 Streams 中获取数据,并将其导入临时表。此层将被截断并重新加载。

  12. 这样做是为了确保每 15 分钟处理一次新的 JSON 文档。

  13. Snowflake 任务 2:

  14. 此层将原始 JSON 文档转换为分析团队可以轻松查询的报告表。

  15. 要将 JSON 文档转换为结构化格式,可以使用 Snowflake 的 lateral flatten 功能。

  16. Lateral flatten 是一个易于使用的功能,可以展开嵌套的数组元素,并可以使用‘:’符号轻松提取。

关键考虑事项

  1. 推荐使用 Snowpipe 处理少量大文件。如果小文件在外部存储中未合并,成本可能会很高。

  2. 在生产环境中,确保创建自动化进程以监控 streams,因为一旦它们变得陈旧,数据将无法从中恢复。

  3. 单个 JSON 文档允许的最大大小为 16MB 压缩,能够加载到 Snowflake 中。如果您有超出这些大小限制的大型 JSON 文档,请确保在将其导入 Snowflake 之前有一个拆分的过程。

结论

由于 JSON 文档中嵌入的元素的嵌套结构,管理半结构化数据始终具有挑战性。在设计最终报告层之前,请考虑即将到来的数据量的逐步和指数增长。本文旨在展示如何轻松构建半结构化数据的流管道。

Milind Chaudhari 是一位经验丰富的数据工程师/数据架构师,拥有十年的工作经验,使用各种传统和现代工具构建数据湖/湖仓。他对数据流架构充满热情,并且还是 Packt 和 O'Reilly 的技术审稿人。

更多相关主题