Skip to content

Instantly share code, notes, and snippets.

View BigDataDave1's full-sized avatar

BigDataDave BigDataDave1

View GitHub Profile
@BigDataDave1
BigDataDave1 / store_get_show2.sql
Created November 26, 2020 12:29
Get the SHOW() command results and store it as JSON in a table.
--Add in STORE_GET_SHOW2()
CREATE OR REPLACE PROCEDURE STORE_GET_SHOW2 (OBJECT STRING)
RETURNS STRING
LANGUAGE JAVASCRIPT
EXECUTE AS CALLER
AS
$$
try {
//First call the show command for the input object
var sqlcmd = `SHOW ` + OBJECT + `;`
@BigDataDave1
BigDataDave1 / stv_full_task_history.sql
Created November 25, 2020 18:18
Snowflake Tasks for Task Visualizer - Full Task History
--Queries to Visualize Run & Timing for Explicit Tasks Tree
--Parent Task Visual Heat Map
select
query_id,
database_name || '.' || schema_name || '.' || name as task_name,
scheduled_time,
datediff('seconds',query_start_time, completed_time) as run_time_in_seconds
from table(
information_schema.task_history(
scheduled_time_range_start=>dateadd('hour',-24,current_timestamp()),
@BigDataDave1
BigDataDave1 / stv_dynamic_cte.sql
Last active November 26, 2020 00:22
Snowflake Tasks for Task Visualizer - Dynamic CTE
--Query to Visualize All Dependencies for Tasks Dynamic with a Recursive CTE
with recursive tasks_layering (layer_id, top_level_task_name, task_name, predecessor_name, dependency_tree) as (
select
1 as layer_id,
path as top_level_task_name,
path as task_name,
predecessor as predecessor_name,
path as dependency_tree from
(select v:name::string as name, v:schedule::string as schedule,
v:predecessors::string as predecessor,
@BigDataDave1
BigDataDave1 / stv_using_connect_by.sql
Last active November 26, 2020 00:21
Snowflake Tasks for Task Visualizer - Using Connect By
--Call Get Show 2 with Tasks
call store_get_show2('tasks');
select v::variant from tasks_table;
--Query to Visualize Dependencies Explicit
select *, sys_connect_by_path (path, '->') as dependency_tree , level
from (select v:name::string as name, v:schedule::string as schedule,
v:predecessors::string as predecessor,
v:database_name::string || '.' || v:schema_name::string || '.' || v:name::string as path
from demo.public.tasks_table)
@BigDataDave1
BigDataDave1 / stv_task_history.sql
Created November 25, 2020 18:13
Snowflake Tasks for Task Visualizer - Task History
--Full Task History
(select *
from table(
information_schema.task_history(
scheduled_time_range_start=>dateadd('hour',-24,current_timestamp()),
result_limit => 100,
task_name=>'t01_ctas')))
union
(select *
from table(
@BigDataDave1
BigDataDave1 / stv_create_generic_tasks.sql
Created November 25, 2020 18:11
Snowflake Tasks for Task Visualizer - Create Generic Tasks
--Context
use role accountadmin;
use database demo;
use schema public;
use warehouse demo_wh;
--Show all Tasks in Account
show tasks in account;
--Show all Tasks in Demo Database
@BigDataDave1
BigDataDave1 / covid_quadrant_tableau.basic
Last active November 25, 2020 16:59
Tableau Formula for Creating a Quadrant Label for County Data Points vs Peers
//Quadrant (County Deaths & Cases)
//Q1
IF (SUM([DEATHS_PER_100K]) > WINDOW_AVG(SUM([DEATHS_PER_100K])) AND
SUM([CASES_PER_100K]) > WINDOW_AVG(SUM([CASES_PER_100K]))) THEN
"Quadrant I - High Deaths and High Infections"
//Q2
ELSEIF (SUM([DEATHS_PER_100K]) > WINDOW_AVG(SUM([DEATHS_PER_100K])) AND
SUM([CASES_PER_100K]) < WINDOW_AVG(SUM([CASES_PER_100K]))) THEN
@BigDataDave1
BigDataDave1 / covid_quadrant_map.sql
Created November 25, 2020 16:55
CTE for Creating a COVID Data Set from JHU and Safegraph from the Snowflake Data Marketplace
--County Data with Populations, Deaths and Cases
WITH
cases AS (
SELECT JHU.FIPS, JHU.PROVINCE_STATE, JHU.COUNTY, JHU.DATE, GEOSQL.COUNTY_POPULATION,
SUM(JHU.CASES) AS COUNTY_CASES,
DIV0(COUNTY_CASES,GEOSQL.COUNTY_POPULATION) AS CASES_PER_CAPITA_COUNTY,
CASES_PER_CAPITA_COUNTY * 100000 AS CASES_PER_100K
FROM STARSCHEMA_COVID19.PUBLIC.JHU_COVID_19 JHU
LEFT JOIN (
SELECT LEFT(CBG,5) AS FIPS, SUM(GEO.TOTAL_POPULATION) AS COUNTY_POPULATION
@BigDataDave1
BigDataDave1 / nested_json_from_tables_cte.json
Created November 25, 2020 15:58
Snowflake JSON for Nesting Multiple Tables as JSON Out
{
"AUTO_CLUSTERING_ON": "NO",
"BYTES": 105472,
"COLUMNS": [
{
"COLUMN_NAME": "CAL_DATE",
"COLUMN_PATH": "ANALYTICS.PUBLIC.CALENDAR_DATE.CAL_DATE",
"DATA_TYPE": "DATE",
"IS_IDENTITY": "NO",
"IS_NULLABLE": "NO",
@BigDataDave1
BigDataDave1 / nested_json_from_tables_cte.sql
Created November 25, 2020 15:56
Snowflake SQL for Nesting Multiple Tables as JSON Out
--2 Tables, Nested, BAM!
WITH
TABLES_JSON AS (
SELECT TABLE_CATALOG || '.' || TABLE_SCHEMA || '.' || TABLE_NAME AS TABLE_PATH,
TABLE_CATALOG,
TABLE_SCHEMA,
TABLE_NAME,
TABLE_OWNER,
TABLE_TYPE,
CLUSTERING_KEY,