Query Tags in Snowflake and Coalesce
Coalesce uses JSON query_tag in Snowflake to track job execution. You'll learn how to view the query_tag and ways to use it.
Query Tags Applied by Coalesce
Coalesce automatically adds a query tag to every SQL query that runs as part of a Job. The query tag is a JSON string with these fields:
jobName: The name of the Job that's running.nodeID: The unique identifier for the Node that's running.nodeName: The name of the Node that's running.runID: The unique identifier for the Job run.runType: The type of operation, such as Refresh or Deploy.stageName: The stage in the run, such as Insert into table.storageLocation: The target Storage Location.
Query Tag Example
{
"coalesce": {
"jobName": "Refreshed Job - customer refresh",
"nodeID": "b4e70d66-0b69-48b2-95c5-3ec198467287",
"nodeName": "DIM_CUSTOMER_LOYALTY",
"runID": "18764",
"runType": "Refresh",
"stageName": "MERGE Sources",
"storageLocation": "STG"
}
}
Run ID
The RunID is a unique identifier assigned to each job execution in Coalesce. It allows you to track all queries and operations that were part of a specific job run, enabling you to correlate Coalesce metadata with Snowflake query history for debugging, auditing, and cost analysis
Inspect Query Tags in Query History
This query reads recent query history and shows the query tag and SQL text.
SELECT
start_time,
query_tag,
FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY(
END_TIME_RANGE_START => DATEADD('hour', -1, CURRENT_TIMESTAMP())
))
WHERE query_tag IS NOT NULL
ORDER BY start_time DESC;
-- You can also use SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
SELECT
start_time,
query_tag,
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
WHERE start_time >= DATEADD('hour', -1, CURRENT_TIMESTAMP())
AND query_tag IS NOT NULL
ORDER BY start_time DESC;
How Inspect Query Works
- Call the
QUERY_HISTORYtable function
FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY(
END_TIME_RANGE_START => DATEADD('hour', -1, CURRENT_TIMESTAMP())
))
INFORMATION_SCHEMA.QUERY_HISTORYreturns query history for the current account- Wrapping it in
TABLE(...)makes it usable in theFROMclause - The
END_TIME_RANGE_STARTargument tells Snowflake to return queries that ended after a specific time DATEADD('hour', -1, CURRENT_TIMESTAMP())moves back one hour from the current timestamp
The result is a set of queries that completed in the last hour.