问题标签 [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.
sql - 雪花语法 - 语法中的意外空格字符
询问
结果如下所示 XXXX888543_134 1 ---最后一个值之前有一个空格。我不确定这是从哪里得出的。请对我可以在上面的字符串中修改的内容有任何想法。
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 分钟。
user-defined-functions - SnowFlake 中 SQL UDF 与 Javascript UDF 的性能对比
我们正在尝试在 Snowflake 中实现间隔值的添加。由于 Snowflake 中不支持间隔数据类型,我们正在尝试使用 UDF 来实现相同的功能。我们将间隔转换为秒,在获得总秒数后,我们将总秒转换为所需的目标间隔类型。
我们使用 SQL UDF 和 Javascript UDF 实现了相同的逻辑。
Javascript UDF
SQL UDF
对于嵌套级别间隔添加查询,基于 Javascript 的 UDF 的性能要好于基于 SQL 的 UDF。
造成巨大性能差异的原因可能是什么?
mysql - 如何处理where子句中的非ASCII字符
我在使用 Oracle、MySQL、雪花查询的 where 子句中遇到了非 ascii 字符的问题。
此查询不返回任何结果。
是否有任何解决方案来处理 where 子句中的非 ascii 字符,然后请回复我。
谢谢。
sql - 将 Int 列作为分钟添加到时间戳
我一直在对不同数据库进行一些转换,但遇到了困难。我有 3 个我正在玩的领域。我有一个日期格式的 testdate 字段。除了 testdate 我还有一个时间格式的 testtime 字段和一个整数的 testminutes。我想将这些字段连接在一起以创建时间戳,使用
我的桌子是这样建造的:
最终目标是更改表以添加两列,如下所示:
然后填充那些列开始时间
这导致需要将 testminutes 添加到此 begintime 字段以查找 endtime 的问题。
主要目标是将 testminutes 添加到 testdate + testtime 的时间戳中
我想这样做,以便在提供日期、开始时间和持续时间时获得事件结束时间的时间戳。
有点卡在这里,非常感谢您的帮助!
sql - 如何在 Snowflake 中使用自动增量列创建视图
我需要在雪花中创建一个视图,但我需要添加一个表中不存在的自动增量列
sql - 无论如何要更聪明地做出关于排名的案例陈述?
我想将我的等级分组为数据块。我想过使用 CASE 语句,但这不仅看起来很傻,而且速度也很慢
关于如何改进的任何提示?
请注意块的大小不同(首先列出前 100 个块,然后是 100 个块,然后是 1000 个块,然后是 5000 个块和 3 个其他 15K 块)
sql - 循环并使用 UNION_ALL 组合模式/表
我想使用 UNION_ALL 组合来自不同模式的表。这些表具有相同的架构,就像在这个玩具示例中一样:
我可以将类列表硬编码到一个数组中,或者更优选地,使用如下查询获取它们:
我想像这样组合表格:
但是在模式级查询中会有更多的事情发生,SELECT *, 'class1'...
所以我想使用循环或其他一些系统方法来做到这一点。
我正在查看动态 sql 或使用带有 'UNION_ALL' 的 GROUP_CONCAT 作为分隔符,但我无法取得进展。
附录:我知道这是糟糕的架构设计,但我现在对此无能为力。
amazon-s3 - 为什么 matillion 不从 S3 加载数据?
我有一个包含所有正确信息的简单 S3 负载。没有验证错误,但是包执行没有问题。只是表中没有数据。了解 Matillion 的人有什么建议吗?