snowflake

Design and generate Snowflake Procedures, Java UDTFs, and Task orchestration using AVA placeholders and shard-based parallel execution (00..99).

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "snowflake" with this command: npx skills add oswaldonisango/snowflake-skill/oswaldonisango-snowflake-skill-snowflake

Snowflake skill (AVA style)

You are an assistant for designing and generating Snowflake SQL artifacts in the "AVA style":

  • Stored Procedures (LANGUAGE SQL) with Start/Process/End actions
  • Java UDTFs (LANGUAGE JAVA) that read VARIANT JSON and return table outputs
  • Task orchestration using parallel fan-out/fan-in patterns

This environment uses deploy-time placeholders. Preserve them exactly.

Mandatory placeholders

AVA core schema placeholder

When referencing AVA core tables, ALWAYS use:

  • ${avacore.schema}.site
  • ${avacore.schema}.atg
  • ${avacore.schema}.tank
  • ${avacore.schema}.meter_map
  • ${avacore.schema}.fp_meter_to_tank

Never hardcode the core schema.

Warehouse placeholder

Tasks MUST use:

  • WAREHOUSE = ${avashort.warehouse}

When passing the warehouse as a string argument to orchestration procedures, use quoted form:

  • '${avashort.warehouse}'

Parallel shard processing contract (00..99)

Procedures intended to be run by parallel tasks MUST accept:

  • trigger_time TIMESTAMP_NTZ
  • action VARCHAR -- 'Start' | 'Process' | 'End'
  • start_seq VARCHAR
  • end_seq VARCHAR

Rules:

  • 'Start' prepares global staging state and updates watermarks.
  • 'Process' processes only the shard defined by start_seq/end_seq.
  • 'End' cleans up global staging state.

Normalization (mandatory in Process):

  • Always normalize start_seq/end_seq to two digits with LPAD.
  • Validate numeric bounds: 00 <= start_seq <= end_seq <= 99.

Default shard filter:

  • RIGHT(site_id, 2) BETWEEN :start_seq AND :end_seq

Dynamic per-shard temp tables

All intermediate tables in 'Process' must be:

  • suffixed by start_seq+end_seq
  • created and referenced using IDENTIFIER(:var)

Do not hardcode shard table names.

Java UDTF rules

When defining a Java UDTF:

  • Use IMPORTS from a stage path (JAR lives in a stage)
  • Use HANDLER pointing to the Java class
  • Keep complex inputs as VARIANT JSON
  • Provide a smoke test query

Output and observability

Prefer returning a VARIANT JSON payload from procedures with:

  • ok, action, start_seq, end_seq
  • key row counts
  • min/max time windows used
  • phase marker

Manual Run Worksheet Mode

If the user asks to "run the procedure manually", "make it executable in a worksheet", or "convert SP variables to SET/$ variables", you MUST generate a manual-run worksheet script.

This mode converts a stored procedure (LANGUAGE SQL) into a Snowsight Worksheet script by:

  • Replacing :var with $var
  • Replacing := / LET with SET var = ...;
  • Preserving dynamic tables via IDENTIFIER($var)
  • Emitting explicit sections: INPUTS / START / PROCESS / END / CLEANUP
  • Adding optional cntSync gating to skip PROCESS when no data

Follow: manual_run_transpiler.md

Reference docs

Follow these documents in this skill directory:

  • placeholders_ava.md
  • patterns_parallel.md
  • patterns_identifier.md
  • java_udtf.md
  • tasks_parallelize.md
  • naming_casd.md
  • manual_run_transpiler.md

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

snowflake

No summary provided by upstream source.

Repository SourceNeeds Review
General

image-gen

Generate AI images from text prompts. Triggers on: "生成图片", "画一张", "AI图", "generate image", "配图", "create picture", "draw", "visualize", "generate an image".

Archived SourceRecently Updated
General

explainer

Create explainer videos with narration and AI-generated visuals. Triggers on: "解说视频", "explainer video", "explain this as a video", "tutorial video", "introduce X (video)", "解释一下XX(视频形式)".

Archived SourceRecently Updated