Snowflake cloud data platform 连接到雪花连接器时,在笔记本电脑中运行报告的最佳方式是什么?

Snowflake cloud data platform 连接到雪花连接器时,在笔记本电脑中运行报告的最佳方式是什么?,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我的最后两个问题是关于如何连接到snowflake以及如何在ipython笔记本中使用python连接器添加和读取数据。然而,下一个最好的步骤是用我想要可视化的数据创建一个报告,这让我很烦恼 我想上传所有的数据,存储,然后分析,就像一个自制的仪表板 到目前为止,我所做的只是一个小版本: 暂存本地文件中的数据,然后运行添加新数据 每次我打开笔记本 然后,我将使用python连接器调用存储中的任何数据 使用本地笔记本中的numpy对象创建可视化效果。 我的数据一开始会非常小,但随着时间的推移,我会想

我的最后两个问题是关于如何连接到snowflake以及如何在ipython笔记本中使用python连接器添加和读取数据。然而,下一个最好的步骤是用我想要可视化的数据创建一个报告,这让我很烦恼

我想上传所有的数据,存储,然后分析,就像一个自制的仪表板

到目前为止,我所做的只是一个小版本:

暂存本地文件中的数据,然后运行添加新数据 每次我打开笔记本 然后,我将使用python连接器调用存储中的任何数据 使用本地笔记本中的numpy对象创建可视化效果。 我的数据一开始会非常小,但随着时间的推移,我会想象我必须将计算转移到云端,以最小化本地用于小型仪表板的内存


我的问题是,我的数据是从一个产生json文件的api调用的,新数据每天不超过75MB,8列,有两个对数据的聚合调用,在sql调用中完成。如果我每月运行这些可视化功能,那么最好是将信息聚合到Snowflake中,还是在本地?

将原始数据放入Snowflake中。使用任务和过程将其聚合并存储结果。或者更好的是,除了需要数据时,不要进行任何聚合——让Snowflake根据原始数据实时进行聚合

我认为您可能会问,您是应该ETL数据还是ELT数据:

ETL:按顺序提取、转换、加载—从API中提取数据。在计算机上本地转换它。把它装进雪花里。 ELT:按顺序提取、加载、转换-从API中提取数据。把它装进雪花里。在它变成雪花后再进行变换。 ETL和ELT都是有效的。许多公司交替使用这两种方法w/snowflake。但Snowflake是为了让它成为您的数据湖而构建的——其理念是,将您的所有数据都放在这里,然后使用我们强大的计算和存储资源快速、轻松地转换它们

在Snowflake ELT或ELT vs ETL上进行谷歌搜索以获取更多信息

以下是我头脑中的一些想法:

您正在使用的工具:一些像SSI这样的工具是在考虑ETL的情况下构建的——在将数据存储到仓库之前对数据进行转换。这并不是说你不能用英语教学,但它并不是在你的脑海中建立起来的。更现代的工具——比如Fivetran甚至Snowpipe——假设您要将所有数据聚合成雪花,然后在雪花出现后进行转换。我真的很喜欢ELT模式——也就是说,只要把你的数据放到云端——一旦数据放到云端,就可以快速转换

数据的大小和增长:如果您的数据在增长,那么在本地资源上管理它就变得越来越困难。当数据以千兆字节或数百万行为单位时,这可能无关紧要。但当你进入数十亿行或万亿字节的数据时,云的扩展能力无法与之匹敌。如果您觉得这可能会发生,并且您认为将其放入云中不是一个过早的优化,我会将您的原始数据加载到Snowflake中,并在其到达后进行转换

计算和存储容量:也许你手头有大量的存储和计算空间。也许您有一个on-prem集群,您可以随时提供资源。大多数人都没有

短期计算和存储成本:也许你现在有一些有限的资源可以使用,而你不愿意支付Snowflake,因为你有限的资源可以完成这项工作。话虽如此,似乎转换这些数据的计算量将非常小,而且您只能每天或每月执行一次。如果是这样,计算成本将非常低

数据安全或隐私:在将数据移动到公共云之前,您可能需要匿名化数据。如果这对您很重要,您应该研究Snowflake的安全功能,但是如果您所在的公司很难获得安全审查,并且您需要继续做一些事情,那么在等待安全审查的同时预先对其进行转换是一个很好的选择

数据结构:数据中是否有重复项?为了执行转换,您是否需要访问雪花中的其他数据才能加入?当您开始将越来越多的数据放入Snowflake中时,在它进入Snowflake后对其进行转换是有意义的-这就是您所有数据所在的位置,您会发现在云中加入、查询和转换所有其他数据所在的位置更容易。

我的问题是,我的数据是从一个生成json文件的api调用的,新数据每天不超过75MB,8列,有两个对数据的聚合调用,在sql调用中完成。如果我每月运行一次这些可视化,那么最好是以雪花或本地方式聚合信息

我会用pyth将你的数据展平 on或Snowflake-取决于您觉得使用哪个更舒适,或者数据有多复杂。您可以直接在json上执行所有操作,尽管我自己很少这样设计,但查询速度最慢

至于聚合数据,我总是在雪花上这样做。如果您希望以各种方式对数据进行切片和切分,您可以设计一个数据集市数据模型,并让您的仪表板通过查询动态聚合数据。雪花应该是相当好的,但为了增加速度,然后将其聚合到几个月可能也是一个好主意


您可能也可以通过本地python脚本驱动(如无服务器lambda和事件驱动WW)来成熟您的流程,并使用调度器。

我强烈建议您让Snowflake在这里为您完成这项工作。它几乎可以无限扩展,因此您不必担心数据太大而无法在本地计算机上处理。您应该选择一个答案。