问题标签 [snowflake-cloud-data-platform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
197 浏览

sql - 雪花语法 - 语法中的意外空格字符

询问

结果如下所示 XXXX888543_134 1 ---最后一个值之前有一个空格。我不确定这是从哪里得出的。请对我可以在上面的字符串中修改的内容有任何想法。

0 投票
2 回答
728 浏览

sql - 如何将此 mysql 查询转换为在雪花/mpp 上运行

背景

我正在努力将此 mysql 查询转换为在没有可以在行级别设置的变量的数据库上工作,就像使用 mysql 一样。我不确定是否可以在不循环的情况下做到这一点,但这就是目标。

问题

我们有一个客户 IDid和一个会话时间戳event_datetime

对于每个客户,我需要根据以下定义将每个会话解释为有效或无效:

  • 有效会话将在 30 分钟后过期。
  • 如果会话没有在较早的有效会话的时间范围内发生,则该会话是有效的。

另一个定义很容易计算:如果自上次会话以来已经 30 分钟,则会话有效。但这不是我在这里所追求的。

例如:

我只是想避免循环。使用任何常用的分析/窗口函数都可以。最终,我试图在雪花上实现这一点。

我试过的

我试图想出一些使用窗口函数的东西,加入,不存在,但努力寻找解决方案。例如,对会话时间差异进行运行总和似乎很有希望,但我想不出如何在达到 30 分钟后让累积总和重置为零。我知道我可以订购每个客户的会话并循环遍历(这样最大迭代将是单个客户的最大会话数),但要避免这种情况。

示例数据和mysql解决方案

下面是一个使用mysql的解决方案。计算两个定义(30 分钟流逝和 30 分钟到期)。

在此示例数据中,会话2017-12-10 07:55:53将根据 30 分钟到期有效,但根据 30 分钟流逝无效。距离上一次会话仅 10 分钟,但距离上次验证会话已超过 30 分钟。

0 投票
1 回答
1363 浏览

user-defined-functions - SnowFlake 中 SQL UDF 与 Javascript UDF 的性能对比

我们正在尝试在 Snowflake 中实现间隔值的添加。由于 Snowflake 中不支持间隔数据类型,我们正在尝试使用 UDF 来实现相同的功能。我们将间隔转换为秒,在获得总秒数后,我们将总秒转换为所需的目标间隔类型。

我们使用 SQL UDF 和 Javascript UDF 实现了相同的逻辑。

Javascript UDF

SQL UDF

对于嵌套级别间隔添加查询,基于 Javascript 的 UDF 的性能要好于基于 SQL 的 UDF。

造成巨大性能差异的原因可能是什么?

0 投票
1 回答
390 浏览

mysql - 如何处理where子句中的非ASCII字符

我在使用 Oracle、MySQL、雪花查询的 where 子句中遇到了非 ascii 字符的问题。

此查询不返回任何结果。

是否有任何解决方案来处理 where 子句中的非 ascii 字符,然后请回复我。

谢谢。

0 投票
1 回答
141 浏览

sql - 将 Int 列作为分钟添加到时间戳

我一直在对不同数据库进行一些转换,但遇到了困难。我有 3 个我正在玩的领域。我有一个日期格式的 testdate 字段。除了 testdate 我还有一个时间格式的 testtime 字段和一个整数的 testminutes。我想将这些字段连接在一起以创建时间戳,使用

我的桌子是这样建造的:

最终目标是更改表以添加两列,如下所示:

然后填充那些列开始时间

这导致需要将 testminutes 添加到此 begintime 字段以查找 endtime 的问题。

主要目标是将 testminutes 添加到 testdate + testtime 的时间戳中

我想这样做,以便在提供日期、开始时间和持续时间时获得事件结束时间的时间戳。

有点卡在这里,非常感谢您的帮助!

0 投票
2 回答
1081 浏览

sql - 如何在 Snowflake 中使用自动增量列创建视图

我需要在雪花中创建一个视图,但我需要添加一个表中不存在的自动增量列

0 投票
3 回答
558 浏览

snowflake-cloud-data-platform - 如何优化雪花上中等大小的 II 型表的连接?

背景

假设我有以下表格:

Visitor_customer_hist 给出在每个时间点对每个访问者有效的 customer_id。

目标是使用 visitor_id 和 session_datetime 查找对每个会话有效的客户 ID。

问题

即使仓库规模很大,这个查询也非常慢。耗时 1h15m 完成,是仓库中唯一运行的查询。

我验证了visitor_customer_hist 中没有重叠值,其存在可能导致重复连接。

雪花在这种连接上真的很糟糕吗?我正在寻找有关如何优化此类查询、重新聚类或任何优化技术或重新处理查询的表的建议,例如可能是相关子查询或其他东西。

附加信息

轮廓: 轮廓

0 投票
1 回答
67 浏览

sql - 无论如何要更聪明地做出关于排名的案例陈述?

我想将我的等级分组为数据块。我想过使用 CASE 语句,但这不仅看起来很傻,而且速度也很慢

关于如何改进的任何提示?

请注意块的大小不同(首先列出前 100 个块,然后是 100 个块,然后是 1000 个块,然后是 5000 个块和 3 个其他 15K 块)

0 投票
3 回答
805 浏览

sql - 循环并使用 UNION_ALL 组合模式/表

我想使用 UNION_ALL 组合来自不同模式的表。这些表具有相同的架构,就像在这个玩具示例中一样:

我可以将类列表硬编码到一个数组中,或者更优选地,使用如下查询获取它们:

我想像这样组合表格:

但是在模式级查询中会有更多的事情发生,SELECT *, 'class1'...所以我想使用循环或其他一些系统方法来做到这一点。

我正在查看动态 sql 或使用带有 'UNION_ALL' 的 GROUP_CONCAT 作为分隔符,但我无法取得进展。

附录:我知道这是糟糕的架构设计,但我现在对此无能为力。

0 投票
1 回答
529 浏览

amazon-s3 - 为什么 matillion 不从 S3 加载数据?

我有一个包含所有正确信息的简单 S3 负载。没有验证错误,但是包执行没有问题。只是表中没有数据。了解 Matillion 的人有什么建议吗?