我们可以将雪花用作数据驱动的Web应用程序的数据库吗?

时间:2020-09-04 12:45:41

标签: snowflake-cloud-data-platform talend

我是Asp.Net MVC / SQLSERVER开发人员,我对所有这些都是新手,所以我可能走错了路。

我通过谷歌搜索了解到Snowwflake可以从AWS-S3,Google Storage和Azure放置/获取数据。 Snowflake也有其数据库和表。 我有以下问题,

  1. 当您可以使用Cloud Storage(S3等)和Talend或任何其他ETL工具计算数据时,为什么应该使用Snowflake?
  2. 我们可以将Snowflake用作数据驱动的Web应用程序的数据库吗?如果可以,您能否提供链接或开始的东西?

我再次对所有这些都非常陌生,并希望您能找到想法和最好的方法来解决这个问题。

提前提醒你。

2 个答案:

答案 0 :(得分:2)

您可以使用https://docs.snowflake.com/en/user-guide/odbc.html之类的连接器之一将Web应用程序连接到Snowflake

Snowflake擅长处理难以扩展和调整的大型分析工作负载。例如,如果您有很多(百万/十亿)事件要聚合到仪表板中,那么Snowflake可能是一个合适的选择。

答案 1 :(得分:2)

当您可以使用Cloud Storage(S3等)和Talend或任何其他ETL工具计算数据时,为什么应该使用Snowflake?

您正在谈论的是三种不同类别的技术产品,它们不是等效的:

雪花是一个数据库平台,类似于其他数据库技术,它提供数据存储和元数据以及用于数据操作和管理的SQL接口。

AWS S3 (和类似产品)为任何类型的文件提供可扩展的云存储。您通常需要实施其他技术,例如Spark,Presto或Amazon Athena,以查询作为文件存储在云存储中的数据。 Snowflake还可以利用云存储中的数据文件,或者直接作为“外部表”查询文件,也可以使用COPY语句将数据加载到Snowflake本身。

Talend 和其他ETL或数据集成工具用于在源平台和目标平台之间移动数据。通常,这将从业务应用程序(例如ERP系统)到数据仓库或数据湖。

因此,在考虑雪花时,您需要考虑三件事:

  1. 您的分析数据将存储在哪里?它会是云存储中的文件,加载到数据库中还是两者混合?每种情况都有优点和缺点。

  2. 您要如何查询数据?很可能您会想要一些支持使用SQL查询的东西,如上所述,有许多技术支持云存储中文件的SQL。但是,如果将数据加载到专用的分析数据库中,则查询性能通常会大大提高。

  3. 无论如何,数据将如何从数据源到达分析数据存储库?通常,这将涉及到第三方ETL工具,或使用您自己的解决方案(最初可能是较便宜的选择,但可能会成为重要的管理和支持开销)。

我们可以使用Snowflake作为数据驱动的Web应用程序的数据库吗?

从理论上讲,答案是肯定的。这很大程度上取决于您的Web应用程序执行的操作,因为Snowflake是为分析设计的数据库,即处理大量数据以寻找问题的答案。它不是为涉及大量更新和少量数据插入的系统设计的 transactional 数据库。例如,雪花不支持参照完整性之类的功能。
但是,如果您的Web应用程序是分析应用程序(例如,它具有嵌入的报表,该查询会查询大量数据,并且用户通常会读取数据而不添加数据),则可以将Snowflake用作分析部分的后端,尽管您可能仍希望传统数据库来管理用户和会话之类的数据。