我计划每 15 分钟运行一次任务:
CREATE OR REPLACE TASK mytask
WAREHOUSE = 'SHARED_WH_MEDIUM'
SCHEDULE = '15 MINUTE'
STATEMENT_TIMEOUT_IN_SECONDS = 3600,
QUERY_TAG = 'KLIPFOLIO'
AS
CREATE OR REPLACE TABLE mytable AS
SELECT * from xxx;
;
alter task mytask resume;
Run Code Online (Sandbox Code Playgroud)
我从输出中看到task_history()任务是SCHEDULED:
select * from table(aftonbladet.information_schema.task_history(task_name => 'MYTASK')) order by scheduled_time;
QUERY_ID NAME DATABASE_NAME SCHEMA_NAME QUERY_TEXT CONDITION_TEXT STATE ERROR_CODE ERROR_MESSAGE SCHEDULED_TIME COMPLETED_TIME RETURN_VALUE
*** MYTASK *** *** *** SCHEDULED 2020-01-21 09:58:12.434 +0100
Run Code Online (Sandbox Code Playgroud)
但我希望它立即运行而不等待 SCHEDULED_TIME,有什么方法可以实现这一点吗?
我尝试通过 dbt 连接到 Snowflake,但连接失败并出现以下错误:
Using profiles.yml file at /home/myname/.dbt/profiles.yml
Using dbt_project.yml file at /mnt/c/Users/Public/learn_dbt/rks-learn-dbt/learn_dbt/dbt_project.yml
Configuration:
profiles.yml file [ERROR invalid]
dbt_project.yml file [OK found and valid]
Profile loading failed for the following reason:
Runtime Error
Could not find profile named 'learn_dbt'
Required dependencies:
- git [OK found]
Run Code Online (Sandbox Code Playgroud)
请任何建议。
注意:我正在观看 udemy 视频学习设置 dbt 连接。
以下是我的profiles.yml文件:
Using profiles.yml file at /home/myname/.dbt/profiles.yml
Using dbt_project.yml file at /mnt/c/Users/Public/learn_dbt/rks-learn-dbt/learn_dbt/dbt_project.yml
Configuration:
profiles.yml file [ERROR invalid]
dbt_project.yml file [OK found and valid]
Profile loading failed for …Run Code Online (Sandbox Code Playgroud) 我正在尝试修复数据集中的数组。目前,我有一个数据集,其中包含多个不同 uuid 的引用号。我想做的就是在 Snowflake 中将其展平,以便每个 uuid 的参考号都有单独的行。例如
Reference UUID
1) 9f823c2a-ced5-4dbe-be65-869311462f75 "[
""05554f65-6aa9-4dd1-6271-8ce2d60f10c4"",
""df662812-7f97-0b43-9d3e-12f64f504fbb"",
""08644a69-76ed-ce2d-afff-b236a22efa69"",
""f1162c2e-eeb5-83f6-5307-2ed644e6b9eb"",
]"
Run Code Online (Sandbox Code Playgroud)
最终应该看起来像:
Reference UUID
1) 9f823c2a-ced5-4dbe-be65-869311462f75 05554f65-6aa9-4dd1-6271-8ce2d60f10c4
2) 9f823c2a-ced5-4dbe-be65-869311462f75 df662812-7f97-0b43-9d3e-12f64f504fbb
3) 9f823c2a-ced5-4dbe-be65-869311462f75 08644a69-76ed-ce2d-afff-b236a22efa69
4) 9f823c2a-ced5-4dbe-be65-869311462f75 f1162c2e-eeb5-83f6-5307-2ed644e6b9eb
Run Code Online (Sandbox Code Playgroud)
我刚刚开始在 Snowflake 工作,所以我对它很陌生。看起来有一个横向扁平化,但这要么不能告诉我我有各种各样的错误。雪花的文档在这方面有点令人困惑。
sql arrays snowflake-schema snowflake-cloud-data-platform snowflake-task
雪花允许 UNIQUE、PRIMARY KEY、FOREIGN KEY 和 NOT NULL 约束,但我读到它只强制执行 NOT NULL 约束。那么其他key的作用是什么,在什么情况下我们必须定义它们呢?我很欣赏任何例子。
谢谢你,普拉尚。
snowflake-schema snowflake-cloud-data-platform snowflake-task
在 SnowFlake 中,是否有任何选项可以在存储过程中并行执行 sql 语句。我有一个存储过程(如下所示),其中有 35 个 sql 语句,它们按顺序运行。我们计划减少时间,考虑并行执行所有这些。
实现这一目标的最佳方法是什么?(我能想到的就是创建 35 个存储过程并同时从调度程序中调用它们)。想检查一下 SnowFlake 功能是否有更好的方法来实现这一目标?
create or replace procedure SP_TEST()
returns string
language javascript
execute as CALLER
as
$$
try {
var step_num = 0
step_num = 0
step_num++ //--#1
var sql_statement1 = snowflake.createStatement( {sqlText: `INSERT INTO TGT_TBL select * from TBL_A`} )
var sql_statement1_execute = sql_statement1.execute()
step_num++ //--#1
var sql_statement2 = snowflake.createStatement( {sqlText: `INSERT INTO TGT_TBL select * from TBL_B`} )
var sql_statement2_execute = sql_statement2.execute()
return "Completed "+step_num+" steps to …Run Code Online (Sandbox Code Playgroud) 我想找出挂起的任务,输出SHOW TASKS太长,无法快速查看哪些任务实际上被挂起(我们有很多任务)
有没有办法只获取挂起的任务名称并过滤掉实际启动的任务?
获取雪花中的日期全名
我尝试使用下面的查询来获取日期名称,但只给出短名称(一天的 3 个字符)
SELECT upper(trim(DAYNAME(CURRENT_DATE)))
Run Code Online (Sandbox Code Playgroud)
上班时间:周一
预期产出:周一
date snowflake-schema snowflake-cloud-data-platform snowflake-task
雪花中两个日期之间的年龄
在 Netezza 中,我们有名为 AGE 的函数,但雪花我找不到类似的东西
Netezza:选择 AGE('2019-12-01','2018-12-12') - 日期:11 个月 20 天
雪花有类似的功能吗?