连接到雪花连接器时在笔记本中运行报告的最佳方法是什么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连接到雪花连接器时在笔记本中运行报告的最佳方法是什么?相关的知识,希望对你有一定的参考价值。

我最近的两个问题是如何在ipython笔记本中使用python连接器连接雪花和添加和读取数据。但是,我在下一步最好的步骤上很麻烦,无法使用我想要可视化的数据来创建报告。

我想上传所有数据,进行存储,然后进行分析,有点像自制仪表板。

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

  1. 从本地文件分段我的数据,然后我将开始添加新数据每次打开笔记本]
  2. 然后我将使用python连接器从存储中调用任何数据
  3. 使用本地笔记本中的numpy对象创建可视化。

我的数据开始时会很小,但是随着时间的流逝,我想我会不得不将计算移至云中,以最小化用于小型仪表板的本地内存。

[我的问题是,我的数据是从一个生成json文件的api调用的,新数据每天不超过75 MB,即8列,其中两个聚合调用是在sql调用中完成的。如果我每月运行这些可视化,是否最好在Snowflake或本地汇总信息?

答案

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

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

  • ETL:提取,转换,加载(按此顺序)-从API中提取数据。在您的计算机上本地转换。将其加载到雪花中。
  • ELT:提取,加载,转换(按此顺序)-从API中提取数据。将其加载到雪花中。在Snowflake中对其进行转换。

ETL和ELT均有效。许多公司可交替使用带有雪花的两种方法。但是Snowflake的建立是为了使其成为您的数据湖-的想法是,“只需将所有数据放在这里,然后使用我们强大的计算和存储资源即可快速,轻松地进行转换。”

在“ Snowflake ELT”或“ ELT vs ETL”上进行Google搜索以获取更多信息。

这里有一些考虑事项离我很远:

正在使用的工具:某些SSIS之类的工具是在考虑ETL的基础上构建的-在将数据存储到仓库之前先进行数据转换。并不是说您不能进行ELT,但并不是在考虑ELT的情况下构建的。更现代的工具-如Fivetran或什至Snowpipe都假设您要将所有数据聚合到Snowflake中,然后将其转换到那里。我真的很喜欢ELT范例-即只要将您的数据放入云中-在那里就可以快速对其进行转换。

数据的大小和增长:如果数据在增长,则越来越难以在本地资源上进行管理。您的数据是千兆字节还是数百万行可能并不重要。但是,随着您获得数十亿行或TB的数据,云的可扩展性已无法匹敌。如果您认为可能会发生这种情况,并且认为将其放入云中并不是一个过早的优化,那么我会将原始数据加载到Snowflake中,然后将其转换到其中。

计算和存储容量:也许您可以轻松掌握大量的存储和计算功能。也许您有一个本地群集,您可以一口气配置资源。大多数人没有。

短期计算和存储成本:也许您今天可以使用一些适度的资源,而您不愿为Snowflake支付费用,而您的适度资源可以胜任这项工作。话虽如此,听起来转换数据的计算将非常少,您每天或每月只需要执行一次。如果是这种情况,计算成本将非常低。

数据安全性或隐私权:也许您需要先将数据匿名化,然后再将其移至公共云。如果这对您很重要,则应查看Snowflake的安全功能,但如果您所在的组织很难获得安全审核,则需要继续前进,在等待安全审核的同时进行本地转换是一个很好的选择。

数据结构:您的数据中是否有重复项?您是否需要访问Snowflake中的其他数据才能加入才能执行转换?随着您开始将越来越多的数据添加到Snowflake中,将数据转换到Snowflake中是有意义的-这就是您所有数据所在的位置,您会发现在所有其他数据所在的云中更轻松地进行连接,查询和转换。

另一答案

我的问题是,我的数据是从生成json文件的api中调用的,新数据每天不超过75 MB,即8列,其中两次聚合调用是在sql调用中完成的。如果我每月运行这些可视化,是否最好在Snowflake或本地汇总信息?

我会用python或Snowflake整理您的数据-取决于您使用哪种样式更舒适,或者数据的复杂程度。您可以直接在json上进行所有操作,尽管我很少考虑自己设计这种方式(这将是查询最慢的方式。)

关于汇总数据,我总是在Snowflake上进行。如果您想以各种方式对数据进行切片和切块,则可以考虑设计数据集市数据模型,并让仪表板通过查询即时汇总数据。雪花应该可以很好地解决这个问题,但是对于更高的速度,然后将其聚合长达几个月可能也是个好主意。

您可能会由于受本地python脚本驱动而变得更加成熟,例如无服务器lambda和带有调度程序的事件驱动。

以上是关于连接到雪花连接器时在笔记本中运行报告的最佳方法是什么?的主要内容,如果未能解决你的问题,请参考以下文章

如何将本地蜂巢连接到雪花?

在 Windows 10 上连接到 Sphero 螺栓并在不使用 Sphero edu 应用程序的情况下使用 javascript 连接到它的最佳方法是啥?

雪花:如何使用 .NET Core 连接到雪花

使用 DBeaver 通过 SSO 登录(外部浏览器)连接到雪花

无法使用 Pyspark 从 EMR 集群连接到雪花

当应用程序在本地运行时,Node.js 能够连接到 MySQL 容器,但当应用程序在容器中运行时无法连接